# CentOS 入门

# 文件管理

# 根目录下的文件和目录

根据颜色区分:

  • 蓝色:表示文件夹
  • 灰色:表示普通文件
  • 绿色:表示可执行文件
  • 红色:表示压缩文件
  • 天蓝色:表示链接文件(快捷方式)

常用的目录:

  • /bin:bin 是 Binaries (二进制文件) 的缩写,这个目录存放着最经常使用的二进制可执行命令(ls cat mkdir 等),普通用户也可以执行;
  • /sbin:s 就是 Super User 的意思,是 Superuser Binaries (超级用户的二进制文件) 的缩写,这里存放的是系统管理员使用的二进制可执行命令。
  • /boot:开机引导目录,包括 Linux 内核文件与开机所需要的文件;
  • /dev:设备目录,dev 是 Device(设备) 的缩写, 该目录下存放的是 Linux 的外部设备,所有的硬件设备及周边均放置在这个设备目录中,在 Linux 中访问设备的方式和访问文件的方式是相同的;
  • /home:用户家目录,在 Linux 中,每个用户都有自己的用户目录,位置为:/home/用户名。主要存放个人数据,包括每个用户的设置文件,用户的桌面文件夹,还有用户的数据都放在这里。当然,root 用户除外;
  • /root:该目录为系统管理员的用户目录,也称作超级权限者的用户家目录。
  • /usr:usr 是 unix shared resources(共享资源) 的缩写这是一个非常重要的系统级目录,系统的很多应用程序和文件都放在这个目录下,类似于 windows 下的 program files 目录。
    • /usr/bin:非必须的二进制可执行命令
    • /usr/sbin:非必须的系统二进制可执行命令,通常是由 root 运行的
    • /usr/local/bin:用户编译程序的二进制可执行命令
    • /usr/src: 是系统的源码存放目录,此目录一般由软件包管理器(yum、apt)来管理。
  • /lib:lib 是 Library(库) 的缩写,这个目录里存放着系统最基本的动态连接共享库(类似代码重用和模块化),其作用类似于 Windows 里的 DLL 文件。几乎所有的应用程序都需要用到这些共享库,bin 及 sbin 指令也会调用对应的 lib 库;
  • /tmp:临时文件存放目录;
  • /etc:各种配置文件目录,大部分配置属性均放在这里;
  • /opt:opt 是 optional(可选) 的缩写,第三方软件安装目录。比如你安装一个 ORACLE 数据库则就可以放到这个目录下。默认是空的。现在习惯性的放置在 usr/local中;
  • /var:存放系统执行过程经常改变的文件,其中有一个重要的目录就是 /var/log/目录,主要存放的是系统日志文件,还有存放 pid 文件的目录 var/run/
  • /user:只读的用户数据
  • /proc:proc 是 Processes(进程) 的缩写,/proc 是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
  • /mnt:系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在 /mnt/ 上,然后进入该目录就可以查看光驱里的内容了。
  • /sys:存放的是系统硬件驱动程序相关的信息。
  • /media:linux 系统会自动识别一些设备,例如 U 盘、光驱等等,当识别后,linux 会把识别的设备挂载到这个目录下。

# 重要目录

在 Linux 系统中有几个重要的目录需要注意,不要误删除或者随意更改其内部文件。

  • /etc:存放系统配置文件,如果更改了该目录下的某个文件,可能会导致系统无法正常启动
    • /etc/passwd:存放用户账号,每个用户都有唯一的用户名和密码,系统就是通过密码来验证用户身份。
    • /etc/shadow:存放用户账号的密码信息,一般只允许 root 用户查看。
    • /etc/group:存放用户组信息,可以用来创建用户组,添加用户到用户组,删除用户组。
  • /bin、/sbin、/usr/bin、/usr/sbin:是系统预设的可执行文件的放置目录,其中 /bin 和 /usr/bin 目录下是供系统用户(除 root 外的通用账户)使用的命令,例如 ls 命令就存放在 /bin/ 目录下,而 /sbin 和 /usr/sbin 目录下是供 root 使用的命令。
  • /var 也是一个非常重要的目录,系统上运行各个程序所产生的日志都被记录该目录下(即 /var/log 目录中),另外 mail 指令的预设也放置在这里。

# 目录文件相关的命令和快捷键

命令 作用
pwd 显示当前目录完成路径,shell 脚本中常用
mkdir 创建目录
touch 创建文件
rm (rm -rf) 删除文件(目录)
rmdir 删除空文件夹
find 查找文件
which 搜索命令文件
cp 拷贝文件
mv 移动文件
man/info 获取帮助
快捷键 作用
ctrl + u 清空至行首
ctrl + k 清空至行尾
ctrl + a 光标移动到命令的最前面
ctrl + e 光标移动到命令的最后面
ctrl + l 清屏(向上滚动一屏,之前的内容还在)
clear 清屏(真正的清平,之前的内容会清空)
ctrl + d 退出当前终端,与 exit 命令作用相同
ctrl + c 终止执行命令
ctrl + z 暂停当前进程。跟 ctrl + c 有区别,暂停后,使用 fg 命令可以恢复该进程

# Linux 文件属性

例如:ls -l :

drwxrwxr-x  2 chenfangxu chenfangxu  4096 Jun 20 16:33 demo
-rwxrwxr-x  1 chenfangxu chenfangxu    68 Jan 16 18:53 demo.sh

# 第一列

包含该文件的类型、所有者、所属组以及其他用户对该文件的权限

# 文件类型
  • d 目录
    • 普通文件
  • l 链接文件(link file)
  • b 块设备,比如 /dev/sda 就是这样的文件,磁盘分区文件就是这种类型
  • c 串行端口设备文件(又称字符设备文件),比如键盘、鼠标、tty 终端等都是这样的文件
  • s 套接字文件(socket),用于进程之间的通信
# 文件权限

文件类型后面的 9 位,每 3 位为一组,均为 rwx 这 3 个参数的组合。

其中:

  • r 代表可读
  • w 代表可写
  • x 代表可执行

前 3 位为所有者(user)权限,中间 3 位为所属组(group)权限,最后 3 位为其他非本群组用户(others)权限

# 第二列

表示文件或目录硬链接数量

# 第三列

表示该文件的所有者

# 第四列

表示该文件的所属组

# 第五列

表示该文件的大小,默认单位为 kb,可以使用 ls -lh 转换成更易读的模式

# 第六列、第七列、第八列

# 推荐阅读