马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
ELF:
文件系统:
rootfs:根文件系统
FHS:Linux 标准
/boot:系统启动相关的文件,如内核,initrd,以及grub(bootloader)
/dev:设备文件(一切皆文件)
设备文件两种类型:
块设备:指的是随机设备可以实现随机访问的设备,为单位而随机访问的设备叫块设备;
字符设备:对字符进行输入读取的设备叫字符设备,比如键盘,鼠标,显示器等,是线性访问,也是逐个字符访问;
eg:输入ls -l /dev 提取其中一个brw-rw---- 1 root disk 7, 1 Jan 16 10:22 loop1
这一行中的7, 1指的是特殊文件,正常文件这里显示的是文件的大小,特殊文件是没有大小的,他们直接存储为原数据,是作为设备的访问入口存在的。
这两个数字一个是一个代表的是主设备号(major),一个代表的是次设备号(minor)
插入一个U盘后,首先在dev目录下创建一个设备文件(大多情况下系统自动完成)。
/etc :配置文件(大多数为纯文本格式,)
/home:用户的家目录,每一个用户的家目录通常默认为 /home/USERNAME
/root:管理员的家目录,root用户是没有家目录,一般都是在根目录。root用户从来都不需要登录操作系统,以后非必要不使用root命令,root用户拥有所有权限
/lib:库文件
/lib/modules:内核模块文件,有两种类型(静态库和动态库)
静态库: .a 静态库是直接链接到程序的地址空间中取,并且作为程序的一部分来运行的,所以静态方式便于单个文件管理,如果要把一个Linux文件需要移植到另外一个Linux中,只需要将程序复制到另外一个主机就可以直接运行。如果是动态库,意味着将程序挪过去还不够,还必须要有原来程序的共享对象才可以。
动态库: .dll ,.so (shared object共享对象),共享库会将已经调用的库放在内存里,如果别的程序需要调用这个文件,可以直接从内存调用。所以又叫共享库。
/media:挂载点目录,移动设备
/mnt:挂载点目录,额外的临时文件系统
media和mnt都叫挂载点目录
如果要读取一张光盘,必须需要将这个设备关联到当前整个文件系统树上的某一个节点上,才可以进行访问,这个过程,把某个设备,跟当前文件系统上的某一个目录相建立关联关系的过程,就叫挂载的过程。所以将光盘插入光驱,并不是说找到dev下的cdrom就可以访问了。他不是一个目录,无法cd进去,他是一个文件。也不能使用其他目录命令去查看,因为他是设备文件,他只是设备上数据的访问入口,所以需要建立关联关系,必须要把 cdrom关联到一个位置,比如关联到media,就可以通过这个目录来访问这里面的内容(ls /dev/cdrom /media),这个就叫挂载的过程,media通常用于挂载移动设备的。mnt经常挂载额外的文件,文件系统额外的临时文件系统。比如我想有第二块硬盘的数据。就需要挂载到mnt。
/misc:这个是比较独特的,是杂项,默认下来是个空目录,那些不方便归类的都放在这里
/opt:可选目录,早期通常用于安装第三方程序,但是现在基本上不放在这个目录下
/proc:伪文件系统,这个文件中没有任何内容,系统启动前这个目录是空的,但是系统启动后目录就不为空了,这里面显示的所有文件实际上是内核的映射文件(内核映射,或者叫内核映像文件),所以里面大多数文件都是内核中很多的可调参数或者内核的工作统计数据,想要看当前的内核工作属性,比如网卡,网卡是个设备,设备访问只能通过内核访问,那这个网卡接受了多少个数据包,发送了多少个数据包,这些统计数据都在这里。还有我们的内核是否支持IPV4协议,支不支持路由功能等等,所以我们想要改变操作系统的根本工作属性,通常是改变这个目录下的某个文件来完成的,事实上改的不是文件,改的是内核属性,他们只不过被映射成为了文件,都是假文件,其实都不是文件,不过是表现出了文件的样子而已,这也是为什么被称为伪文件系统的原因。在一个文件当中,很多设备都是可以模拟的,最后讲的是系统调优,调优中的绝大部分内容都跟这个有关系,我们系统的性能数据的监控也跟这个目录相关,所以这是一个非常重要的目录,也是最难理解的目录。
/sys:另外一个伪文件系统,里面本来什么都没有,系统启动以后才有,他不是映射内核文件,一般是跟硬件设备相关的属性映射文件,事实上和内核也有关系。只不过把他独立出来了当作一个独立的文件系统来使用。通常实现与硬件设备管理,尤其是像硬盘这样的存储设备。既然跟内核相关,我们很多调优工作都需要通过他来进行,比如修改磁盘,调度队列或者叫IO磁盘,IO调度队列的时候都在这里进行修改。
ls /sys :block bus class dev devices firmware fs kernel module
其中这个bus 指的是总线 device这个是设备,firmware是固件 fs文件系统 kernel:内核 module:模块以及电源相关的内容,关机以后这个目录也是空的。
他也是映射出来的信息。
/tmp:temporary(临时文件),很多用户登录系统以后都要存放临时文件,所以一些公共的临时文件可以被其他用户查看到的临时文件都会放在这里。临时文件主要目的是不需要长久存储的,所以这里的文件每隔一个月,或者这个文件一个月之内再也没有被访问过,会被自动清除,这是系统上定义的一些脚本完成的任务,而且这个目录非常独特,每个人都可以在这里创建文件,谁都有权限,但是每个人只能删自己的文件,这个目录格式非常独特,
eg: ls -ld 看一下tmp:drwxrwxrwt 11 root root 4096 Jan 16 10:49 /tmp,权限展示为t,不再是X了,还有一个地方可以存储临时文件,在另外一个目录下,/var/tmp
/var:(variable)可变化的文件,系统刚装完,这个目录很小,但是会发现,系统运行很长一段时间后这个目录会变得非常大,随着系统的运行,里面的文件会越来越多,ls /var
backups cache crash lib local lock log mail opt run snap spool tmp
catch:缓存 lock:锁文件 log:日志 mail:用户的邮件 run:每一个Linux进程运行起来后都会有一个进程号码,而很多服务器需要存储的进程号码于某一个单独的文件当中,就在run下,通常是....PID(进程管理), tmp:另外一个临时文件目录
/bin :(binary):二进制可执行文件,所有的命令都在这个目录下,用户命令,
/sbin:这里的命令是管理命令。程序。
/bin 和 /sbin 依赖于 /lib库。且每个程序都有配置文件,这些配置文件都在 /etc
/usr:(user shared read-only):用户之间,或者在整个系统级别上叫全局的共享只读文件,
/usr/bin
/usr/sbin
/usr/lib
可以简单理解为bin和sbin这些程序跟我们系统自身启动相关的命令或者可执行程序,而usr/bin 或者usr/sbin通常是系统自身启动以后运行为了提供一些基本
功能所具备的命令或者可执行程序。
/usr/local :又是一个独立的文件系统,他底下也有bin,sbin,lib,这些是第三方软件安装目录,他底下甚至还有etc命令,专门用来存储配置文件
/usr/local/bin
/usr/local/sbin
/usr/local/lib
通常/bin /sbin /usr/bin /usr/sbin 都是操作系统必须的,而/usr/loca/bin /usr/local/sbin都是非必须的(站在系统角度是非必须,业务不一定),因为他是第三方软件,和系统运行没有关系。
|