Linux 将整个文件系统看作一棵树,这棵树的树根叫做根文件系统,用 / 表示。
| 目录 | 语义 | 描述 |
|---|---|---|
| /root | Root Directories | 系统管理员的主目录 |
| /home/username | Home Directories | 普通用户的主目录 |
| /bin | User Binaries | 供所有用户使用的完成 基本维护任务的命令 |
| /sbin | System Binaries | 存放系统管理员使用的 管理程序命令 |
| /lib | System Libraries | 系统最基本的 共享链接库和内核模块 |
| /etc | Configuration Files | 系统和应用软件的 配置文件 |
| /tmp | Temporary Files | 临时文件的存放目录 |
| /proc | Process Information | 虚拟文件系统 |
| /var | Variable Files | 存放在系统 运行时可能会更改的数据 |
| /usr | Unix Software Resource | Unix 操作系统软件资源所放置的目录,而非用户的数据 |
/usr 不是 user 的缩写,其实 usr 是 Unix Software Resource,也就是 Unix 操作系统软件资源所放置的目录,而非用户的数据;所有系统默认的软件都会放置到 /usr,系统安装完时,这个目录会占用最多的硬盘容量。
| 目录 | 语义 | 描述 |
|---|---|---|
| /usr/bin | 用户需要执行的命令,例如压缩、文件查找、客户端等程序 | |
| /usr/sbin | 系统运行不必须的命令,例如服务端程序、用户管理等程序 | |
| /usr/include | C / C++ 头文件 | |
| /usr/lib | 普通用户使用的库文件 | |
| /usr/local | 个人安装的软件,通常需要手动指定;与 /usr 目录的目录结构相似 | |
| /usr/libexec | ||
| /usr/share | ||
| /usr/standalone |
| 目录 | 语义 | 描述 |
|---|---|---|
| /boot | Boot Loader Files | 启动 Linux 时的核心文件 |
| /dev | Device Files | 所有 Linux 的外围设备 |
| /lost+found | 无家可归文件的避难所 | |
| /mnt | Mount Directory | 空目录,用于提供给用户临时挂接别的文件系统 |
| /opt | Optional add-on Apps | 第三方工具使用的安装目录 |
| /srv | Service Data | |
| /media | Removable Devices |
/proc 目录挂载了一个虚拟文件系统,以虚拟文件的形式映射系统与进程在内存中的运行时信息。
/proc 下的直接子目录通常存储系统信息。
| 目录 | 描述 | 举例 |
|---|---|---|
| /proc/cpuinfo | 处理器的相关信息 | physical id、cpu cores、siblings、processor |
| /proc/version | 系统的内核版本号 | Linux version 3.10. |
重点是 /proc/ 目录映射的进程信息。以
| 目录 | 描述 |
|---|---|
/proc/<pid>/cmdline | 启动当前进程的完整命令 |
/proc/<pid>/cwd | 当前进程工作目录的软链 |
/proc/<pid>/environ | 当前进程的环境变量列表 |
/proc/<pid>/exe | 启动当前进程的可执行文件的软链 |
/proc/<pid>/fd | 目录,保持当前进程持有的文件描述符(以软链形式存在,指向实际文件) |
/proc/<pid>/limits | 当前进程使用资源的软限制、硬限制(和单位) |
/proc/<pid>task | 目录,保存当前进程所运行的每一个线程的相关信息; 以 <tid> 作为各线程的目录名,目录结构与 /proc/<pid> 相似 |
/var 目录存放数据文件,如程序数据、日志等;但线上通常只将日志放在 /var 目录。
通过 rsyslog 记录系统级日志,配置文件为 /etc/rsyslog.conf。重点看 /var/log/messages 的配置:
# Log anything (except mail) of level info or higher.# Don't log private authentication messages!*.info;mail.none;authpriv.none;cron.none /var/log/messages
*.info表示所有服务大于等于 info 优先级的信息都会记录到/var/log/messages中;mail.none表示不记录任何 mail 的信息到/var/log/messages中。
以上配置表示:除安全认证、邮件、定时任务外,输出到 stdout、stderr 的 info 及更高级别的日志记录在 /var/log/messages 中。
参考资料: