Content deleted Content added
ClueBot NG (talk | contribs) m Reverting possible vandalism by 124.125.156.77 to version by Yobot. False positive? Report it. Thanks, ClueBot NG. (253805) (Bot) |
Wtshymanski (talk | contribs) 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
Redirect to: