A Short History of Unix and its Command Line Interface ( CLI)

by Craig Miller

The Unix operating system was developed by AT&T Labs in the late 1960’s. Its official birthdate is 1 Jan 1970 — the beginning of the Unix Epoch. Unix was designed from the very beginning to be a multi-tasking, multi-user operating system. Its source code was given to major U.S. universities to help improve it; one of these eventually became BSD Unix (Berkeley Standard Distribution).

VT-100 terminal

There was no GUI until the mid-1980s when X Windows was created by MIT. Until this emerged, all configuration had to be done in the Command Line Interface (CLI), using character-based controls entered on terminals, each of which had a separate keyboard & screen linked to a central Unix computer via an RS-232 serial connection. Common Unix terminals were the VT100 (left), and later, X Terminals. The GNU nano text editor was created in 1999.

The Free Software Foundation (FSF) was started in 1985 with the idea of creating Unix-like commands that were not bound by the AT&T license. The Linux kernel released by Linus Torvalds in 1991. With the Linux kernel and FSF software, there was now an AT&T-license-free version of a multi-tasking, multi-user, operating system.

  • The CLI is still important today in configuring and debugging Linux
  • System configuration files are usually kept in the /etc directory
  • The sudo command elevates a non-privileged user to root status. This is required when making system changes, such as bringing up a Wifi interface.
  • Unix shells, including bash and csh provide the basis of the command line interface.
  • Unix shells keep a command history (using the Up arrow) and offer tab completion. They also have environment variables, which can be displayed with the env command.
  • When running a headless Linux system (i.e. with no display attached), the CLI is the most common method of configuration.
  • Typically, Secure Shell (ssh) is used to connect to a remote headless Linux system.
  • Built-in man pages provide information on Linux commands.

By becoming familiar with the Linux command line interface, you can see what is under the hood of your Linux machine, and really start driving that Raspberry Pi!

See also:

Raspberry Pi, Arduino and other embedded systems to learn and create