Linux File System Explanation
UpDate 2018-07-29 1532862112
Author unnamed
前言
这里主要介绍的是 Linux 根目录下主要目录及个别子目录的作用,如果你有任何的疑惑或者建议,可以通过上面的邮箱联系我。
正文
Linux 根目录的表示为 /
在该目录下大概有如下的目录:
/boot /dev /etc /home /root /lib /lost+found /media /mnt /misc /opt /proc /sys /tmp /var /bin /sbin /usr
其中,/usr 目录下又包含有 /usr/bin /usr/sbin /usr/lib /usr/local
其中,/usr/local 目录下又包含有 /usr/local/bin /usr/local/sbin /usr/local/lib
1、/boot
系统启动相关文件
该目录下存放的文件与系统启动相关,比如有关内核的文件、initrd,以及grub(grub为一个启动加载文件,叫做引导加载器,bootloader)
所以,如果丢失了 /boot 里的文件,系统根本无法启动
2、/dev
设备文件,device 的简写
Linux 的哲学思想就是“一切皆文件”,因此,所有的硬件设备也被识别成各个文件,比如光盘文件,如果是DVD,在 /dev 目录下可能就有 dvd 文件,即 /dev/dvd
因此,该目录下存放的文件为设备文件,也就是说和设备相关的一些文件,比如显示器、鼠标等等这些硬件设备相关的文件
设备文件包含两种类型:
1、块设备文件
块设备指的是“随机设备”,可以实现随机访问的设备,数据也是一块一块进行访问的
2、字符设备文件
字符设备则是“线性设备”,可以实现线性访问的设备,线性访问也就是有次序的访问,比如键盘,就是一个字符一个字符输入的设备,显示器,一个字符一个字符输出的设备
设备文件是看作设备的访问入口而存在的,设备文件的信息用 ls -l 输出之后会有设备号信息,一个为主设备号(major),一个为次设备号(minor)
所以,如果我们插入了额外的U盘,就要在该目录下创建一个U盘的设备文件,当然大多数情况下,这个过程会自动创建
3、/etc
配置文件,系统上大多数程序和服务的配置文件就存放于此目录下,或此目录的子目录下,比如用户的配置文件 /etc/passwd /etc/group /etc/shadow /etc/gshadow
4、/home
各个用户的家目录存放于此,各个用户的家目录默认为 /home/USERNAME,除了管理员 root 用户
5、/root
root 用户的家目录,在传统的 Unix 上系统上,root 用户是没有家目录的。
6、/lib
此目录下存放的为库文件,且内核模块文件存放于该目录下的子目录 /lib/modules 中
库文件包含有两类
1、静态库
在 windows 中,静态库后缀为 .lib,在 Linux 中,静态库后缀为 .a
2、动态库
在 windows 中,动态库后缀为 .dll,在 Linux 中,动态库后缀为 .so (shared object),也即共享对象;
静态库与动态库的区别:
首先动态库的共享来源于系统上的多个程序和服务共用于同一个动态库,库与程序软件为分离状态,因此动态库在内存中只需要存放一个即可,这种做法可以很大程度上节约内存空间;
而静态库是直接链接到程序的地址空间中去,而且是作为程序的一部分而运行的,所以静态方式便于程序单个文件管理;
7、/lost+found
任何一个新建的分区上都会有的目录,通常和文件系统相关,用于存储那些文件系统机器突然断电的时候文件没有属主属组,并且尚未来得及保存的文件,为了实现丢失并重新找回的目的的。
8、/media
挂载点目录,挂载移动设备
9、/mnt
同样为挂载点目录,挂载额外的临时文件系统
挂载的理解:首先在 /dev 目录下存放的有设备文件作为设备的访问入口,如果我们新增加了一块硬盘,那么系统大多数情况下会将我们的硬盘生成一个设备文件存放在 /dev 目录下
但我们没法直接对该设备文件进行访问,我们需要将该设备文件挂载在 /mnt 下的一个目录节点上,例如 mount /dev/sdb /mnt/newdisk
10、/misc
杂项,默认是空目录,存放一些不便归类的文件
11、/opt
可选目录,早期常用于安装第三方程序的。比如系统运行的好好的,然后我想装一个与系统运行没有任何关系的软件,就装在这个文件夹。比如漏洞扫描工具,Nessus
12、/proc
伪文件系统,因为这个目录默认是空的,也就是说,在我们系统未开启之前,这个目录里是没有内容的,一旦系统开启,这个目录就被塞满了文件,因为这个目录下存放的是内核的映射文件;
伪文件系统解释:伪文件的意思即是假装为文件的样子,因为这里面所谓的文件其实是内核的映射文件,那么这些所谓的文件其实代表的是内核的属性。
13、/sys
伪文件系统,里面存放的是跟硬件设备相关的属性映射文件,用于实现硬件设备管理
14、/tmp
临时文件,公众的临时文件,能被其他人用的临时文件放在这里。另一个临时文件目录:/var/tmp/
这个目录权限很特殊,每个人都可以在这里创建文件,却只能删除自己的。
15、/var
可变化的文件,日志文件和邮件文件就存在下面
16、/bin
binary,二进制文件,也就是可执行文件的存放地,存放的为用户命令
17、/sbin
存放的也是命令,只是存放了管理命令
18、/usr
universal, shared, read-only, 即,全局的共享的只读文件。并不是 user 的简写!!!
该目录下还存放有子目录 /usr/bin /usr/sbin /usr/lib
/bin /sbin 与 /usr/bin /usr/sbin 的区别:
/sbin /bin 是放一些和系统启动相关的命令或者可执行程序
/usr/bin /usr/sbin 是系统自身启动过来以后,为了提供一些基本功能而应该具备的命令或者可执行程序;
/lib 与 /usr/lib 的区别:
在 /usr/bin /usr/sbin 下的程序所依赖的库如果不是公共库,不是 /lib 下的共享库,它就必须要放在 /usr/lib 下面
初次之外,/usr 目录下还存放有 /usr/local 子目录,而该子目录下也有 /usr/local/bin /usr/local/sbin /usr/local/lib
/usr/local 是用于存放第三方软件的程序与库文件,该目录下还有 /usr/local/etc 用于存放第三方软件的配置文件
网友评论