bessarabov
bessarabov

Reputation: 11871

What does "rc" mean in dot files

In my home folder in Linux I have several config files that have "rc" as a file name extension:

$ ls -a ~/|pcregrep 'rc$'
.bashrc
.octaverc
.perltidyrc
.screenrc
.vimrc

What does the "rc" in these names mean?

Upvotes: 446

Views: 129112

Answers (6)

ItsDotScience
ItsDotScience

Reputation: 31

Figure I would add my finding on a previous dive into this subject.

The short, imho: The rc in both bashrc and init rc both stand for runcom, short for run commands.

The init origin owing as a homage to the runcom's of CTSS while in the case of shells, the "shell" and indeed the underlying macro procedure processor are all direct descendant of the CTSS concept first described by Louis Pouzin in 1965. See snippets below

SUBJECT: The SHELL: A Global Tool for Calling and Chaining Procedures in the System FROM: Louis Pouzin . DATE: April 2, 1965

https://people.csail.mit.edu/saltzer/Multics/Multics-Documents/MDN/MDN-4.pdf

SUBJ: RUNCOM • A Macro Procedure Processor for the 636 System FROM:FROM: Louis Pouzin . DATE: April 7 1965

https://people.csail.mit.edu/saltzer/Multics/Multics-Documents/MDN/MDN-5.pdf

The SHELL 4.1 We may envision a common procedure called automatically by the supervisor whenever a user types in some message at his console, at a time when he has no other process in active execution under con- sole control (presently called command level). This procedure acts as an interface between console messages and subroutine. The purpose of such a procedure is to create a medium of exchange into which one could activate any procedure, ~ if _g ~ called~~ inside of another program. Hereafter, for simplification, w·e shall refer to that procedure as the ''SHELL

Requests Stacking 7.1 The chaining of requests, similar to those typed at the console, is straightforward. Consecutive calls to the SHELL, from any procedure, and at any level of recursion, allows an unlimited chaining of requests. 7.2 Another feature con~only used on the present system is the execution of a stack of requests stored into a BCD file. This mode is a easy variation, as it oonsist:s in reading a block of several BCD request strings, and postpone the return to the calling program until the block has been exhausted. Due to the present system conventions, the SHELL selects. this mode of execution when the name of the request is RUNCCflM, while the first argument is· the BCD namE! of the file. But any other convention may work as well.

In addition to this, I offer "mk -- how to remake the system and commands" from the Unix Users Manual Release 3, June 1980

"The lib directory contains libraries used when loading user programs. The largest and most important of these is the C library. All libraries are in sub-directories and are created by a makefile or runcom. A runcom is a Shell command procedure used specifically to remake a piece of the system. :lib will rebuild the libraries that are given as arguments."

http://bitsavers.trailing-edge.com/pdf/att/unix/System_III/UNIX_Users_Manual_Release_3_Jun80.pdf

Further, interestingly the original Bourne shell, bsh, did not have a file read when started like csh and ksh which came after.

https://www.ibm.com/support/pages/overview-shell-startup-files

Given the time both ksh and csh came out and both make use of a start-up shell initializer of stacked commands it really makes a lot of sense it would be the shell's startup runcom.

-IdS

Upvotes: 1

Ribtoks
Ribtoks

Reputation: 6922

It looks like one of the following:

  • run commands
  • resource control
  • run control
  • runtime configuration

Also I've found a citation:

The ‘rc’ suffix goes back to Unix's grandparent, CTSS. It had a command-script feature called "runcom". Early Unixes used ‘rc’ for the name of the operating system's boot script, as a tribute to CTSS runcom.

Upvotes: 441

Nelssen
Nelssen

Reputation: 1147

In the context of Unix-like systems, the term rc stands for the phrase "run commands". It is used for any file that contains startup information for a command. It is believed to have originated somewhere in 1965 from a runcom facility from the MIT Compatible Time-Sharing System (CTSS).

Reference: https://en.wikipedia.org/wiki/Run_commands

Upvotes: 21

Prometheus
Prometheus

Reputation: 33625

Runtime Configuration normally if it's in the config directory. I think of them as resource files. If you see rc in file name this could be version i.e. Release Candidate.

Edit: No, I take it back officially... "run commands"

[Unix: from runcom files on the CTSS system 1962-63, via the startup script /etc/rc]

Script file containing startup instructions for an application program (or an entire operating system), usually a text file containing commands of the sort that might have been invoked manually once the system was running but are to be executed automatically each time the system starts up.

Thus, it would seem that the "rc" part stands for "runcom", which I believe can be expanded to "run commands". In fact, this is exactly what the file contains, commands that bash should run.

Quoted from What does “rc” in .bashrc stand for?

I learnt something new! :)

Upvotes: 54

Chung Lim
Chung Lim

Reputation: 179

In Unix world, RC stands for "Run Control".

http://www.catb.org/~esr/writings/taoup/html/ch10s03.html

Upvotes: 4

Justin Scott
Justin Scott

Reputation: 1

To understand rc files, it helps to know that Ubuntu boots into several different runlevels. They are 0-6, 0 being "halt", 1 being "single-user", 2 being "multi-user"(the default runlevel), etc. This system has now been outdated by the Upstart and initd programs in most Linux Distros. It is still maintained for backwards compatibility.

Within the /etc directory are several folders labeled "rc0.d, rc1.d" etc, through rc6.d. These are the directories the kernel refers to to know which init scripts it should run for that runlevel. They are symbolic links to the system service scripts residing in the /etc/init.d directory.

In the context you are using it, it would appear that you are listing any files with rc in the name. The code in these files will set the way the services/tasks startup and run when initialized.

Upvotes: -11

Related Questions