command not to be confused with textbased user interface screenshot of a sample bash session in gnome terminal 3 fedora 15 screenshot of windows powershell 10 running on windows vista a commandline interface or command language interpreter cli also known as commandline user interface console user interface and character user interface cui is a means of interacting with a computer program where the user or client issues commands to the program in the form of successive lines of text command lines a program which handles the interface is called a command language interpreter or shell computing the cli was the primary means of interaction with most computer systems on computer terminals in the mid1960s and continued to be used throughout the 1970s and 1980s on openvms unix systems and personal computer systems including msdos cpm and apple dos the interface is usually implemented with a command line shell which is a program that accepts commands as text input and converts commands into appropriate operating system functions today many end users rarely if ever use commandline interfaces and instead rely upon graphical user interfaces and menudriven interactions however many software developers system administrators and advanced users still rely heavily on commandline interfaces to perform tasks more efficiently configure their machine or access programs and program features that are not available through a graphical interface alternatives to the command line include but are not limited to text user interface menus see ibm aix smit for example keyboard shortcuts and various other desktop metaphors centered on the pointer usually controlled with a mouse examples of this include the windows versions 1 2 3 31 and 311 an os shell that runs in dos dosshell and mouse systems powerpanel programs with commandline interfaces are generally easier to automate via scripting commandline interfaces for software other than operating systems include a number of programming languages such as tcltk php and others as well as utilities such as the compression utility winzip and some ftp and sshtelnet clients comparison to graphical user interfaces screenshot of apple computers commandshell in aux 301 compared with a graphical user interface a command line requires fewer system resources to implement since options to commands are given in a few characters in each command line an experienced user finds the options easier to access automation of repetitive tasks is simplified most operating systems using a command line interface support some mechanism for storing frequently used sequences in a disk file for reuse this may extend to a scripting language that can take parameters and variable options a commandline history can be kept allowing review or repetition of commands a commandline system may require paper or online manuals for the users reference although often a help option provides a concise review of the options of a command the commandline environment may not provide the graphical enhancements such as different fonts or extended edit windows found in a gui it may be difficult for a new user to become familiar with all the commands and options available compared with the dropdown menus of a graphical user interface without repeated reference to manuals operating system commandline interfaces operating system os command line interfaces are usually distinct programs supplied with the operating system a program that implements such a text interface is often called a commandline interpreter command processor or shell examples of commandline interpreters include decs digital command language dcl in openvms and rsx11 the various unix shells sh ksh csh tcsh bash etc cpms ccp doss commandcom as well as the os2 and the windows cmdexe programs the latter groups being based heavily on decs rsx11 and rsts clis under most operating systems it is possible to replace the default shell program with alternatives examples include 4dos for dos 4os2 for os2 and 4nt or take command for windows although the term shell is often used to describe a commandline interpreter strictly speaking a shell can be any program that constitutes the userinterface including fully graphically oriented ones for example the default windows gui is a shell program named explorerexe as defined in the shellexplorerexe line in the winini configuration file these programs are shells but not clis application commandline interfaces application programs as opposed to operating systems may also have command line interfaces an application program may support none any or all of these three major types of command line interface mechanisms parameters most operating systems support a means to pass additional information to a program when it is launched when a program is launched from an os command line shell additional text provided along with the program name is passed to the launched program interactive command line sessions after launch a program may provide an operator with an independent means to enter commands in the form of text os interprocess communication most operating systems support means of interprocess communication for example standard streams or named pipes command lines from client processes may be redirected to a cli program by one of these methods some applications support only a cli presenting a cli prompt to the user and acting upon command lines as they are entered other programs support both a cli and a gui in some cases a gui is simply a wrapper around a separate cli executable file in other cases a program may provide a cli as an optional alternative to its gui clis and guis often support different functionality for example all features of matlab a numerical analysis computer program are available via the cli whereas the matlab gui exposes only a subset of features the early sierra games like the first three kings quest games 19841986 used commands from an internal command line to move the character around in the graphic window history the commandline interface evolved from a form of dialog once conducted by humans over teleprinter tty machines in which human operators remotely exchanged information usually one line of text at a time early computer systems often used teleprinter machines as the means of interaction with a human operator the computer became one end of the humantohuman teleprinter model so instead of a human communicating with another human over a teleprinter a human communicated with a computer the mechanical teleprinter was replaced by a glass tty a keyboard and screen emulating the teleprinter smart terminals permitted additional functions such as cursor movement over the entire screen or local editing of data on the terminal for transmission to the computer as the microcomputer revolution replaced the traditional minicomputer terminals time sharing architecture hardware terminals were replaced by terminal emulators pc software that interpreted terminal signals sent through the pcs serial ports these were typically used to interface an organizations new pcs with their existing mini or mainframe computers or to connect pc to pc some of these pcs were running bulletin board system software early operating system clis were implemented as part of resident monitor programs and could not easily be replaced the first implementation of the shell as a replaceable component was part of the multics timesharing operating system the first unix shell the v6 shell was developed by ken thompson in 1971 at bell labs and was modeled after schroeders multics shell early microcomputers themselves were based on a commandline interface such as cpm dos or applesoft basic during the 1980s and 1990s the introduction of the apple macintosh and of microsoft windows on pcs saw the command line interface as the primary user interface replaced by the graphical user interface the command line remained available as an alternative user interface often used by system administrators and other advanced users for system administration computer programming and batch processing in november 2006 microsoft released version 10 of windows powershell formerly codenamed monad which combined features of traditional unix shells with their proprietary objectoriented net framework mingw and cygwin are opensource packages for windows that offer a unixlike cli microsoft provides mks incs ksh implementation mks korn shell for windows through their services for unix addon since 2001 the macintosh operating system is based on a variation of unix called darwin on these computers users can access a unixlike commandline interface called terminal found in the applications utilities folder this terminal uses bash by default screenshot of the matlab 74 commandline interface and gui 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 clis are also used by systems with insufficient resources to support a graphical user interface some computer language systems such as python forth lisp rexx and many dialects of basic provide an interactive commandline mode to allow for rapid evaluation of code 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 responses can be displayed using refreshable braille displays anatomy of a shell cli this section needs additional citations for verification please help improve this article by adding citations to reliable sources unsourced material may be challenged and removed july 2015 learn how and when to remove this template message the general pattern of an os command line interface is prompt command param1 param2 param3 paramn prompt generated by the program to provide context for the client command provided by the client commands are usually one of three classes internal recognized and processed by the command line interpreter itself and not dependent upon any external executable file included a separate executable file generally considered part of the operating environment and always included with the os external external executable files not part of the basic os but added by other parties for specific purposes and applications param1 paramn optional parameters provided by the client the format and meaning of the parameters depends upon the command issued in the case of included or external commands the values of the parameters are delivered to the program specified by the command as it is launched by the os parameters may be either arguments or options in this example the delimiters between command line elements are whitespace characters and the endofline delimiter is the newline delimiter this is a widely used but not universal convention for commandline interfaces 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 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 datathe 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 reuse 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 parameterexpand 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 selfdocumenting 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 how tofiles dosomething how sourcefile destinationfile dosomething how inputfile outputfile dosomething how dosomething how dosomething how outputfile where 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 commandline interpreter to send the output of the command not to its own standard output the screen but to the named file this will overwrite the file using will redirect the output and append it to the file another redirection operator is the vertical bar which creates a pipeline where the output of one command becomes the input to the next command cli and resource protection one can modify the set of available commands by modifying which paths appear in the path environment variable under unix commands also need be marked as executable files the directories in the path variable are searched in the order they are given by reordering the path one can run eg os2mdoseexe instead of os2eexe when the default is the opposite renaming of the executables also works people often rename their favourite editor to edit for example the command line allows one to restrict available commands such as access to advanced internal commands the windows cmdexe does this often shareware programs will limit the range of commands including printing a command your administrator has disabled running batch files from the prompt some clis such as those in network routers have a hierarchy of modes with a different set of commands supported in each mode the set of commands are grouped by association with security system interface etc in these systems the user might traverse through a series of submodes for example if the cli had two modes called interface and system the user might use the command interface to enter the interface mode at this point commands from the system mode may not be accessible until the user exits the interface mode and enters the system mode command prompt prompt of a bbc micro after switchon or hard reset command prompt redirects here for the windows component named command prompt see cmdexe a command prompt or just prompt is a sequence of one or more characters used in a commandline interface to indicate readiness to accept commands it literally prompts 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 and the hostname on many unix and derivative systems the prompt commonly ends in or if the user is a normal user but in if the user is a superuser root in unix terminology endusers can often modify prompts depending on the environment they may include colors special characters and other elements like variables and functions for the current time user shell number or working directory 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 on some systems special tokens in the definition of the prompt can be used to cause external programs to be called by the commandline interpreter while displaying the prompt in doss commandcom and in windows nts cmdexe users can modify the prompt by issuing a prompt command or by directly changing the value of the corresponding prompt environment variable the default of most modern systems the c style is obtained for instance with prompt pg the default of older dos systems c is obtained by just prompt although on some systems this produces the newer c style unless used on floppy drives a or b on those systems prompt ng can be used to override the automatic default and explicitly switch to the older style many unix systems feature the ps1 variable prompt string 1 although other variables also may affect the prompt depending on the shell used in the bash shell a prompt of the form userhost workdir could be set by issuing the command export ps1 uh w in zsh the rprompt variable controls an optional prompt on the righthand 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 rightjustified in risc os the command prompt is a symbol and thus oscli commands are often referred to as star commands one can also access the same commands from other command lines such as the bbc basic command line by preceding the command with a arguments an ms dos command line illustrating parsing into command and arguments a commandline argument or parameter is an item of information provided to a program when it is started a program can have many commandline arguments that identify sources or destinations of information or that alter the operation of the program when a command processor is active a program is typically invoked by typing its name followed by commandline arguments if any for example in unix and unixlike environments an example of a commandline argument is rm files files is a commandline argument which tells the program rm to remove the file files some programming languages such as c c and java allow a program to interpret the commandline arguments by handling them as string parameters in the main function other languages such as python expose these arguments as global variables in unixlike operating systems a single hyphenminus by itself is usually a special value specifying that a program should handle data coming from the standard input or send data to the standard output commandline option a commandline option or simply option also known as a flag or switch modifies the operation of a command the effect is determined by the commands program options follow the command name on the command line separated by spaces a space before the first option is not always required for example dir and dir have the same effect in dos list the dir commands options whereas dir help in many versions of unix does require the option to be preceded by at least one space and is casesensitive the format of options varies widely between operating systems in most cases the syntax is by convention rather than an operating system requirement the entire command line is simply a string passed to a program which can process it in any way the programmer wants so long as the interpreter can tell where the command name ends and its arguments and options begin a few representative samples of commandline options all relating to listing files in a directory to illustrate some conventions operating system command valid alternative notes openvms directoryowner dir owner instruct the directory command to also display the ownership of the filesnote the directory command name is not case sensitive and can be abbreviated to as few letters as required to remain unique dos dirqos d dir q d os display ownership of files whose names begin with d sorted by size smallest firstnote spaces around argument d are required unixlike systems ls ls d ls s l d display in long format files and directories beginning with d but not d sorted by size largest firstnote spaces are required around all arguments and options but some can be run together eg ls is the same as l s data general rdos cli listes 042680b list se 42680b list every attribute for files created before 26 april 1980note the b at the end of the date argument is a local switch that modifies the meaning of that argument while s and e are global switches ie apply to the whole command abbreviating commands in multics commandline options and subsystem keywords may be abbreviated this idea appears to derive from the pli programming language with its shortened keywords eg strg for stringrange and dcl for declare for example in the multics forum subsystem the longsubject parameter can be abbreviated lgsj it is also common for multics commands to be abbreviated typically corresponding to the initial letters of the words that are strung together with underscores to form command names such as the use of did for deleteiacldir in some other systems abbreviations are automatic such as permitting enough of the first characters of a command name to uniquely identify it such as su as an abbreviation for superuser while others may have some specific abbreviations preprogrammed eg md for mkdir in commandcom or userdefined via batch scripts and aliases eg alias md mkdir in tcsh see also tab completion option conventions in dos windows os2 on dos os2 and windows different programs called from their commandcom or cmdexe or internal their commands may use different syntax within the same operating system for example options may be indicated by either of the switch characters or either may be allowed see below they may or may not be casesensitive sometimes options and their arguments are run together sometimes separated by whitespace and sometimes by a character typically or thus prog ffilename prog f filename prog ffilename prog ffilename some programs allow singlecharacter options to be combined others do not the switch fa may mean the same as f a or it may be incorrect or it may even be a valid but different parameter in dos os2 and windows the forward slash is most prevalent although the hyphenminus is also sometimes used in many versions of dos msdospcdos 2xx and higher all versions of drdos since 50 as well as ptsdos embedded dos freedos and rxdos the switch character sometimes abbreviated switchar or switchchar to be used is defined by a value returned from a system call int21hah37h the default character returned by this api is but can be changed to a hyphenminus on the abovementioned systems except for under datalight romdos and msdospcdos 50 and higher which always return from this call unless one of many available tsrs to reenable the switchar feature is loaded in some of these systems msdospcdos 2xx dos plus 21 drdos 702 and higher ptsdos embedded dos freedos and rxdos the setting can also be preconfigured by a switchar directive in configsys general softwares embedded dos provides a switch command for the same purpose whereas 4dos allows the setting to be changed via setdos wn several external drdos commands additionally support an environment variable switchar to override the system setting however many programs are hardwired to use only rather than retrieving the switch setting before parsing commandline arguments a very small number mainly ports from unixlike systems are programmed to accept even if the switch character is not set to it for example netstat and ping supplied with windows will accept the option to list available options and yet the list will specify the convention option conventions in unixlike systems this section does not cite any sources please help improve this section by adding citations to reliable sources unsourced material may be challenged and removed april 2015 learn how and when to remove this template message in unixlike systems the ascii hyphenminus begins options the new and gnu convention is to use two hyphens then a word eg create to identify the options use while the old convention and still available as an option for frequentlyused options is to use one hyphen then one letter eg c if one hyphen is followed by two or more letters it may mean two options are being specified or it may mean the second and subsequent letters are a parameter such as filename or date for the first option two hyphenminus characters without following letters may indicate that the remaining arguments should not be treated as options which is useful for example if a file name itself begins with a hyphen or if further arguments are meant for an inner command eg sudo double hyphenminuses are also sometimes used to prefix long options where more descriptive option names are used this is a common feature of gnu software the getopt function and program and the getopts command are usually used for parsing commandline options unix command names arguments and options are casesensitive except in a few examples mainly where popular commands from other operating systems have been ported to unix options conventions in other systems flexos 4680 os and 4690 os use cpm typically used conversational monitor system cms uses a single left parenthesis to separate options at the end of the command from the other arguments for example in the following command the options indicate that the target file should be replaced if it exists and the date and time of the source file should be retained on the copy copy source file a target file b replace olddate data generals cli under their rdos aos etc operating systems as well as the version of cli that came with their business basic uses only as the switch character is caseinsensitive and allows local switches on some arguments to control the way they are interpreted such as macu libs a b c lptl has the global option u to the macro assembler command to appemd user symbols but two local switches one to specify lib should be skipped on pass 2 and the other to direct listing to the printer lpt builtin usage help see also help command one of the criticisms of a cli is the lack of cues to the user as to the available actions however entering a program name without parameters in the hope that it will display usage help can be hazardous as some programs and scripts execute without further notice although desirable at least for the help parameter programs may not support all option leadin characters exemplified above under dos where the default commandline option character can be changed from to programs may query the switchar api in order to determine the current setting so if a program is not hardwired to support them all a user may need to know the current setting even to be able to reliably request help if the switchar has been changed to and therefore the character is accepted as alternative path delimiter also at the dos command line programs may misinterpret options like h or h as paths rather than help parameters however if given as first or only parameter most dos programs will by convention accept it as request for help regardless of the current switchar setting in some cases different levels of help can be selected for a program some programs supporting this allow to give a verbosity level as an optional argument to the help parameter as in h1 h2 etc or they give just a short help on help parameters with question mark and a longer help screen for the other help options depending on the program additional or more specific help on accepted parameters is sometimes available by either providing the parameter in question as an argument to the help parameter or vice versa as in hw or in w assuming w would be another parameter supported by the program in a similar fashion to the help parameter but much less common some programs provide additional information about themselves like mode status version author license or contact information when invoked with an about parameter like about or about since the and characters typically also serve other purposes at the command line they may not be available in all scenarios therefore they should not be the only options to access the corresponding help information the end of the help command output from rt11sj displayed on a vt100 if more detailed help is necessary than provided by a programs builtin internal help many systems support a dedicated external help command command or similar which accepts a command name as calling parameter and will invoke an external help system in the drdos family typing or h at the commandcom prompt instead of a command itself will display a dynamically generated list of available internal commands command description syntax builtin usage help and man pages commonly employ a small syntax to describe the valid command form angle brackets for required parameters ping hostname square brackets for optional parameters mkdir dirname ellipses for repeated items cp source1 dest vertical bars for choice of items netstat tu notice that these characters have different meanings than when used directly in the shell angle brackets may be omitted when confusing the parameter name with a literal string is not likely the space character in many areas of computing but particularly in the command line the space character can cause problems as it has two distinct and incompatible functions as part of a command or parameter or as a parameter or name separator ambiguity can be prevented either by prohibiting embedded spaces in file and directory names in the first place for example by substituting them with underscores or by enclosing a name with embedded spaces between quote characters or using an escape character before the space usually a backslash for example long pathlong program name parameter one parameter two is ambiguous is program name part of the program name or two parameters however longpathlongprogramname parameterone parametertwo longpathlongprogramname parameterone parametertwo long pathlong program name parameter one parameter two and long pathlong program name parameter one parameter two are not ambiguous unixbased operating systems minimize the use of embedded spaces to minimize the need for quotes in microsoft windows one often has to use quotes because embedded spaces such as in directory names are common commandline interpreter see also list of commandline interpreters mwparseroutput templatequoteoverflowhiddenmargin1em 0padding0 40pxmwparseroutput templatequote templatequotecitelineheight15emtextalignleftpaddingleft16emmargintop0although 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 designbrian kernighan rob pike the terms commandline interpreter abbreviated cli commandline shell or command language interpreter also abbreviated cli are applied to computer programs designed to interpret a sequence of lines of text which may be entered by a user read from a file or another kind of data stream the context of interpretation is usually one of a given operating system or programming language commandline 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 the unix mechanism and os2 extproc command facilitate the passing of batch files to external processors one can use these mechanisms to write specific command processors for dedicated uses and process external data files which reside in batch files many graphical interfaces such as the os2 presentation manager and early versions of microsoft windows use commandlines to call helper programs to open documents and programs the commands are stored in the graphical shell or in files like the registry or the os2 os2userini file early history the earliest computers did not support interactive inputoutput devices often relying on sense switches and lights to communicate with the computer operator this was adequate for batch systems that ran one program at a time often with the programmer acting as operator this also had the advantage of low overhead since lights and switches could be tested and set with one machine instruction later a single system console was added to allow the operator to communicate with the system from the 1960s onwards user interaction with computers was primarily by means of commandline interfaces initially on machines like the teletype model 33 asr but then on early crtbased computer terminals such as the vt52 all of these devices were purely text based with no ability to display graphic or pictures for business application programs textbased menus were used but for more general interaction the command line was the interface around 1964 louis pouzin introduced the concept and the name shell in multics building on earlier simpler facilities in the compatible timesharing system ctss from the early 1970s the unix operating system adapted the concept of a powerful commandline environment and introduced the ability to pipe the output of one command in as input to another unix also had the capability to save and rerun strings of commands as shell scripts which acted like custom commands the commandline 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 oriented microcomputers arrived with cpm and later dos computers such as the ibm pc the commandline began to borrow some of the syntax and features of the unix shells such as globbing and piping of output the commandline was first seriously challenged by the parc gui approach used in the 1983 apple lisa and the 1984 apple macintosh a few computer users used guis such as geos and windows 31 but the majority of ibm pc users did not replace their commandcom shell with a gui until windows 95 was released in 1995 modern usage as an operating system shell while most nonexpert computer users now use a gui almost exclusively more advanced users have access to powerful commandline environments the default vaxvms command shell using the dcl language has been ported to windows systems at least three times including pcdcl and acceler8 dcl lite unix command shells have been ported to vms and doswindows 95 and windows nt types of operating systems commandcom and windows nt cmdexe have been ported to windows ce and presumably works on microsoft windows nt embedded 40 windows resource kit and windows services for unix include korn and the bourne shells along with a perl interpreter services of unix contains active state activeperl in later versions and interix for versions 1 and 2 and a shell compiled by microsoft ibm os2 has the cmdexe processor this copies the commandcom commands with extensions to rexx cmdexe and commandcom are part of the windows nt stream of operating systems yet another cmdexe is a strippeddown shell for windows ce 30 an msdos type interpreter called pocketdos has been ported to windows ce machines the most recent release is almost identical to msdos 622 and can also run windows 1 2 and 30 qbasic and other development tools 4nt and 4dos the latest release includes several shells namely msdos 622 pcdos 7 drdos 3xx and others pocketconsole is a windows nt 40 shell for windows ce that is much like 4nt windows users have a cli environment named windows command prompt which might use the cscript interface to alternate programs powershell provides a commandline interface but its applets are not written in shell script implementations of the unix shell are also available as part of the posix subsystem cygwin mks toolkit uwin hamilton c shell and other software packages available shells for these interoperability tools include csh ksh sh bash rsh tclsh and less commonly zsh ysh psh commandcom 4dos windows nt cmdexe 4nt tcc and os2 cmdexe 4os2 and others based on them are enhanced shells which can be a replacement for the native shell or a means of enhancement of the default shell implementations of php have a shell for interactive use called phpcli standard tcltk has two interactive shells tclsh and wish the latter being the gui version python ruby lua xlnt and other interpreters also have command shells for interactive use freebsd uses tcsh as its default interactive shell for the superuser apple macos and many linux distributions have the bash implementation of the unix shell early versions of macos used tcsh as the default shell embedded linux and other embedded unixlike devices often use the ash implementation of the unix shell as part of busybox android uses the mksh shell binary routers with cisco ios and many others are commonly configured from the command line scripting most commandline interpreters support scripting to various extents they are after all interpreters of an interpreted programming language albeit in many cases the language is unique to the particular commandline interpreter they will interpret scripts variously termed shell scripts or batch files written in the language that they interpret some commandline 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 commandline interpreter itself conversely scripting programming languages in particular those with an eval function such as rexx perl python ruby or jython can be used to implement commandline interpreters and filters for a few operating systems most notably dos such a command interpreter provides a more flexible commandline interface than the one supplied in other cases such a command interpreter can present a highly customised user interface employing the user interface and inputoutput facilities of the language other commandline interfaces the command line provides an interface between programs as well as the user in this sense a command line is an alternative to a dialog box editors and databases present a command line in which alternate command processors might run on the other hand one might have options on the command line which opens a dialog box the latest version of take command has this feature dbase used a dialog box to construct command lines which could be further edited before use programs like basic diskpart edlin and qbasic all provide commandline interfaces some of which use the system shell basic is modeled on the default interface for 8bit intel computers calculators can be run as commandline or dialog interfaces emacs provides a commandline interface in the form of its minibuffer commands and arguments can be entered using emacs standard text editing support and output is displayed in another buffer there are a number of text mode games like adventure or kings quest 13 which relied on the user typing commands at the bottom of the screen one controls the character by typing commands like get ring or look the program returns a text which describes how the character sees it or makes the action happen the text adventure the hitchhikers guide to the galaxy a piece of interactive fiction based on douglas adams book of the same name is a teletypestyle commandline game the most notable of these interfaces is the standard streams interface which allows the output of one command to be passed to the input of another text files can serve either purpose as well this provides the interfaces of piping filters and redirection under unix devices are files too so the normal type of file for the shell used for stdinstdout and stderr is a tty device file another commandline interface allows a shell program to launch helper programs either to launch documents or start a program the command is processed internally by the shell and then passed on to another program to launch the document the graphical interface of windows and os2 rely heavily on commandlines passed through to other programs console or graphical which then usually process the command line without presenting a userconsole programs like the os2 e editor and some other ibm editors can process commandlines normally meant for the shell the output being placed directly in the document window a web browsers url input field can be used as a command line it can be used to launch web apps access browser configuration as well as perform a search google which has been called the command line of the internet will perform a domainspecific search when it detects search parameters in a known format this functionality is present whether the search is triggered from a browser field or on googles website comparison of command shells list of commandline interpreters orthodox file manager also known as commandbased file manager concepts batch processing batch file console application interpreter directive readevalprint loop shell computing scripting language shell script uses clig computer terminal terminal emulator run command miscellaneous graphical user interface comparison to other interfaces in the beginning was the command line natural user interface notes the roots of dos david hunter softalk for the ibm personal computer march 1983 archived at patersontechcom since 2000 commandline reference microsoft technet database commandline reference vteoperating systemsgeneral advocacy comparison forensic engineering history hobbyist development list timeline usage share kernelarchitectures exokernel hybrid microkernel monolithic rump kernel unikernel components device driver loadable kernel module microkernel user space process managementconcepts context switch interrupt ipc process process control block realtime thread timesharing schedulingalgorithms computer multitasking fixedpriority preemptive multilevel feedback queue preemptive roundrobin shortest job next memory management andresource protection bus error general protection fault memory protection paging protection ring segmentation fault virtual memory storage access andfile systems boot loader defragmentation device file file attribute inode journal partition virtual file system virtual tape library list amigaos android beos bsd chrome os cpm dos genode gnu haiku illumos includeos ios linux macintosh classic mac os macos minix morphos musicsp nemesis nextstep nos openvms orvyl os2 osv pick qnx reactos risc os rstse rsx11 rt11 solaris tops10tops20 tpf unix visi on vmcms vs9 webos windows xinu zos miscellaneous concepts api computer network hal live cd live usb os shell cli gui nui tui vui zui pxe 