在Linux中的我的主文件夹中,有几个文件名扩展名为"rc"的配置文件:
$ ls -a ~/|pcregrep 'rc$'
.bashrc
.octaverc
.perltidyrc
.screenrc
.vimrc
这些名称中的 "rc" 是什么意思?
在Linux中的我的主文件夹中,有几个文件名扩展名为"rc"的配置文件:
$ ls -a ~/|pcregrep 'rc$'
.bashrc
.octaverc
.perltidyrc
.screenrc
.vimrc
这些名称中的 "rc" 是什么意思?
看起来它可能是以下之一:
此外,我找到了一个引文:
‘rc’后缀可以追溯到Unix的祖先CTSS。它有一个称为“runcom”的命令脚本功能。早期的Unix使用‘rc’作为操作系统启动脚本的名称,以对CTSS runcom表示敬意。
运行时配置通常在config
目录中。我把它们看作资源文件。如果文件名中出现rc
,这可能是版本,即发布候选版。
编辑:不,正式地撤回...“run commands”
[Unix:来自1962-63年CTSS系统上的runcom文件,通过启动脚本/etc/rc]
脚本文件包含应用程序(或整个操作系统)的启动指令,通常是一个文本文件,包含那些在系统运行后可能手动调用的命令,但每次系统启动时都将自动执行。
因此,似乎“rc”部分代表“runcom”,我认为可以扩展为“run commands”。实际上,这正是文件包含的内容,是Bash应该运行的命令。
我学到了新东西! :)
在类Unix系统中,rc代表“运行命令”这一短语。它用于包含命令启动信息的任何文件。人们认为其起源于1965年麻省理工学院兼容时间共享系统(CTSS)的Runcom设施。
我想在之前对这个主题的探索中添加我的发现。
简而言之,我认为:bashrc和init rc中的rc都代表runcom,即运行命令的缩写。
init的起源是向CTSS的runcom致敬,而在shell的情况下,“shell”和底层的宏处理器都是CTSS概念的直接后代,该概念最初由Louis Pouzin于1965年首次描述。请参见以下片段:
主题:SHELL:调用和链接系统中过程的全局工具 来自:Louis Pouzin。 日期:1965年4月2日
https://people.csail.mit.edu/saltzer/Multics/Multics-Documents/MDN/MDN-4.pdf
主题:RUNCOM • 636系统的宏过程处理器 发件人:Louis Pouzin。 日期:1965年4月7日
https://people.csail.mit.edu/saltzer/Multics/Multics-Documents/MDN/MDN-5.pdf
SHELL 4.1 我们可以设想一个通用的过程,每当用户在控制台键入某些消息时,由监督程序自动调用,在他没有其他进程在控制台控制下活动执行(目前称为命令级别)的时间。这个过程充当控制台消息和子例程之间的接口。这样一个过程的目的是创建一个交换媒介,可以激活任何过程,如果在另一个程序内部调用。为了简化起见,我们将把那个过程称为“SHELL”。
请求堆叠 7.1 类似于在控制台键入的请求链接很简单。从任何过程中连续调用SHELL,以及在递归的任何级别上,都允许无限链接请求。 7.2 另一个常用于当前系统的功能是执行存储在BCD文件中的一堆请求。这种模式是一种简单的变化,因为它包括读取几个BCD请求字符串的块,并将返回推迟到调用程序直到该块已耗尽。由于当前系统约定,当请求名称为RUNCCflM时,SHELL会选择此执行模式,而第一个参数是文件的BCD名称。但是,任何其他约定也可能有效。
除此之外,我提供了Unix用户手册Release 3,1980年6月的“mk - 如何重新制作系统和命令”
“lib目录包含加载用户程序时使用的库。其中最大且最重要的是C库。所有库都在子目录中,并由makefile或runcom创建。runcom是一种Shell命令过程,专门用于重新制作系统的一部分。:lib将重建给定为参数的库。”
http://bitsavers.trailing-edge.com/pdf/att/unix/System_III/UNIX_Users_Manual_Release_3_Jun80.pdf
此外,有趣的是,最初的 Bourne shell(bsh)在启动时没有像后来的 csh 和 ksh 一样进行文件读取。https://www.ibm.com/support/pages/overview-shell-startup-files
考虑到ksh和csh都出现的时间以及它们都使用堆叠命令的启动外壳初始化程序,这使得它成为外壳启动runcom非常合理。
-IdS
rc6.d
包含 运行命令 文件(shell 脚本),当切换到运行级别 6 时,init 应该执行这些文件。我认为在这种情况下,“RC”的英文含义与 /etc/bash.bashrc
或 ~/.vimrc
等上下文中的含义相同,但它们作为系统部分的功能却非常不同。如果这种用法(在进入运行级别时运行命令)是最古老的,那将是有趣的,并且可以解释名称的选择(其他答案确实提到了早期 Unix 引导文件具有 rc 名称),但您并未声明并似乎忽略了“rc”文件的其他用途。 - Peter Cordes