如果说Linux学习的第一道坎是系统安装及对磁盘分区的理解,那么第二道坎就应该是对Linux系统目录结构及其作用的掌握了(这里主要指根目录 / 下的一级目录)!
随着Linux的不断发展,Linux的主要目录也有些微小的调整,当然不同的发行版本之间也有些细微的差别,不过主要目录结构是不会有太大的变动的!
废话不多说,直接开机跑起Linux来拉出目录一个一个讲!这里主要以CentOS 8 x64为蓝本进行讲解,其主目录结构如图所示:
.
├── bin -> usr/bin
├── boot
├── dev
├── etc
├── home
├── lib -> usr/lib
├── lib64 -> usr/lib64
├── media
├── mnt
├── opt
├── proc
├── root
├── run
├── sbin -> usr/sbin
├── srv
├── sys
├── tmp
├── usr
└── var
在讲解各个目录的作用前先来简要讲一下截图上有些特别的地方:
1、高亮的浅蓝色文件夹(bin、sbin、lib和lib64)表示它们是一些符号链接(Symbolic Link,也叫软链接,类似Windows的快捷方式),Linux一共有两种链接类型,另一种是硬链接(Hard Link);
硬链接:在Linux系统中,保存在磁盘中的目录或文件不论是什么类型,都会给它分配一个索引节点(Inode:Index node),多个文件(名)可以同时指向同一个索引节点,当最后一个指向目标索引节点的文件(名)被删除后,文件的数据块才会被真正删除;这里文件(名)通过索引节点进行真实文件的链接(引用)就叫硬链接:
软链接:删除软链接,其指向的真实目录或文件不会被删除;删除软链接指向的真实目录或文件,则该目录或文件的所有软链接都失效:
2、绿色背景的目录(tmp)表示它是所有用户都有权读写的目录;
好了,现在来讲解每个目录的作用:
/bin:bin是binary的缩写,它是 /usr/bin 的软链接目录,该目录主要用于存放普通用户(非root用户)可执行的命令程序,即普通命令程序存放目录,例如 ls、cd、pwd、cat、mv、cp、su等等;
/boot:见名知义,该目录是系统启动引导目录,其中存放了Linux系统内核文件和引导文件,包含了系统启动过程中所需的所有内容;
/dev: dev是device的缩写,用于存放所有非可移动的硬件设备和终端设备,该目录体现一Linux系统中一切皆文件的思想,Linux中的设备管理器程序——udev主要就管理着该目录下的设备节点,注意与 /media、/mnt 、/proc 和 /sys 等目录的区别;
/etc:etc是etcetera的缩写(表示一些零碎文件的存放目录),主要用于存放系统管理所需的各种配置文件(静态文件),是Linux系统的神经中枢!
/home:普通用户的主(家)目录,主要用于存放普通用户的用户数据;
/lib:lib是library的缩写,它是 /usr/lib 的软链接目录,该目录是共享标准程序库(也叫动态链接库,类似windows中的*.dll文件)的存放目录,系统开机引导程序以及 /bin 和 /sbin 目录中的命令程序一般都会调用该目录中对应的lib;
/lib64:同 /lib 类似,它是 /usr/lib64 的软链接目录,只是存放的是64位的标准程序库;
/media:media是媒体、媒介的意思,该目录主要用于挂载可移除设备,例如U盘、光盘、移动硬盘等,还有已经淘汰了的软盘等;
/mnt:mnt是mount的缩写(装载、挂载的意思),该目录主要用于临时挂载其他文件系统或设备,相对于 /media 目录主要用于自动挂载设备,/mnt 目录一般用于手动挂载设备;