linux系统遵循文件系统层次结构标准,不同用途的文件会存放在固定的目录中,软件安装相关的目录也有明确的划分,不同安装方式对应的软件存放位置存在明显区别。

linux常见软件安装目录说明
系统默认软件安装目录
通过系统包管理器(如apt、yum、dnf)安装的软件,会按照规范分散到以下目录:
- /usr/bin:存放软件的可执行二进制文件,普通用户可以直接在终端调用这些命令
- /usr/lib:存放软件的动态链接库文件,是软件运行依赖的核心组件
- /usr/share:存放软件的共享数据,比如帮助文档、图标、配置文件模板等
- /etc:存放软件的全局配置文件,修改这个目录下的文件会影响所有用户的软件使用
第三方软件常用安装目录
手动下载编译安装或者厂商提供的独立软件包,通常会选择以下目录存放:
- /opt:专门用于存放第三方独立软件,每个软件会有自己独立的子目录,比如/opt/nginx、/opt/jdk,卸载时直接删除对应子目录即可,不会残留其他系统文件
- /usr/local:手动编译安装软件时的默认安装路径,编译时如果不指定--prefix参数,软件会默认安装到这个目录下,结构和/usr目录类似,分为bin、lib、share等子目录
特殊软件相关目录
- /var:存放软件运行时的可变数据,比如日志文件、缓存文件、运行时产生的数据,比如mysql的数据文件默认存放在/var/lib/mysql,nginx的日志默认存放在/var/log/nginx
- /home/用户名:普通用户自行安装到用户目录的软件,比如通过pip install --user安装的python包,会存放在~/.local目录下,仅当前用户可用
不同安装方式对应的目录差异
| 安装方式 | 默认安装目录 | 特点 |
|---|---|---|
| apt/yum/dnf包管理器安装 | /usr、/etc、/var等系统目录 | 自动处理依赖,卸载方便,文件分散符合系统规范 |
| 手动编译安装 | /usr/local(默认)或自定义目录 | 可以指定版本和编译参数,卸载需要手动删除文件 |
| 厂商提供的二进制包(如tar.gz) | /opt/软件名 | 独立目录管理,不影响系统其他文件,升级卸载简单 |
| 用户级包管理器安装(如pip、npm) | ~/.local或项目node_modules | 仅当前用户或当前项目可用,不需要root权限 |
如何查看已安装软件的具体路径
如果不确定某个软件的安装位置,可以通过以下命令查询:
查询命令所在路径
使用which命令可以查看命令的可执行文件所在位置,比如查询nginx的路径:
# 查看nginx可执行文件路径 which nginx # 输出示例:/usr/sbin/nginx
查询命令的详细文件分布
使用whereis命令可以查看命令的二进制文件、源码文件、帮助文档的存放位置:
# 查看nginx相关的所有文件路径 whereis nginx # 输出示例:nginx: /usr/sbin/nginx /usr/lib/nginx /etc/nginx /usr/share/nginx /usr/share/man/man8/nginx.8.gz
查询包管理器安装的软件文件列表
如果是通过包管理器安装的软件,可以用对应命令查看所有安装的文件路径,以dpkg(debian系)和rpm(redhat系)为例:
# debian/ubuntu系统查看nginx安装的所有文件 dpkg -L nginx # centos/redhat系统查看nginx安装的所有文件 rpm -ql nginx
目录使用注意事项
不要随意删除/usr、/etc等系统目录下的文件,避免破坏系统稳定性,第三方软件尽量安装到/opt或/usr/local目录,方便后续管理。
如果磁盘空间不足,可以清理/var目录下的日志和缓存文件,或者将/opt、/var等目录挂载到独立的磁盘分区,避免占用根分区空间。