可执行文件目录
-
/bin
(基本系统命令)-
包含核心操作系统程序,在系统启动时必须可用 ,即使没有挂载
/usr
也能运行。 -
这里的命令通常用于基本文件操作、文本处理和进程管理,如:
bashls # 列出文件 cp # 复制文件 mv # 移动文件 rm # 删除文件
-
-
/sbin
(系统管理命令)-
存放需要
root
权限的系统管理工具,如磁盘分区、网络管理、系统恢复等命令。 -
仅管理员(root)用户可运行,一般用户若需使用,可通过
sudo
提升权限。bashfdisk # 磁盘分区 reboot # 重新启动系统 ifconfig # 配置网络接口
-
-
/usr/bin
(非核心用户程序)-
存放非操作系统核心 的可执行文件,通常由软件包管理器安装,如:
bashpython # 解释器 git # 版本控制 vim # 文本编辑器 curl # 网络请求工具
-
这些程序在
/usr
挂载后才能访问,不参与系统启动的早期阶段。
-
-
/usr/local/bin
(管理员安装的自定义程序)-
存放管理员手动安装的可执行文件 ,通常是自行编译的软件,用于避免覆盖系统默认版本:
bash/usr/local/bin/custom_python # 用户编译的 Python 版本 /usr/local/bin/my_script.sh # 自定义脚本
-
优先级高于
/usr/bin
,可以通过调整PATH
变量修改搜索顺序:bashexport PATH=/usr/local/bin:$PATH # 优先使用 /usr/local/bin 里的程序
-
共享库目录
-
/lib
(基本库文件)- 存放
/bin
和/sbin
命令所需的共享库文件,如glibc
(C 语言标准库)。 - 这些库在系统启动初期就必须可用,因此
/lib
目录无需依赖/usr
挂载。
- 存放
-
/usr/lib
(用户应用程序库)- 存放
/usr/bin
和/usr/local/bin
依赖的共享库文件,适用于非核心系统程序。 - 这些库文件不会被系统启动初期使用 ,因此它们存放在
/usr/lib
而非/lib
。
- 存放
-
环境变量调整搜索顺序
-
可以通过
LD_LIBRARY_PATH
变量调整共享库的搜索顺序:bashexport LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
-
配置文件目录
-
/etc
(配置文件)-
存放所有系统和应用程序的配置文件,例如:
bash/etc/passwd # 用户信息 /etc/fstab # 挂载信息 /etc/hosts # 主机名解析
-
/etc
目录通常不包含二进制程序,仅用于存储配置。
-
用户目录
-
/home
(普通用户目录)-
每个用户都有自己的目录,如:
/home/user1 /home/user2
-
存放用户的个人数据、配置文件和下载内容。
-
-
/root
(root
用户的家目录)root
用户的个人目录,类似于/home/user
,但仅限root用户使用。
变量数据目录
-
/var
(存放可变数据,如日志和缓存)-
主要存储日志、缓存、队列数据等:
bash/var/log # 系统日志文件 /var/spool # 邮件、打印机队列 /var/tmp # 临时文件
-
/var
目录的内容可能会频繁变化 ,而/etc
目录通常是静态配置文件。
-
-
/run
(易失数据,系统进程间通信)-
存放系统运行时产生的临时数据,如进程 PID 文件、套接字(socket)文件等:
bash/run/sshd.pid # ssh 进程的 PID 文件 /run/docker.sock # Docker 进程的套接字文件
-
/run
目录中的内容在系统重启后会丢失。
-
虚拟文件系统
-
/proc
(进程信息)-
提供系统运行时的进程和内核信息 ,它是内存中的虚拟文件系统:
bash/proc/cpuinfo # 查看 CPU 信息 /proc/meminfo # 查看内存信息 /proc/1234 # 进程 ID 1234 的信息
-
读取
/proc
目录下的文件相当于查询系统状态,而不是实际存储数据。
-
-
/sys
(内核与设备信息)-
用于提供硬件设备、内核模块的信息:
bash/sys/block/ # 硬盘信息 /sys/class/net/ # 网络接口信息
-
/sys
是现代 Linux 内核提供的硬件接口,可用于管理设备。
-
其他目录
-
/opt
(第三方软件)-
存放第三方软件(通常是手动安装的商业软件或大型应用程序)。
-
例如:
bash/opt/google/chrome/ # Google Chrome /opt/zoom/ # Zoom 会议软件
-
-
/media
和/mnt
(挂载点)-
/media
:用于自动挂载可移动存储设备(如 USB、CD-ROM)。 -
/mnt
:用于手动挂载临时存储设备,例如:bashmount /dev/sdb1 /mnt
-
-
/srv
(服务器数据存储)-
存放服务器应用(如 Web 服务器、FTP 服务器)提供的数据:
bash/srv/www/ # Web 服务器文件 /srv/ftp/ # FTP 服务器文件
-
总结
目录 | 作用 |
---|---|
/bin |
核心系统命令(所有用户可用) |
/sbin |
系统管理工具(仅 root 可用) |
/usr/bin |
非核心程序(软件包管理器安装) |
/usr/local/bin |
手动安装的软件(优先级高) |
/lib |
核心系统库(系统启动时需要) |
/usr/lib |
用户程序库(非核心系统库) |
/etc |
配置文件目录 |
/home |
普通用户目录 |
/root |
root 用户目录 |
/var |
日志、缓存、队列数据 |
/run |
易失数据,进程间通信 |
/proc |
进程信息(虚拟文件系统) |
/sys |
硬件信息(虚拟文件系统) |
/opt |
第三方软件 |
/media /mnt |
存储设备挂载点 |
/srv |
服务器数据 |