A program is a sequence of instructions that are understandable by a computer's CPU (central processing unit) and that indicate which operations the computer should perform on a set of data.
A command line is the space in a command line interface (CLI), i.e., an all-text display mode, on a computer monitor in which users enter commands (i.e., instructions telling the computer to do something) and data. It provides a means of communication between a user and a computer that is based solely on textual input and output.
A shell, also referred to as a command interpreter, is a program that provides the CLI and which also reads commands that are typed on a keyboard and then executes (i.e., runs) them.
A CLI is provided by both consoles and terminal windows. A console is a display mode for which the entire monitor screen shows only text and no images (including icons, pull-down menus and frames around the text). A terminal window is a text-only window in a GUI (graphical user interface) that emulates a console.
GUI front ends (i.e., graphical interfaces which the user employs in a GUI and which hide the command line nature of the underlying program) are available for some command line programs. An example is kdesu, which is a graphical front end for the su (i.e., substitute user) command. Likewise, kcron is a graphical front end to the command line cron program, which is used to schedule tasks.
A major problem with GUI front ends is that they frequently lack the versatility and fine-grained control of their underlying command line programs. That is, they have limited options (which are used to modify the behavior of commands) and cannot be combined with other commands using pipes (which allow commands to perform highly specialized tasks that would be very difficult to perform by any other means).
This is one reason that experienced users of Unix-like operating systems often prefer command line programs over their GUI counterparts. Another reason is that command line programs in some cases can be quicker and/or more reliable than their GUI front ends. In addition, command line programs are often the only available choice for repairing and restoring damaged systems which have minimal functionality.
A list of command line programs that are discussed in detail as part of the The Linux Information Project is provided on the page Index of Commands for Unix-like Operating Systems.
Created July 12, 2005.