常见目录

Linux 将整个文件系统看作一棵树,这棵树的树根叫做根文件系统,用 / 表示。

常用的系统文件目录

目录语义描述
/rootRoot Directories系统管理员的主目录
/home/usernameHome Directories普通用户的主目录
/binUser Binaries供所有用户使用的完成 基本维护任务的命令
/sbinSystem Binaries存放系统管理员使用的 管理程序命令
/libSystem Libraries系统最基本的 共享链接库和内核模块
/etcConfiguration Files系统和应用软件的 配置文件
/tmpTemporary Files临时文件的存放目录
/procProcess Information虚拟文件系统
/varVariable Files存放在系统 运行时可能会更改的数据
/usrUnix Software ResourceUnix 操作系统软件资源所放置的目录,而非用户的数据

/usr 不是 user 的缩写,其实 usr 是 Unix Software Resource,也就是 Unix 操作系统软件资源所放置的目录,而非用户的数据;所有系统默认的软件都会放置到 /usr,系统安装完时,这个目录会占用最多的硬盘容量。

目录语义描述
/usr/bin用户需要执行的命令,例如压缩、文件查找、客户端等程序
/usr/sbin系统运行不必须的命令,例如服务端程序、用户管理等程序
/usr/includeC / C++ 头文件
/usr/lib普通用户使用的库文件
/usr/local个人安装的软件,通常需要手动指定;与 /usr 目录的目录结构相似
/usr/libexec
/usr/share
/usr/standalone

其他文件目录

目录语义描述
/bootBoot Loader Files启动 Linux 时的核心文件
/devDevice Files所有 Linux 的外围设备
/lost+found无家可归文件的避难所
/mntMount Directory空目录,用于提供给用户临时挂接别的文件系统
/optOptional add-on Apps第三方工具使用的安装目录
/srvService Data
/mediaRemovable 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


参考资料: