Jump to content

List of command-line interpreters: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
m Reverting possible vandalism by 124.125.156.77 to version by Yobot. False positive? Report it. Thanks, ClueBot NG. (253805) (Bot)
merged
Line 1: Line 1:
#REDIRECT [[Command-line interface]]
{{Multiple issues|cleanup=May 2010|lead too short=May 2010|refimprove=May 2010}}
{{Merge to|Command-line interface|date=December 2010}}
{{Fix bunching|beg}}
[[Image:UKNCRT-11.png|thumb|RT-11 running on [[UKNC]]]]
{{Fix bunching|mid}}
[[Image:bash screenshot.png|thumb|180px|right|Sample screenshot of the command-line interpreter [[Bash (Unix shell)|Bash]].]]
{{Fix bunching|end}}
A '''command-line interpreter''' (also called a '''command line [[Shell (computing)|shell]]''', '''command language interpreter''', or abbreviated as '''CLI''') 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-line 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 [[programming language|language]] that is interpreted.

===Early history===
From the 1960s onwards, user interaction with computers was primarily by means of [[command-line interface]]s, initially on machines like the [[ASR-33 Teletype]], but then on early [[CRT]]-based [[computer terminals]] such as the [[VT52]].

All of these devices were purely text based, with no ability to display graphic or pictures<ref>With the exception of [[ASCII art]]</ref>. For business [[Application software|application programs]], text-based [[menu (computing)|menus]] were used, but for more general interaction the command line was the interface.

From the early 1970s the [[Unix]] operating system on [[minicomputers]] pioneered the concept of a powerful command-line environment, which Unix called the "shell", with the ability to "[[Pipeline (Unix)|pipe]]" the output of one command in as input to another, and to save and re-run strings of commands as "[[shell scripts]]" which acted like custom commands.

===Microcomputers===
The command-line was also the main interface for the early home computers such as the [[Commodore PET]], [[Apple II]] and [[BBC Micro]] - almost always in the form of a [[BASIC]] interpreter. When more powerful business orientated microcomputers arrived with [[CP/M]] and later [[MSDOS]] computers such as the [[IBM PC]], the command-line began to borrow some of the syntax and features of the Unix shells such as [[globbing]] and [[Pipeline (Unix)|piping]] of output.

===Graphic User Interfaces===
The command-line was first seriously challenged by the new [[GUI]] approach in 1984 with the Apple [[Macintosh 128K]], but it took until 1990 and [[Windows 3.0]] before most users converted.

===Command lines today===
While most computer users now use a GUI almost exclusively, more advanced users have access to powerful command-line environments:

* MS Windows users have the classic [[cmd.exe]] "DOS"-like environment, but also the new [[PowerShell]] interfaces
* Apple<ref>via ''Finder, Applications, Utilities, [[Terminal.app]]''</ref> and Linux users have the classic Unix [[Bash (Unix shell)|bash]] shell
* Routers from [[Cisco IOS|Cisco]]<ref>[http://www.cisco.com/en/US/docs/ios/12_0/configfun/configuration/guide/fcui.html#wp7687 ''"The Cisco IOS command-line interface (CLI) is the primary user interface..."'']</ref> [[Juniper Networks]] <ref>[http://www.juniper.net/techpubs/software/junos/junos55/swconfig55-getting-started/html/cli-overview-getting-started.html ''"...the software that you use whenever you access the router..."'']</ref> and many others are commonly configured from the command-line.

==Scripting==
Most command-line interpreters support [[script (computer programming)|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 script]]s or [[batch file]]s) written in the [[programming language|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 language]]s, in particular those with an [[eval]] [[function (programming)|function]] (such as [[REXX]], [[Perl]], [[Python (programming language)|Python]], [[Ruby (programming language)|Ruby]] or [[Jython]]), can be used to implement command-line interpreters. For a few [[operating system]]s, 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.

==Quotes==
{{quotation|Although most users think of the shell as an interactive command interpreter, it is really a programming language in which each statement runs a command. Because it must satisfy both the interactive and programming aspects of command execution, it is a strange language, shaped as much by history as by design.|[[Brian Kernighan]] & [[Rob Pike]] <ref>Brian W. Kernighan and Rob Pike, "The UNIX Programming Environment", ''Prentice-Hall'' (1984).</ref>}}

==Examples==
* [[4DOS]] - ([[DOS]], [[Microsoft Windows|Windows]])
* [[4NT]] - ([[Windows NT]])
* [[4OS/2]] - ([[OS/2]])
* Amiga CLI/Amiga Shell - ([[AmigaOS]])
* [[Apple DOS]]/[[Apple ProDOS]], had built-in [[BASIC]] interpreter, used on the Apple II, preceding the Macintosh
* [[AS/400 Control Language|CL]] - ([[OS/400]])
* [[Basic-Plus]] - ([[RSTS/E]])
* [[cmd.exe]] - ([[OS/2]], [[Windows CE 3.0]], [[Windows NT]] - [[Windows 7]])
* [[Conversational Monitor System|CMS]] - ([[VM/CMS]])
* [[COMMAND.COM]] - ([[DOS]], [[Windows 95]] - [[Windows 7]])
* [[Commodore International|Commodore]] [[DOS Wedge]] - ([[Commodore 64]])
* [[DIGITAL Command Language|DCL]] - ([[OpenVMS]])
* [[Extensible Firmware Interface#The EFI shell|EFI-SHELL]] - ([[Extensible Firmware Interface]])
* [[GMLCMD]] - ([[Microsoft Windows|Windows]])
* [[iSeries QSHELL]] - ([[IBM]] [[OS/400]])
* SymShell - ([[SymbOS]])
* [[Time Sharing Option|TSO]] - ([[MVS]], [[z/OS]])
* [[Atari_TOS#Desktop|Atari TOS]] shell
* [[Unix shell]] programs such as [[Bourne shell|sh]], [[Bash (Unix shell)|Bash]], [[Korn shell|ksh]], [[C shell|csh]] and others
* [[Tclsh]] and [[wish (Windowing Shell)|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 7]])
* [[Recovery Console|Windows Recovery Console]] - ([[Windows 2000]], [[Windows XP]] and [[Windows Server 2003]])
* [[YouOS|YouShell]] - ([[YouOS]])

==See also==
* [[Shell (computing)]]
* [[Comparison of computer shells]]
* [[Data terminal|Text terminal]]
* [[Command line argument]]
* [[Read-eval-print loop]]
* [[Batch processing]]
* [[Batch file]]
* [[Interpreter directive]]
* [[Shell script]]
* [[Scripting language]]
* [[Domain-specific programming language]]
* [[clig]] for [[tcl]]/[[C (programming language)|c]]

==References==
{{reflist}}

==External links==
* [http://www.commandline.org.uk Command Line Warriors] website — focus on GNU/Linux
* [http://commandwindows.com The Command Line in Windows] website — DOS and Windows

{{DEFAULTSORT:Command-Line Interpreter}}
[[Category:User interface]]
[[Category:Software architecture]]
[[Category:Command shells]]

[[de:Kommandozeileninterpreter]]
[[el:Διερμηνέας γραμμής εντολών]]
[[eu:Komando interpretatzaile]]
[[fr:Interpréteur de commandes]]
[[ko:명령 줄 인터프리터]]
[[ja:コマンドラインインタプリタ]]
[[pl:Powłoka systemowa]]
[[pt:Interpretador de comandos]]
[[fi:Komentotulkki]]

Revision as of 20:58, 8 February 2011