在Linux操作系统中,/usr
和 /etc
目录各有其明确的用途和重要性:
1. /usr
目录:
/usr
目录是系统中用户程序和相关文件的主要存储位置,主要用于存放那些并非系统启动所必需的、但对于大多数或全部用户有用的数据。/usr
目录下的结构划分细致,主要包括以下子目录:
-
/usr/bin
: 存放用户和系统管理员使用的大多数可执行文件,这些文件并不是系统启动时必须的,而是日常操作和应用软件需要用到的命令。 -
/usr/sbin
: 类似/usr/bin
,但存放的是主要供系统管理员使用的系统级别的命令和工具,非普通用户常规操作会用到。 -
/usr/lib
和/usr/lib64
: 存放程序运行所需的共享库文件,分别对应32位和64位架构。 -
/usr/include
: 存放C/C++等编程语言的头文件,对于开发和编译应用程序非常重要。 -
/usr/share
: 存放所有用户共享的只读数据,如文档、帮助文件(manpages)、图标、示例文件、语言资源文件等。 -
/usr/local
: 这个目录用来存放本地安装的软件,即不在系统默认软件包中的第三方软件,便于区分系统自带软件与自行安装的软件。 -
/usr/src
: 可能用于存放软件源代码,但在许多Linux发行版中,这不是一个强制的标准,通常源码会在其他地方(如/opt
或用户自己创建的目录)下载和解压。
2. /etc
目录:
/etc
目录是系统全局配置文件的集中地,包含了几乎所有的系统配置文件和应用程序的配置文件。这个目录下的文件通常是纯文本格式,系统管理员通过对这些文件的修改来调整系统的整体行为和各个服务的配置。具体用途包括:
-
/etc/passwd
,/etc/shadow
,/etc/group
: 存储用户账号、密码信息(加密后)和用户组信息。 -
/etc/fstab
: 定义了系统启动时自动挂载的文件系统列表。 -
/etc/sysconfig
: (在某些Linux发行版中)包含系统启动和服务配置相关的设置。 -
/etc/init.d
或/etc/systemd/system
: 存放系统服务的启动脚本和服务单元文件。 -
/etc/network/
或/etc/sysconfig/network-scripts/
: 存放网络接口配置文件。 -
/etc/resolv.conf
: 设置DNS域名解析服务器的信息。 -
/etc/services
: 列出网络服务名称与其所使用的端口号和协议对照表。 -
/etc/sudoers
: 配置sudo命令,定义哪些用户可以以何种权限运行哪些命令。 -
/etc/apt/sources.list
(Debian系) 或/etc/yum.repos.d/
(RHEL系): 存储软件仓库列表,用于软件包管理工具获取和安装软件。
综上所述,/usr
主要是存放用户层面的应用程序和相关数据,而 /etc
则是系统级别和应用程序级别的配置中心。这两个目录的内容都是系统正常运行和管理不可或缺的组成部分。