Linux Filesystem Hierarchy Standard(FHS)
1. /bin
- 全称:Binary(二进制文件)
- 功能:存放系统最基础的可执行命令,所有用户(包括普通用户)都能使用,用于系统启动和修复(如
ls
、cp
、mv
、sh
等)。 - 特点:命令多为精简的核心工具,不依赖复杂库,可在单用户模式下运行。
2. /boot
- 功能:存放系统启动相关文件,包括内核(vmlinuz)、启动引导程序(GRUB)配置、初始化内存盘(initrd.img)等。
- 常见文件:
vmlinuz
:Linux内核镜像(当前使用的内核);vmlinuz.old
:上一个版本的内核(用于启动失败时回退);initrd.img
:初始化内存盘(启动时临时加载驱动,帮助内核识别硬件);grub/
:GRUB引导程序的配置文件和模块。
3. /dev
- 全称:Devices(设备文件)
- 功能:Linux中所有硬件设备的抽象表示,通过文件形式访问设备(无需直接操作硬件)。
- 常见设备文件:
dev/sda
:第一块SATA硬盘;dev/tty
:终端设备;dev/null
:“黑洞”设备(写入的数据会被丢弃);dev/random
:随机数生成器。
4. /etc
- 全称:Editable Text Configuration(可编辑的文本配置)
- 功能:存放系统和应用程序的配置文件,几乎所有服务的设置都在这里(如网络、用户、软件等)。
- 常见子目录/文件:
etc/passwd
:用户账号信息;etc/group
:用户组信息;etc/network/
:网络配置(如IP、网关);etc/apt/
:包管理工具(APT)的配置(软件源列表等)。
5. /home
- 功能:普通用户的主目录,每个用户在这里拥有独立的子目录(如
/home/kali
),用于存放个人文件、配置(如.bashrc
)、下载等。 - 特点:用户对自己的主目录有完全权限,其他用户默认无法访问(除非授权)。
6. /lib、/lib32、/lib64
- 全称:Libraries(库文件)
- 功能:存放程序运行依赖的共享库(动态链接库),类似Windows的
.dll
文件,避免程序重复存储代码,节省空间。 - 区别:
lib/
:默认的库目录(通常对应64位系统的主要库);lib32/
:32位程序依赖的库(兼容32位软件);lib64/
:64位程序依赖的库(部分系统单独划分,Kali中可能与lib/
合并)。
7. /lost+found
- 功能:用于存放文件系统修复时恢复的损坏文件。当系统意外崩溃或硬盘出错时,
fsck
(文件系统检查工具)会将找回的碎片文件存放在此,需手动确认是否保留。 - 特点:每个分区(如
/
、/home
)都有独立的lost+found
目录,默认空目录。
8. /media
- 功能:用于临时挂载可移动设备(如U盘、光盘、移动硬盘),系统会自动识别设备并在此创建子目录(如
/media/kali/U盘名称
)。
9. /mnt
- 功能:手动挂载文件系统的临时挂载点,通常由管理员手动挂载(如挂载额外硬盘、网络共享目录等),与
/media
的区别是更偏向“手动管理”。
10. /opt
- 全称:Optional(可选软件)
- 功能:存放第三方软件或大型应用(如商业软件、自编译程序),避免与系统自带软件混淆。例如,可将
/opt/google
用于存放Chrome浏览器。
11. /proc
- 全称:Processes(进程)
- 功能:虚拟文件系统,不占用实际硬盘空间,实时反映系统内核、进程、硬件的状态(通过文件形式展示)。
- 常见文件/目录:
proc/cpuinfo
:CPU信息;proc/meminfo
:内存使用情况;proc/[进程ID]/
:对应进程的详细信息(如proc/1/
是初始化进程systemd
)。
12. /root
- 功能:超级用户(root)的主目录,类似普通用户的
/home
,但位置独立(不放在/home
下,避免/home
分区故障时无法访问root文件)。
13. /run
- 功能:存放系统运行时的临时数据(如进程PID文件、临时锁文件、服务状态等),重启后会被清空,替代了旧版本的
/var/run
。
14. /sbin
- 全称:System Binary(系统二进制文件)
- 功能:存放系统管理命令,通常只有root用户才能使用,用于系统配置和维护(如
ifconfig
、reboot
、fdisk
、iptables
等)。
15. /srv
- 全称:Service(服务数据)
- 功能:存放服务运行时需要的数据(如Web服务器的网站文件、FTP服务器的共享文件等),例如
/srv/www
可用于存放Apache的网页内容。
16. /sys
- 全称:System(系统)
- 功能:虚拟文件系统,用于与内核交互,展示硬件设备的层级结构(如CPU、内存、显卡、USB设备等),支持动态配置硬件参数(比
/proc
更侧重硬件)。
17. /swap
- 说明:这不是标准目录,通常是交换分区(Swap Partition) 的挂载点(或交换文件),当物理内存不足时,系统会将部分数据临时存放到此处,起到“虚拟内存”的作用。
18. /tmp
- 全称:Temporary(临时文件)
- 功能:存放临时文件,所有用户均可读写,系统会定期自动清理(或重启后清空),适合存放不需要长期保留的文件(如程序运行时的缓存)。
19. /usr
- 全称:Unix System Resources(Unix系统资源)
- 功能:存放用户安装的应用程序和数据,是系统中最庞大的目录之一,类似Windows的
Program Files
。 - 主要子目录:
usr/bin/
:普通用户的应用程序(如python
、firefox
);usr/sbin/
:系统管理工具(非核心,如apache2
服务命令);usr/lib/
:应用程序依赖的库文件;usr/share/
:共享数据(如文档、图标、字体等)。
20. /var
- 全称:Variable(可变数据)
- 功能:存放经常变化的数据(如日志、缓存、数据库、邮件等)。
- 主要子目录:
var/log/
:系统和应用程序的日志文件(如var/log/auth.log
记录登录认证信息);var/cache/
:软件包缓存(如APT下载的.deb
文件);var/spool/
:队列数据(如邮件队列、打印任务)。
总结
对于渗透测试场景,常用目录如/etc
(配置网络/服务)、/usr/bin
(调用工具)、/var/log
(查看日志排查攻击痕迹)等尤为重要。