A command-line interface (CLI) is a mechanism for interacting with a computer operating system or software by typing commands to perform specific tasks. This text-only interface 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 executes 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 all three functions (batch processing, CLI, GUI) in software.
The CLI continues to co-evolve with GUIs like those provided by Microsoft Windows, Mac OS and the X Window System. In some applications, such as MATLAB and AutoCAD, 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 MS-DOS/IBM-DOS's COMMAND.COM, the latter two based heavily on DEC's RSX and RSTS CLIs. (DOS, i.e. MS-DOS/IBM-DOS, is actually is based on CP/M, DOS having been originally written as a substitute for CP/M-86 when its release was delayed.)
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.)
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, on what sort of data these operations can be performed, and how the grammar represents these operations and data—the symbolic meaning in the syntax.
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 learn anything, as well as to 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 complex 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 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. In some systems, 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, nor do versions of Windows prior to the Windows NT family. (Both of these were designed as single-user systems, where it was assumed that the owner would simply not allow people that she/he did not fully trust to have physical access to the computer at all. UNIX, by contrast, originated as a time-sharing system in corporate and university environments.)
Other CLIs (such as those in network 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
Description of the Windows XP Recovery Console for advanced users
At the command prompt, type Recovery Console commands, and then you can refer to the commands that are listed in the "Available commands within Windows Recovery Console" section.
Unreal Console Commands
Unreal Tournament Console Commands Jack Porter Epic Games, Inc. http://www.epicgames.com/ Based on the Unreal 1 console commands document. Audience: Advanced Users, Server ...
Fallout 3 console commands - The Vault, the Fallout wiki - Fallout ...
In Fallout 3, the console is a debugging tool left by the developers in the PC version of the game. It is useful for developing and quality assurance, but it can also be used to ...
Console commands - Planet Unreal
Gamespy Planet site for all the Unreal games, Unreal, Unreal 2, Unreal 3, Unreal Engine, Unreal Tournament, UT 2003, UT 2004, games, News, Trailers, Screenshots, Previews, Reviews ...
Console commands - The Left 4 Dead Wiki - Left 4 Dead, Left 4 Dead 2 ...
The console is a feature of many games that can be used to change certain elements of a game. In Left 4 Dead, it can be activated in the Options menu (go to "Keyboard/Mouse ...
Recovery Console Commands in Windows XP
The commands that are available in the Windows XP Recovery Console differ from those in the normal command prompt. The available commands are discussed.
Console Commands - Planet Battlefield
Gamespy Planet site for all the Battlefield games, Battlefield 3, Battlefield Heroes [BFH], Battlefield 2142 [BF2142], Battlefield 2 [BF2], Battlefield: Bad Company , Battlefield ...
Oblivion:Console - UESPWiki
These commands require a target reference. Select one with the mouse in the console, use the "prid" command, prefix the command with "player" to target the player character or ...
Complete list of console commands - The Left 4 Dead Wiki - Left 4 Dead ...
This is a Complete list of console commands in Left 4 Dead. This is up to date to November 21, 2008.
UDN - Two - ConsoleCommands
To use console commands, bring up the console and type them in. Console commands may be executed from within the game, from within the editor, or if the game has been started ...