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 系统更容易管理和维护,也让开发者和用户能够方便地找到所需的文件。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现