Linux中的配置文件
1. 概述
完全按照我们的需要调整 Linux 的能力使其使用起来非常强大。虽然大多数发行版都提供了用于配置系统的复杂界面,但这些 UI 只是修改分布在整个系统中的纯文本配置文件。因此,了解这些配置文件将消除我们对这些 UI 的依赖,并使我们更加精通 Linux。
在本教程中,我们将了解这些文件的位置以及它们的作用。感谢Filesystem Hierarchy Standard ,本教程中讨论的目录和文件应该在各个发行版中保持一致。
2. 全局配置文件
全局配置文件定义了整个系统的行为。
这些文件通常位于根 ( / ) 分区中,并且需要超级用户访问权限。
2.1. /ETC/
大多数全局配置文件位于/etc*目录中。*
/ *etc/*目录感觉更像一个文件系统,并且有许多子目录,每个子目录都有相关的配置文件。 以下是这些子目录中最有用的列表:
- /etc/X11/ – *xorg *特定的配置文件
- /etc/cups/ – 包含通用 UNIX 打印系统 配置的子目录
- /etc/xdg/ – 遵循 freedesktop.org 规范的应用程序的全局配置
- /etc/ssh/ – 用于为整个系统配置*OpenSSH服务器行为 *
- /etc/apparmor.d/ – 包含AppArmor系统的配置文件
- /etc/udev/ – *udev *相关配置
2.2. /etc/opt/
*/etc/opt/目录应该包含安装在/opt/中的应用程序的全局配置。但是,Linux 不强制执行此操作。结果,我们经常可以看到/opt/目录充满了用户安装的软件,而/etc/opt/*仍然是空的。
2.3. /etc/default/
*/etc/default/下的配置文件历史上包含服务/守护进程的设置,用于初始化系统,例如upstart 。但是,随着systemd *的出现,这个目录现在主要包含用户态应用程序的设置。
*系统不会覆盖/etc/default/*中的文件。**这意味着一旦我们在这里定义了应用程序行为,它们将通过系统升级保持一致。
2.4. 重要的全局配置文件
一些最有用的全局配置文件是:
- /etc/resolv.conf – 用于定义要使用的 DNS 服务器
- /etc/bash.bashrc – 用于定义用户启动*bash * shell时要执行的命令
- /etc/profile – 登录 shell 在启动期间执行 .profile 脚本中的命令
- /etc/dhcp/dhclient.conf – 存储DHCP 客户端所需的网络相关信息
- /etc/fstab – 决定将系统可用的所有分区挂载到哪里
- /etc/hostname – 设置机器的主机名
- /etc/hosts – 将 IP 地址映射到其主机名的文件
- /etc/hosts.deny – 此处列出的远程主机被拒绝访问机器
- /etc/mime.types – 列出MIME-TYPES 和与之关联的文件扩展名
- /etc/motd – 配置用户登录主机时显示的文本
- /etc/timezone – 设置本地时区
- /etc/sudoers – sudoers 文件控制用户的*sudo *相关权限
- /etc/httpd/conf和*/etc/httpd.conf.d* – Apache Web 服务器的配置
- /etc/default/grub – 包含update-grub 用于生成*/boot/grub/grub.cfg的配置*
- /boot/grub/grub.cfg – update-grub命令使用*/etc/default/grub*中定义的设置自动生成此文件
3. 用户特定配置
用户特定的配置文件只为定义它的用户修改系统行为。
这些文件通常位于用户的主目录中,不需要超级用户权限即可进行修改。
需要注意的一件事是,特定于用户的配置总是比全局配置具有更高的优先级。因此,只要存在,应用程序将始终更喜欢用户特定的配置。
当涉及到用户特定的配置时,我们的应用程序遵循两个标准。
3.1.传统配置
传统上,如果应用程序只有一个配置文件,它将存储在*/home/username/.app_name{rc}。但是,如果有多个文件,则配置将存储在目录/home/username/.app_name*中。
这种行为的一个典型例子是vim 编辑器。
3.2. 遵循 XDG 标准的配置文件
freedesktop.org 认为旧系统很混乱,并开发了XDG 基本目录规范 。
根据 XDG 标准,所有用户特定的配置文件都存储在$XDG_CONFIG_HOME*目录*中(通常是*/home/username/.config*)。
在*$XDG_CONFIG_HOME*中,每个应用程序都会创建自己的子目录来存储配置。
NeoVim 编辑器和许多积极开发的应用程序现在遵循 XDG 基本目录规范。这对用户来说也非常方便,因为备份单个*$XDG_CONFIG_HOME*目录会保存所有配置。
3.3. 重要的用户特定配置文件
一些最常用的用户特定配置文件是:
- $HOME/.xinitrc – 这允许我们在使用*startx *命令时设置启动窗口管理器的指令
- $HOME/.vimrc – vim 配置
- $HOME/.bashrc –用户启动非登录 shell 时由bash执行的脚本
- $XDG_CONFIG_HOME/nvim/init.vim –neovim 配置
- $HOME/.editor – 为用户设置默认编辑器
- $HOME/.gitconfig - 设置用于 git 提交的默认名称和电子邮件地址
- $HOME/.profile – 登录 shell 在启动期间执行 .profile 脚本中的命令
- $HOME/.ssh/config –特定用户的ssh配置