什么是“ RC”文件?
1. 简介
数据通常使系统独一无二。一种主要的数据类型包括配置(或配置)文件。虽然用户可以拥有任何类型的内容,但 Linux 系统的大部分配置都是基于标准的。
在本教程中,我们将讨论什么是rc文件和目录以及我们如何使用它们。首先,我们解释一下配置文件的作用。接下来,我们简要回顾一下 Linux 配置结构。最后,我们深入研究rc词缀并使用一些示例文件。
我们使用 GNU Bash 5.1.4 在 Debian 11 (Bullseye) 上测试了本教程中的代码。它应该适用于大多数 POSIX 兼容环境。
2. 配置文件
通常,系统至少需要一些自定义设置。在实践中,配置可以被认为是系统与其上下文之间的粘合剂,包括:
- 用户
- 机器
- 网络
- 地点
所谓的“合理默认值”很少适用于所有情况。此外,例如,基本时间或存储设置会对许多组件产生巨大影响。因此,我们应该确保所有这些都得到妥善处理。
这是否意味着我们需要在每次机器重启时手动挂载?当然不是——这就是我们拥有易失性和非易失性存储器 的原因。后者允许我们存储设置。
实际上,保存和应用配置文件对于包括Linux在内的许多系统的运行来说是方便且必不可少的。
3. Linux配置
在任何 Linux 风格中,都有具有许多功能的配置文件:
- 设置图形界面
- 保存用户和安全数据
- 启用和配置网络
- 持有不同的包和应用程序的偏好
- shell配置
实际上,我们已经了解了 许多常用配置文件的位置、名称和用途。此外,我们注意到他们中的许多人都在同一地点,尤其是在服务于类似的目标时。
一个值得注意的例子是*/etc*目录。它包含各种配置文件,当知道如何查看时,这些文件更容易分类。
重要的是,某些配置文件和目录具有共同的后缀。它们通常也表示具有相似用途的文件。例如,/etc/ssh通常包含以*ssh_*为前缀的文件:
$ ls -1 /etc/ssh
moduli
ssh_config
ssh_config.d
ssh_config.dpkg-dist
sshd_config
sshd_config.d
ssh_host_ecdsa_key
ssh_host_ecdsa_key.pub
ssh_host_ed25519_key
ssh_host_ed25519_key.pub
ssh_host_rsa_key
ssh_host_rsa_key.pub
然后是rc后缀,可以加在很多不同文件的文件名或扩展名上。
4. rc配置文件
包含rc 的名称通常表示带有代码的文件或文件目录。具体来说,此代码包含旨在在执行程序时运行的命令。事实上,该程序可以是一个应用程序,但也可以是一个完整的操作系统。
因此,原来的rc词缀和扩展名都表示“运行命令”。特别是,该术语的一个被广泛接受的来源是兼容分时系统 (CTSS)。Louis Pouzin 是 CTSS 项目的一部分,他创建了RUNCOM命令,它运行来自一个文件的指令——一个RUNCOM 文件。让我们看一个经典的例子—— /etc/rc文件:
hostname toaster
ifconfig e0 `hostname`-0
ifconfig e1 `hostname`-1
ifconfig f0 `hostname`-f0
ifconfig a5 `hostname`-a5
route add default MyRouterBox
routed on
savecore
另一方面,正如在技术领域中常见的那样,rc从一开始就在不断发展。事实上,配置现在有多种格式,而不仅仅是一系列指令。因此,rc mutated的含义:
- 运行控制
- 运行配置
- 运行时配置
让我们继续几个经典的 RUNCOM 文件,以及一些更新的衍生文件。
5. rc文件示例
著名的vi 编辑器使用vimrc配置文件。值得注意的是,它可以设置界面选项,还可以帮助设置命令映射 。
当然,一个非常常见的配置文件是.bashrc**。它包含在每个 Bash 会话之前运行的指令。例如,我们可能会使用别名 来为常用操作或预设变量提供简单的快捷方式。
即便如此,.bashrc通常是从*.profile*中调用的,尽管它的名称如此,但其功能也类似于 RUNCOM。它甚至涵盖了 Bash 本身之外的 shell。
虽然不是很准确,但这里有一个相当简单的方法来查看一些著名的rc文件:
$ find /etc -name 'rc*' -or -name '*rc'
/etc/inputrc
/etc/rcS.d
/etc/rc5.d
/etc/rc4.d
/etc/rc6.d
/etc/nanorc
/etc/wgetrc
/etc/rc0.d
/etc/vim/vimrc
/etc/libreoffice/sofficerc
/etc/X11/Xsession.d/40x11-common_xsessionrc
/etc/bash.bashrc
/etc/skel/.bashrc
/etc/xdg/termit/rc.lua
/etc/rc3.d
/etc/rc1.d
/etc/rc2.d
/etc/alternatives/rcp
/etc/alternatives/rcp.1.gz
请注意,其中一些项目是目录,例如rcS.d及其具有相似名称的编号同居者。也就是说,它们包含守护程序控制脚本,其功能也类似于 RUNCOM 文件。