Command line interface
missing image!
- bash screenshot.png -
Screenshot of a sample Bash session, taken on an old release of Gentoo Linux.
missing image!
- Command prompt on windows vista.png -
The cmd.exe
command line interface in
Windows VistaWindows VistaCommand Line Interface (
CLI) is a mechanism for interacting with a computer
operating system or
software by typing commands to perform specific tasks. This contrasts with the use of a
mouse pointer with a
graphical user interface (
GUI) to click on options, or menus on a
Text user interface (TUI) to select options. This method of instructing a computer to perform a given task is referred to as "entering" a command: the system waits for the user to conclude the submitting of the text command by pressing the "Enter" key (a descendant of the "carriage return" key of a typewriter keyboard). A
command line interpreter then receives,
analyses, and launches the requested command. The command line interpreter may be run in a
text terminal or in a
terminal emulator window as a remote shell client such as
PuTTY. Upon completion, the command usually returns output to the user in the form of text lines on the CLI. This output may be an answer if the command was a question, or otherwise a summary of the operation.The concept of the CLI originated when
teletype machines (TTY) were connected to computers in the 1950s, and offered results on demand, compared to 'batch' oriented mechanical
punch card input technology. Dedicated text-based
CRT terminals followed, with faster interaction and more information visible at one time, then
graphical terminals enriched the visual display of information. Currently personal computers encapsulate both functions in software. The CLI continues to
coevolve with GUIs like those provided by
Microsoft Windows,
Mac OS and the
X Window System. In some applications, such as
MATLAB, a CLI is integrated with the GUI, with the benefits of both.
Usage
A CLI is used whenever a large vocabulary of commands or queries, coupled with a wide (or arbitrary) range of options, can be entered more rapidly as text than with a pure GUI. This is typically the case with operating system command
shells. Also, some computer languages (such as
Python,
Forth,
LISP and many dialects of
BASIC) provide an interactive command line mode to allow for experimentation. CLIs are often used by programmers and system administrators, in engineering and scientific environments, and by technically advanced personal computer users. CLIs are also popular among people with visual disability, since the commands and feedbacks can be displayed using
Refreshable Braille displays. A program that implements such a text interface is often called a
command line interpreter or
shell. Examples include the various
Unix shells (sh, ksh, csh, tcsh, bash, etc.), the historical
CP/M, and
DOS's
COMMAND.COM, the latter two based heavily on
DEC's RSX and
RSTS CLIs.In November 2006,
Microsoft released version 1.0 of
Windows PowerShell (formerly codenamed
Monad), which combined features of traditional Unix shells with their object-oriented
.NET Framework.
MinGW and
Cygwin are
open source packages for Windows that offer a Unix like CLI. Microsoft provides
MKS Inc.'s
ksh implementation
MKS Korn shell for Windows through their
Services for UNIX add-on.The latest versions of the
Macintosh operating system are based on a variation of Unix called
Darwin. On these computers, users can access a Unix-like command line interface called
Terminal found in the Applications Utilities folder. (This terminal uses
bash by default.)
missing image!
- Matlab7.4.png -
Screenshot of the MATLAB 7.4 command line interface and GUI.
Some applications provide both a CLI and a GUI. The engineering/scientific numerical computation package
MATLAB provides no GUI for some calculations, but the CLI can handle any calculation. The three-dimensional-modelling program
Rhinoceros 3D provides a CLI as well as a distinct scripting language. In some computing environments, such as the
Oberon or
Smalltalk user interface, most of the text which appears on the screen may be used for giving commands.
Anatomy of a Shell CLI
A CLI can generally be considered as consisting of
syntax and
semantics. The
syntax is the grammar that all commands must follow. In the case of
operating systems (OS),
MS-DOS and
Unix each define their own set of rules that all commands must follow. In the case of
embedded systems, each vendor, such as
Nortel,
Juniper Networks or
Cisco Systems, defines their own proprietary set of rules that all commands within their CLI conform to. These rules also dictate how a user navigates through the system of
commands. The
semantics define what sort of operations are possible, and on what sort of data these operations can be performed.Two different CLIs may agree on either syntax or semantics, but it is only when they agree on both that they can be considered sufficiently similar to allow users to use both CLIs without needing to relearn anything as well as enable re-use of scripts.A simple CLI will display a prompt, accept a "command line" typed by the user terminated by the
Enter key, then execute the specified command and provide textual display of results or error messages. Advanced CLIs will validate, interpret and parameter-expand the command line before executing the specified command, and optionally capture or redirect its output.Unlike a button or menu item in a GUI, a command line is typically self-documenting, stating exactly what the user wants done. In addition, command lines usually include many
defaults that can be changed to customize the results. Useful command lines can be saved by assigning a
character string or
alias to represent the full command, or several commands can be grouped to perform a more complex sequence — for instance, compile the program, install it, and run it — creating a single entity, called a command procedure or script which itself can be treated as a command. These advantages mean that a user must figure out a command or series of commands only once, because they can be saved, to be used again. The commands given to a CLI shell are often in one of the following forms:
[doSomething] [how] [toFiles]
[doSomething] [how] [sourceFile] [destinationFile]
[doSomething] [how] < [inputFile] > [outputFile]
[doSomething] [how] | [doSomething] [how] | [do Something] [how] > [outputFile]
doSomething is, in effect, a
verb,
how an
adverb (for example, should the command be executed "verbosely" or "quietly") and
toFiles an object or objects (typically one or more files) on which the command should act. The '>' in the third example is a redirection
operator, telling the command line interpreter to send the output of the command not to the screen but to the file named on the right of the '>'. This will overwrite the file. Using '>>' will redirect the output and append it to the file. Another redirection operator is the
pipe ('|'), which tells the CLI to use the output of one command as the input to the next command; this "operator-stream" mechanism can be very powerful.
Programming languages in Interactive mode
Some programming languages (such as
BASIC,
Python,
LISP,
Forth ...) also provide an interactive command line for experimentation or even for normal everyday work.
CLI and Resource Protection
In some CLIs, the commands issued are not coupled to any conceptual place within a command hierarchy. A user can specify relative or absolute paths to any command or data. Examples of this include MS-DOS, Windows, and UNIX, which provide forms of a
change directory command which allows access to any directory in the system. Protection of resources is provided by a system of resource ownership by privileged groups, and password-protected user accounts which are members of specific groups. MS-DOS provides no such resource protection.Other CLIs (such as those in routers) limit the set of commands that a user can perform to a subset, determined by location within a command hierarchy, grouped by association with security, system, interface, etc. The location within this hierarchy and the options available are often referred to as a mode. In these systems the user might traverse through a series of sub-hierarchies, each with their own subset of commands. For example, if the CLI had two modes called
interface and
system, the user would enter the word 'interface' at the command prompt and then enter an interface mode, where a certain subset of commands and data are available. At this point system commands are not accessible and would not be accessible until the user explicitly exits the interface mode.
Command prompt
A command prompt (or just
prompt) is a sequence of (one or more) characters used in a command line interface to indicate readiness to accept commands. Its intent is to literally (Wiktionary:prompt|prompt) the user to take action. A prompt usually ends with one of the characters
$,
%,
#,
:,
> and often includes other information, such as the path of the current
working directory.It is common for prompts to be modifiable by the user. Depending on the environment, they may include colors, special characters, and other elements like the current time, in order, for instance, to make the prompt more informative or visually pleasing, to distinguish sessions on various machines, or to indicate the current level of nesting of commands.In DOS's COMMAND.COM and in the Windows command line interpreter
cmd.exe the prompt is modifiable by issuing a
prompt command or by changing the value of the
%PROMPT% environment variable. The default of most modern systems, the
C:> style is obtained, for instance, with "
prompt $P$G". The default of older DOS systems,
C> is obtained by just "
prompt".On many
Unix systems, the
$PS1 variable can be used, although other variables also may have an impact on the prompt (depending on what
shell is being used). In the
bash shell, a prompt of the form
[time] user@host: work_dir $
could be set by issuing the command
export PS1='[t] u@H: $(pwd) $'
In
zsh the
$RPROMPT variable controls an optional "prompt" on the right hand side of the display. It is not a real prompt in that the location of text entry does not change. It is used to display information on the same line as the prompt, but right justified.In RISC OS, the command prompt is a '*' symbol, and thus (OS)CLI commands are often referred to as "star commands"
(1). It is also possible to access the same commands from other command lines (such as the
BBC BASIC command line), by preceding the command with a '*'.
References
-
[RISC OS 3 User Guide, Part 3: Outside the desktop (page 125) Published by Acorn Computers Limited, ISBN1 85250 124 2, Edition 2 Part number 0496,075 Issue 1 March 1992]
See also
External links
Příkazový řádekKommandozeileLínea de comandosKäsuridaInterface en ligne de commande명령 줄 인터페이스Parancssoros felhasználói felületOpdrachtregelinterfaceキャラクターユーザインターフェースWiersz poleceńInterface de linha de comandoИнтерфейс командной строкиPríkazový riadokKomentoliittymä命令行界面
(...as imported from WP)
article has not been saved locally