A command-line interpreter (also command line shell, command language interpreter) is a computer program that reads lines of text entered by a user and interprets them in the context of a given operating system or programming language.
Command interpreters as user interfaces
command-line interpreters allow users to issue various commands in a very efficient (and often terse) way. This requires the user to know the names of the commands and their parameters, and the syntax of the language
that is interpreted. From the 1960s onwards, user interaction with computers was primarily by means of command line interfaces
In the 1970s, researchers began to develop graphical user interfaces (GUIs) to provide an alternative user interface for computers, whereby commands were represented by pictorial operations, rather than as textual descriptions. Since they are easier to learn than command line interfaces, they have become the most common way of interacting with a computer. However, command-line interpreters remain widely used in conjunction with GUIs. For some complex tasks, the latter are less effective because of the large number of menus and dialog boxes presented and because of the innate difficulty of representing the underlying task graphically.
Most command-line interpreters support scripting
, to various extents. (They are, after all, interpreters of an interpreted programming language
, albeit that in many cases the language is unique to the particular command-line interpreter.) They will interpret scripts (variously termed shell scripts
or batch files
) written in the language
that they interpret. Some command-line interpreters also incorporate the interpreter engines of other languages, such as REXX
, in addition to their own, allowing the executing of scripts, in those languages, directly within the command-line interpreter itself.
Conversely, scripting programming languages, in particular those with an eval function (such as REXX, Perl, Python, or Jython), can be used to implement command-line interpreters. For a few operating systems, most notably DOS, such a command interpreter provides a more flexible command line interface than the one supplied. In other cases, such a command interpreter can present a highly customised user interface employing the user interface and input/output facilities of the language.
- 4DOS - (DOS, Windows)
- 4NT - (Windows NT)
- 4OS/2 - (OS/2)
- PocketDOS -- an implementation of the MS-DOS 6.22 command-line interpreter which runs on Pocket PC with Windows CE 3.0; most recent package includes PocketDOS shell for the PC under Windows operating systems and the option to switch the DOS shell on the Pocket PC from the default MS-DOS 6.22 emulation to DR-DOS 6, PC-DOS 6, or Free DOS 7
- Amiga CLI/Amiga Shell - (AmigaOS)
- CL - (OS/400)
- Basic-Plus - (RSTS/E)
- cmd.exe - (OS/2, Windows NT - Windows Vista) Windows CE 3.0
- CMS - (VM/CMS)
- COMMAND.COM - (DOS, Windows 95 - Windows Vista)
- Commodore DOS Wedge - (Commodore 64)
- DCL - (OpenVMS)
- EFI-SHELL - (Extensible Firmware Interface)
- GMLCMD - (Windows)
- iSeries QSHELL - (IBM OS/400)
- SymShell - (SymbOS)
- TSO - (MVS, z/OS)
- Unix shell programs such as sh, Bash, ksh, csh and others
- Tclsh and Wish, shells used with the Tcl language in its various implementations
- The above Unix shells implemented under other OSes including Windows NT/2000/Xp/2003 OS series and with diminished capabilities under the MS-Dos/Windows 95/98/Me series: MKS Toolkit (Bourne, Bash, Korn, C shells, rsh, tclsh and SSH), Microsoft Windows Services for Unix (C and Korn shells), AT&T U/Win (all or most shells), Cygwin, etc.
- Newer Unix shells under various OSes and environments such as the enhanced Korn variant zsh, the Perl-based psh shell etc.
- Windows PowerShell - (Windows XP - Windows Vista)
- Windows Recovery Console - (Windows 2000 - Windows Vista)
- YouShell - (YouOS)