一、概述
名称 | 含义 | 简称 |
---|---|---|
/ | 整个文件系统的最上层 | 根目录 |
/bin | 存放必要的命令,这些命令对于系统的正常运行至关重要,可供所有用户使用 | 二进制目录 |
/boot | 存放引导加载程序和内核镜像文件,这些文件用于启动系统 包含系统所需的文件: GRUB引导加载程序的文件 Linux内核 | 启动文件目录 |
/dev | 包含代表许多设备的特殊文件和为伪设备 /dev/sda表示系统中第一个SATA驱动器 /dev/random产生随机数(伪设备) /dev/null一种特殊设备,不产生任何输出并自动丢弃所有输出 | 设备文件目录 |
/etc | 包含系统范围内的配置文件 注:特定于用户的配置文件位于每个用户的家目录中 | 配置文件目录 |
/home | 用户的家目录,包含用户的数据文件和用户特定的配置文件 | 用户主目录 |
/root | root用户的家目录 | 超级用户目录 |
/run | 用于存储系统启动以来的信息,如正在运行的服务的状态文件 | 运行信息目录 |
/sbin目录 | 包含二进制文件 | 命令目录 |
/tmp | 存储临时文件,重启时自动清理 | 临时文件目录 |
/usr(unix software resource) | 包含用户使用的应用程序和文件,而不是系统使用的应用程序和文件 /usr/bin:非必需的应用程序 /usr/sbin:非必需的系统管理二进制文件 /usr/local:本地编译的应用程序安装目录 /usr/lib:/usr/bin目录中的二进制文件所需的库文件 | 用户程序目录 |
/var | 包含系统运行中内容不断变化的文件 日志,脱机文件和历史电子邮件文件 | 变量数据目录 |
/lib | / bin和/sbin目录中二进制需要的库文件 | 库文件目录 |
/media | 可移除媒体挂载点,用于挂载外部媒体设备,如 U 盘、CD/DVD 驱动器等 | 挂载目录 |
/mnt | 临时挂载文件系统的位置 | 临时挂载目录 |
/opt | 可选应用软件包目录(空目录,不知道放哪就放这里) | 应用程序目录 |
/proc | 虚拟文件系统,将内核于进程状态归档为文本文件 该目录是一个虚拟目录,是系统内存的映射,可以通过直接访问这个目录来获取系统信息 | 系统运行信息目录 |
/srv | 保存系统提供的服务的数据 | |
/cdrom | 插如CD-ROM临时位置 注:临时媒体的标准位置在/media | |
/lost+found | 存放系统系统异常时文件的碎片,以便恢复 |
二、/usr /opt /etc
/usr 目录
系统级应用和库:/usr 目录主要用于存放系统级的应用程序和库文件。这里存放的软件通常被认为是系统的一部分,是预装的或通过包管理器安装的。
- Web 服务器:例如 Apache HTTP Server (httpd)、Nginx (nginx)。
- 数据库管理系统:如 MySQL (mysql-server)、PostgreSQL (postgresql)。
- 编程语言和解释器:如 Python (python3)、Ruby (ruby)。
- 文本编辑器:如 Vim (vim)、Nano (nano)。
- 编译器和开发工具:如 GCC (gcc)、GDB (gdb)。
- 实用工具:如 Git (git)、Docker (docker)。
这些软件通常安装在 /usr/bin、/usr/lib、/usr/local 等子目录中。
/opt 目录
可选的第三方应用:/opt 目录通常用于安装那些不是系统核心部分的可选应用或服务,特别是那些由特定供应商提供的软件包。
- 办公套件:如 LibreOffice (libreoffice)。
- 数据库系统:如 MongoDB (mongodb)。
- 企业级应用:如 Oracle 数据库 (oracle)、SAP HANA (sap-hana)。
- 开发工具:如 IntelliJ IDEA (intellij-idea)、Eclipse (eclipse)。
- 多媒体应用:如 VLC Media Player (vlc)。
这些软件通常作为一个完整的包安装在 /opt 下的单独目录中,例如 /opt/libreoffice 或 /opt/mongodb。
/etc 目录
系统配置文件:/etc 目录主要用于存放各种服务和应用的配置文件。这里存放的文件通常不是可执行文件,而是配置文件或脚本。
- 系统服务配置:如 SSH (sshd_config)、NetworkManager (NetworkManager.conf)。
- Web 服务器配置:如 Apache (httpd.conf)、Nginx (nginx.conf)。
- 数据库配置:如 MySQL (my.cnf)、PostgreSQL (postgresql.conf)。
- 防火墙配置:如 iptables (iptables.rules)。
- 系统工具配置:如 cron (crontab)。
这些配置文件通常位于 /etc 目录及其子目录中,例如 /etc/httpd、/etc/mysql 等。
示例
Apache Web 服务器:Apache 可能安装在 /usr 目录下,其配置文件位于 /etc/httpd。
- /usr/sbin/httpd:Apache 服务器的可执行文件。
- /etc/httpd/conf/httpd.conf:Apache 的主配置文件。
- /etc/httpd/conf.d:存放站点配置文件。
MongoDB 数据库:MongoDB 可能安装在 /opt 目录下。
- /opt/mongodb/bin/mongod:MongoDB 服务器的可执行文件。
- /etc/mongod.conf:MongoDB 的配置文件。
SSH 服务:SSH 服务的配置文件位于 /etc 目录下。
- /etc/ssh/sshd_config:OpenSSH 服务器的配置文件。
三、二进制文件和库文件(/bin和/lib)
库文件:
- 定义:预编译好的代码集合,用于提供功能给程序使用
- 用途:提供功能给多个程序共享
- 类型:静态库(编译时链接)、动态库(运行时链接)
- 位置:/lib、/usr/lib、/usr/local/lib 等
- 示例:/lib64/libc.so.6(动态库)
- 用途:提供 C 语言的标准库功能。
- 内容:预编译的代码,实现了如 malloc、free、printf 等函数。
- 链接方式:在程序运行时动态链接
二进制文件:
- 定义:编译后的机器码文件,可以直接执行
- 用途:直接运行的程序文件
- 位置:/bin、/sbin、/usr/bin、/usr/sbin 等
- 示例:/bin/ls
- 用途:列出目录内容。
- 内容:编译后的机器码,可以直接执行。
- 执行方式:直接运行
库文件可以类比为java中jar包,二进制文件可以类比为
.class
文件