Linux 目录层级结构
- 2025-09-29 20:57:00
- 丁国栋
- 原创 10
首先应该了解 Linux 文件系统层次结构标准(FHS) Filesystem Hierarchy Standard。
Linux下的配置文件存放位置一般有以下规律:
- 工具性软件的配置文件一般在 $HOME/.config/<包名称,例如go、nvim>/,也可以是$HOME/.<包名称,例如.azure、.aws、.ansible>/
- 如果一个工具性软件包的配置文件只有一个,可以放置在 $HOME/.<包名称,如.gitconfig、.bashrc>
- 系统级、服务类的配置文件一般在 /etc/<包名称,例如apache2、nginx>/
注意有点“.”和无点的区分,有点是隐藏文件或目录。
在Linux系统中,$HOME/.config
和 $HOME/.local
都是用户级别的配置和数据目录,但它们的用途和规范有所不同:
1. $HOME/.config
- 作用:存储用户应用程序的配置文件(通常是非GUI或GUI程序的配置)。
- 规范依据:遵循 https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html(由 freedesktop.org 制定)。
- 典型内容:
- 程序的配置文件(如
~/.config/gtk-3.0/settings.ini
)。 - 某些应用的缓存或状态信息(如
~/.config/dconf/user
)。
- 程序的配置文件(如
- 特点:
- 替代传统散落在
$HOME
下的隐藏文件(如~/.programrc
)。 - 结构化更强,通常按应用名称分目录存储。
- 替代传统散落在
2. $HOME/.local
- 作用:存储用户级别的应用程序数据、二进制文件和资源,分为三个子目录:
~/.local/share
:应用专属数据(如游戏存档、数据库等)。~/.local/bin
:用户自行安装的可执行文件(通常需手动添加到$PATH
)。~/.local/lib
:用户级别的库文件(较少见)。
- 规范依据:同样遵循 XDG 规范。
- 典型内容:
share/
:字体、图标、应用数据(如~/.local/share/fonts/
)。bin/
:用户编译或下载的脚本/工具(如pip install --user
安装的 Python 工具)。
- 特点:
- 类似系统级的
/usr/local
,但仅对当前用户有效。 - 避免污染系统目录,适合无 root 权限时的软件管理。
- 类似系统级的
主要区别
目录 | 主要用途 | 类比系统目录 | 典型场景 |
---|---|---|---|
~/.config |
配置文件 | /etc |
编辑应用的设置文件 |
~/.local |
数据、可执行文件、资源 | /usr/local |
用户自行安装工具或存储数据 |
为什么需要区分?
- 模块化:避免所有文件混在
$HOME
下,便于备份(如只备份~/.config
而忽略~/.local/cache
)。 - 兼容性:现代应用应遵循 XDG 规范,但传统应用可能仍直接使用
~/.programrc
。
其他相关目录
~/.cache
:临时缓存(可安全删除)。~/.gnupg
、~/.ssh
:特殊用途(安全相关)。
发表评论