初识Linux

什么是Linux

Linux就是个系统内核,其主要特性:

1、 类Unix:Linux拥有Unix很多特性,同时具有非常强大的网络功能;
2、 开源且免费:任何人可通过任何途径获得Linux,并任意修改其源代码;
3、 支持多平台:Linux可运行在多种硬件平台上(如:x86、680x0和Alpha等);
4、 一切皆文件:任何资源对象都被Linux系统内核视为各种类型的文件对象(如:命令、设备和进程等);
5、 多用户和多任务:Linux中可创建多个用户,且多个用户可同时登录系统并执行各自的程序(互不影响);
6、 兼容POSIX1.0标准:在Linux下通过相应的模拟器运行常见的DOS和Windows的程序;
(PS:发明者:林纳斯·本纳第克特·托瓦兹

常见发行版本

Linux发行版本:部分组织或厂商将Linux内核与各种软件和文档封装在一起,并提供不同的系统安装界面和系统配置,以此形成一个功能较为完整的操作系统。(更准确的叫法:以Linux内核为核心的操作系统软件包)

版本名 特点 适用
CentOS 基于商业版的RHEL 源代码再编译后 比较稳定的服务器系统
Ubuntu 优秀的图形界面 桌面系统
Debian 开放的开发模式 软件包管理
SUSE 专业的操作系统 数据库高级服务和电子邮件网络应用

一切皆文件

Linux中所有的资源对象均被视为文件

  • 在Windows中是文件的,在Linux下同样也是文件;
  • 在Windows中不是文件的,在Linux下也是以文件形式存储(如:进程)

文件和目录的定义

文件:系统中独立的资源对象,可通过特定工具操作

  • 文件不包含除数据以外的任何对象(数据:字符或进制编码)

目录:系统中包含其他文件/目录的资源对象

  • 目录和文件夹属于同一资源对象(文本界面:目录,图形界面:文件夹)
  • 文档:同时代表文件和目录

文件名后缀

Linux中文件的后缀名对系统不具任何特殊意义(便于管理和识别),常见后缀名如下:

后缀名 含义
.swap 使用Vim编辑文件时,创建和被编辑文件的同名临时文件
.tar.gz tar程序打包,并经过gzip压缩的文件
.conf 常为软件的主配置文件
.repo yum源的配置文件
.sh Shell脚本文件
src.rpm SRPM文件
.tar.gz tar程序打包,并经过gzip压缩的文件
.service 常为系统服务类型文件(service unit)
.target 搭建环境类型文件(target unit)
.socket 内部程序数据交换的socket服务文件(socket unit)

文档路径

路径分为:绝对路径和相对路径

  • 绝对路径:在文件系统中真正的存储位
  • 相对路径:相对于工作目录所在的存储位

路径中常见的特殊符号,如下:

特殊符号 说明
. 当前工作目录
.. 当前工作目录的父目录(上一层目录)
- 前一个工作目录
~ 当前用户的家目录
(等同于:~用户名)
  • 所有目录均包含当前工作目录(.)和父目录(..)
  • 根目录的父目录是根目录的当前工作目录

目录结构

Linux 操作系统中,所有文件和目录都被组织成以一个根节点(/)为开始的倒置树状结构
 

目录名 含义
/ 根目录
所有文件和目录都在根目录的层级下
/boot 存储开机使用的文档
/run 存储开机后产生的各项信息
/bin 存储命令相关的二进制文件
/sbin 存储需root权限才能执行的二进制文件
/home 存储除root用户外,其他用户的家目录
(类似Windows中的User)
/root root用户的家目录
/dev 存储外接设备的相关文档
/mnt 常用于存储挂载的外接设备
/etc 存储系统和程序的主要配置文件
只有root用户拥有权限修改
/srv 存储系统提供的服务或数据
/sys 内核设备树的映射
(可读写的虚拟文件系统)
/proc 存储系统中运行的各进程信息
(仅能读的虚拟文件系统)
/tmp 存储心态运行时产生的临时文档
(任何用户都能对该目录进行存取)
/usr 存储系统和用户安装的软件
/var 存储程序/系统的日志文档
/lib 存储系统动态链接共享库
/lib<qual> 存储和/lib不同格式的二进制函数库
(<qual>的值根据操作系统改变)
  • 根目录所在分区应越小越好,且尽量避免与应用程序在同一分区
  • 由于救援模式通常仅挂载根目录,所以/bin、/sbin、/etc、/dev、/lib通常与根目录在同一个分区
  • /dev中存储的是外接设备的端口(而不是外界设备的驱动程序)

/usr目录

/usr(UNIX操作系统软件资源,UNIX Software Resource):用于存储系统和用户安装软件的资源

目录名 含义
/usr/bin 存储命令相关的二进制文件
(/bin链接该目录,且该目录下不可存在目录)
/usr/sbin 存储需root权限才可执行的二进制文件
(/sbin链接该目录)
/usr/local 存储系统管理员在系统中安装的软件
(可实现同一软件的不同版本共存)
/usr/lib 存储系统动态链接共享库
(/lib链接该目录)
/usr/lib<qual> 存储和/usr/lib不同格式的二进制函数库
(/lib<qual>链接该目录)
/usr/libexec 存储不可被普通用户使用的执行文件/脚本
/usr/include 存储C/C++等程序语言的库
/usr/games 存储游戏相关的数据
/usr/src 存储源代码
/usr/share/man 在线帮助文档
/usr/share/doc 软件说明文档
/usr/share/zoneinfo 时区相关文件

/var目录

/var(系统可变资源):存储程序/服务运行过程中阐述的数据

目录名 含义
/var/run 存储程序/服务启动后的PID
(/var/run链接该目录)
/var/spool 存储队列数据
/var/cache 存储程序/服务运行过程中的缓存数据
(各运行的程序/服务在该目录下都有对应的目录)
/var/lib 存储程序/服务的日志文件
/var/mail 存储用户的邮件数据
/var/lock 存储已上锁的设备

终端

终端(Terminal):与系统相连的一种输入输出设备

  • Linux终端的默认配置:
     
  • 可通过终端输入指令与系统进行交互:
  • 指令:在Linux终端(命令行)中输入的可执行内容
  • 指令格式:命令 选项 操作对象
    (1)命令仅可为一个,但可包含多个选项和操作对象;
    (2)多个操作对象,命令默认从左往右依次执行;
    (3)操作对象可通过通配符进行指定;
通配符 说明
* 匹配0或任意多个字符
匹配任意一个字符
[abcd] 匹配包含abcd的
[a-z] 匹配a到z之间的所有字符
[0-9] 匹配0到9之间的所有数字
匹配string1和stringN其中的一个字符串
(PS:!符号在Linux中表示取反的作用)
  • 终端中常用的快捷键,如下:
快捷键 说明
Ctrl和C 中断前台正在运行的进程
Ctrl和Z 暂停进程并放入Bash后台
Ctrl和D 结束输入
Ctrl和M 回车
Ctrl和U 删除整列命令
Ctrl和S 暂停屏幕输出
Ctrl和Q 恢复屏幕输出
Ctrl和L 清屏
(PS:更多快捷键设置可在/etc/inputrc文件中查询)