linux目录结构
文件系统:以分区为单位
rootfs:根文件系统
FHS:文件系统层级标准,规定了linux发行版应该创建哪些目录,目录应该存放哪些文件?
/
虚拟目录的根目录
/boot
系统启动相关的文件,包括:
1.vmlinuz:内核文件
2.initramfs:.img文件,内存磁盘
3.grub:bootloader
/dev
设备文件,包括:
1.块设备文件:随机访问,数据块,如:磁盘
2.字符设备:线性访问,以字符为单位,如:键盘、鼠标、显示器
/etc
配置文件,纯文本格式
/home
用户家目录
/root
root用户家目录
/lib
库文件,包括:
1.静态库 .a
2.动态库 .so(shared object),windows称为.dll
库:
库是可以被调用的封装好的功能,一些程序为实现某些功能,会依赖于一些库文件。
库文件没有单独的执行入口,只能被程序调用。
任何程序或数据,必须载入内存才能使用。
动态库:
又称共享对象,只需载入一次,后续其他程序若用到相同动态库时,不必重复载入。
优点:只需载入一次,节省内存; 缺点:程序移动时,必须保证目标主机上有程序所依赖的动态库。
静态库:
指嵌入到程序中的库文件,优点:程序移动到任何主机均可运行;缺点:占用内存
/lib/modules:内核模块文件
/media
挂载点目录,通常用来挂载移动设备
/mnt
挂载点目录,通常用来挂载额外的临时文件
/misc
杂项目录,存放没有归类的文件
/opt
早期第3方程序安装目录
/proc
伪文件系统:系统启动后,才有内容(因为此目录的数据,放在内存中)。显示内核的映射文件,存放内核可调参数和工作属性。
常用文件:
/proc/meminfo #内存信息
/proc/cpuinfo #cpu信息
/sys
伪文件系统:系统启动后,才有内容(因为此目录的数据,放在内存中)。存放跟硬件设备相关的属性映射文件,实现硬件设备管理。如:修改磁盘IO调度策略。
/tmp
临时文件目录,定期清空(默认30d),所有用户均可在此目录下创建/读取文件。普通用户只能删除自己创建的文件
/var
可变化的文件,入:log、mail等
/bin
可执行文件,用户命令
存放跟系统启动相关的运行程序
/sbin
可执行文件,管理命令
存放跟系统启动相关的运行程序
/usr
全局共享只读文件(shard,read-only),存放系统启动后,为实现不同功能,提供的可执行程序
/usr/bin 用户命令
/usr/sbin 管理命令
/usr/lib 依赖的库文件
/usr/local
第3方程序安装目录
/usr/local/bin #用户命令(第3方)
/usr/local/sbin #管理命令(第3方)
/usr/local/lib #依赖的库文件(第3方)