ubuntu 安装软件时候, 都会安装到不同的文件夹中,比如 include 、lib 都是啥意思?
在 Ubuntu(或大多数 Linux 系统)上,安装软件时,会将不同类型的文件放置到特定的目录中。这些目录都有明确的用途,以便系统和开发者能够轻松找到它们。以下是一些常见的目录及其含义:
1. /include 或 /usr/include
- 含义: 存放头文件(header files),通常以
.h为扩展名。 - 用途: 头文件包含函数、宏、数据类型的声明,供编译器在编译源代码时使用。开发者在写代码时需要引用这些文件,以便使用库中的功能。
- 例子: 当你编写 C 或 C++ 程序时,使用
#include <stdio.h>这样的语句来包含标准输入输出的函数声明,stdio.h就是存放在/usr/include中。
2. /lib 或 /usr/lib
- 含义: 存放系统和程序使用的共享库或静态库文件,通常扩展名为
.so(共享库,类似于 Windows 的.dll)或者.a(静态库)。 - 用途: 共享库文件在运行时为程序提供所需的功能,比如数学运算库、图形库等。程序执行时,会动态链接这些库。
- 例子:
/usr/lib/libm.so是数学运算库的共享对象文件,程序可以在运行时动态链接它以执行数学运算。
3. /bin 和 /usr/bin
- 含义: 存放系统和用户可以直接运行的二进制可执行文件(program binaries)。
- 用途: 这些是系统的核心或用户的常用程序,用户可以直接从命令行执行它们。
- 例子:
/bin/ls是列出目录内容的程序,用户可以在终端输入ls来使用它。
4. /sbin 和 /usr/sbin
- 含义: 存放系统管理员(superuser)使用的二进制文件。
- 用途: 这些程序是专为系统管理任务设计的,普通用户可能无法直接使用它们,只有超级用户或具有管理员权限的用户才能执行。
- 例子:
/sbin/reboot是系统重启命令,通常需要管理员权限才能运行。
5. /lib64 或 /usr/lib64
- 含义: 存放 64 位系统的共享库文件。
- 用途: 专门为 64 位架构提供的库。现代 64 位系统会将这些库存放在
lib64文件夹中,而不是传统的lib目录中。 - 例子: 在 64 位 Ubuntu 系统上,64 位库文件会放在
/usr/lib64中。
6. /share 或 /usr/share
- 含义: 存放应用程序的共享资源文件,比如文档、帮助文件、配置文件样本、图标等。
- 用途: 这些文件不依赖于特定的架构(与库不同),而是应用程序的跨平台资源。
- 例子:
/usr/share/icons存放了系统和程序使用的图标文件。
7. /opt
- 含义: 专门为第三方应用程序保留的目录,通常是商业软件或大规模软件套件。
- 用途: 如果你从外部下载并手动安装软件,通常它会放在
/opt中,而不会混入系统的标准路径中。 - 例子: Google Chrome 安装后,可能会存放在
/opt/google/chrome目录下。
8. /etc
- 含义: 存放系统和程序的配置文件。
- 用途: 这些文件控制着系统和应用程序的行为,用户和管理员可以编辑这些文件来修改配置。
- 例子:
/etc/apt/sources.list是 APT 包管理器的配置文件,决定了软件包的下载源。
9. /var
- 含义: 存放可变数据(variable data),如日志文件、缓存文件、数据库文件等。
- 用途: 这个目录中的数据会经常变化或增长,通常包括系统运行时产生的各种数据。
- 例子:
/var/log/syslog是系统的日志文件,记录系统的运行情况。
总结
include: 头文件,用于编译时引用。lib: 库文件(共享或静态),用于程序运行时动态链接或静态编译。bin: 可执行程序,用户可以直接运行。sbin: 系统管理可执行程序,通常需要管理员权限。lib64: 专为 64 位架构的库文件。share: 跨平台共享资源,如文档、图标。opt: 第三方应用程序的安装目录。etc: 系统和应用程序的配置文件。var: 可变数据文件,如日志、缓存、数据库。
通过将不同类型的文件分类存放,Linux 系统更容易管理和维护,也让开发者和用户能够方便地找到所需的文件。

浙公网安备 33010602011771号