同分区一样,目录也是为了更好的管理文件;部分目录也有他默认功能及其对应的属性;我们先通过一个图简单认识下Linux下的目录结构。
如果以windows来类比,目录就是windows中的文件夹,在Linux下大家约定俗成的叫它“目录”,目录下可以存放文件,也可以存放子目录。
FHS(Filesystem Hierarchy Standard)是指Linux系统上的文件目录层次结构标准。它规定了文件和目录应该放在哪些位置,以及各个目录的作用和含义。
重点目录:
/ 根目录,一切目录的源头;
/boot 启动目录,与系统启动有关;
/usr 系统必备软件存放目录;
/var 变量文件目录,重要的系统运行缓存、日志等;
/home 家目录,用户文件及绑定用户的配置信息等。
系统所有的目录和文件都是从这个目录开始的。
根目录是整个系统最重要的目录,但很可能不是占用磁盘最大的目录,一般来讲,重要的文件是固定大小且不再变化的;
通常划分单独的分区,以与用户文件目录分开;
其他文件则通过挂接到根目录下的方式,实现统一路径。
统信UOS的根目录是放在单独一个分区中,其他分区的目录都是挂接到根分区目录下的。
usr是UNIX Software Resource的缩写,可以理解为系统软件资源的存放地。
所有系统默认的软件都会放置到/usr下面,通常在系统安装完毕时,这个目录会占用最多的硬盘空间。
二进制可执行文件目录,包含了系统启动和运行所必须的基本指令;
通常我们使用到的命令都在这个目录下,主要包括:cat、chmod、chown、date、mv、cp、mkdir、bash等常用命令。
根目录下的bin目录是指向它的一个链接文件,也就是说,/usr/bin与/bin是一模一样的。
系统二进制文件可执行目录,包含了系统管理员使用的系统管理命令。
除了/usr/bin/目录下的通用指令,还有一些指令是用来对系统进行设置操作的,这些命令需要root用户权限才可以执行,普通用户最多用这些命令做查询操作,这样的命令就放在/usr/sbin目录下。该目录包括的命令有fdisk、fsck、mkfs等。
同/bin一样,/sbin也是是链接到该目录的一个链接文件。
系统命令的执行及程序的运行,都需要调用系统中各式各样的函数库(即软件的依赖库);
而/lib目录下放置的是在系统启动时会用到的函数库,以及在/bin或/sbin下面的命令会调用的函数库而已。
/lib是链接到此目录的一个链接文件,同样的还有lib32、lib64、libx32,如下图:
伴随着安装越来越多的第三方软件,需要调用的函数库也就越来越多,该类目录的大小也会有所增加。
用户在本机安装自己下载的软件会安装到此目录。/usr/local下也是有bin、etc、lib等子目录。
在统信UOS桌面系统中,默认规范不允许软件安装到该目录,因而该目录下没有多少文件,通常只有几十兆。
主要放置只读数据文件,像在线帮助文档/usr/share/man,软件说明文档/usr/share/doc等。
变量文件目录,包含了系统和应用程序运行时产生的临时文件;
关闭程序或重启系统,文件仍在。
/var目录主要存放的是一些随着使用时间变动的文件,可以理解为使用痕迹存储目录,如缓存文件、日志文件、程序运行时产生的文件等。例如MySQL的数据文件,或软件程序的日志文件(log file)等。
应用程序运行过程中产生的一些缓存。
比如/var/cache/apt/archives/ 是软件安装过程下载的路径。
存放软件运行过程中使用到的数据文件,软件运行过程中都需要一些数据,不然软件可能无法得到正确的信息,这里就是存放这些数据;当然这些数据也是软件运行后产生的。
在统信UOS桌面中,该目录存储的通常是系统软件使用到的数据。
日志文件放置的目录。
绝大部分系统日志和软件日志都是存放在该目录下。
该目录是用内存模拟的目录,系统启动后所产生的各项信息会放置到该目录下。
比较常见的用途是daemon进程会将自己的pid保存到这个目录下。
/var/run是链接到/run目录的一个链接文件。也就是说,/var/run与/run是一模一样的。
系统配置文件目录,包含了系统的配置文件和子目录;
例如系统用户的账号密码文件,各种服务的配置文件等。
不要放置可执行文件在这个目录中。因此rc.local这样的文件其实是不建议使用的。
设备文件目录,包含了系统所有的设备文件。
在Linux系统中,一切皆文件,设备也不例外,所有设备都抽象为文件,存放在该目录下,读写该目录下的设备文件,就等于读写了对应的设备。
常用的文件有/dev/null、/dev/zero、/dev/tty等。
系统启动目录,存放系统启动时需要的文件,如内核文件、引导程序、boot loader配置文件等;
Linux内核的文件名为vmlinuz。
Linux初始化驱动程序的文件名为initramfs或initrd.img。
现在Linux系统都使用grub作为boot loader,都有/boot/grub目录。
可选应用程序目录,用户安装的第三方应用程序的存放目录;
该目录用来安装附加软件包,是用户级的程序目录,可以理解为D:/Program。
UOS系统中用户安装的程序默认放在该目录下,如果有软件的安装后文件不在该目录下,则被视为不规范,将带来使用问题。
临时文件目录,包含了系统和程序运行时产生的临时文件,程序关闭或重启系统即清空;
暂时存放文件的地方,任何人都能够读写该目录下的文件,重要的文件不要放在此目录。
该目录默认在根分区,所以也不要放很多文件,以免影响根分区其他程序运行。
这个目录一般情况下是空的,当文件系统发生错误时,会将一些遗失的片段放置在这个目录下。
虚拟文件系统目录,包含了系统和进程运行时的信息;
这是一个虚拟文件系统,里面的数据都是放在内存当中,例如系统内核、进程信息、外接设备的状态及网络状态等,放置的是本次运行时的数据信息,必然与上次开机或重启前的数据不同。
重要的文件包括:/proc/cpuinfo、 /proc/net/*和 /proc/ioports等。
该目录跟/proc非常相似,也是运行后加载的虚拟文件系统,文件也是放在内存中,只是存放文件有所区别,主要是记录内核与系统硬件信息相关的内容,可以理解为设备虚拟化对象和该虚拟化对象的配置文件。
可移动媒体目录,包含了可移动介质(光盘、U盘、移动硬盘、SD卡等)的挂载目录。如下图,包含了光盘和U盘的挂载目录。
字面意思:当前目录,可用一个点“.”表示。可以用pwd命令查看。
右键单击桌面—在终端中中打开,显示的就是“~/Desktop/”。
相比较于指定目录,指定目录的上一级目录,也叫父目录,当前目录的上级目录用两个点“..”表示。
通常没给Linux都有个家目录,路径为 /home/用户名(管理员不同,他的家目录是/root);
在命令行中也可以用单波浪线"~"表示家目录。
既然根目录是所有目录和文件的起源,那么我们把以这个起源为开始写的路径叫做绝对路径。这样的路径一定是以"/"开始的。
有绝对路径就有相对路径,通俗的把相对于当前目录的路径叫做相对路径,用来表明文件路径相对于当前目录的位置;
书写时经常会用到前面讲到的 2 个特殊目录,即当前目录(用 . 表示)和父目录(用 .. 表示)。
其实绝对路径就是相对于根目录的相对路径。(这里别被绕进去)
如上图,第一条命令用的是绝对路径,第二条命令用的是家目录结合相对路径,第三条命令用的是相对路径,看到的内容是一样的,即方式不同找到的内容为同一个。
UEFI模式下,efi目录单独使用一个分区/dev/sda1
/boot目录除efi目录外,使用一个分区/dev/sda2
/根目录使用一个分区/dev/sda3,图形界面通常显示为系统盘
根分区的备份分区使用一个分区/dev/sda4,用于系统更新前的备份及系统回退
/data 数据分区,在图形界面通常显示为数据盘
/recovery 系统初装时的文件、配置存储,可用于系统恢复出厂设置
[swap] Linux系统默认的交换分区
请大家再回顾下文章开头的那张图,可以发现内容基本一致。
UOS桌面系统为了更好地区分系统文件和用户文件,将部分用户文件放置在一个单独的分区中;
兼顾FHS的标准,将/data/下的部分目录与根目录下的子目录做了绑定(不是软链接),如下图:
重点是家目录home、可选程序目录opt、变量文件目录var,后续分析磁盘空间占用时需要注意,这些目录是在数据盘分区。
网站声明:如果转载,请联系本站管理员。否则一切后果自行承担。
添加我为好友,拉您入交流群!
请使用微信扫一扫!