HOME

TheInfoList



OR:

This article catalogs comparable aspects of notable
operating system An operating system (OS) is system software that manages computer hardware and software resources, and provides common daemon (computing), services for computer programs. Time-sharing operating systems scheduler (computing), schedule tasks for ...
shells.


General characteristics

{, class="wikitable sortable sticky-header sort-under" style="width: auto; text-align: center; font-size: smaller;" , - !Shell ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! , - !
Thompson shell The Thompson shell was the first Unix shell, introduced in the first version of Unix in 1971, and was written by Ken Thompson. It was a simple command interpreter, not designed for scripting, but nonetheless introduced several innovative featu ...
,
UNIX Unix (, ; trademarked as UNIX) is a family of multitasking, multi-user computer operating systems that derive from the original AT&T Unix, whose development started in 1969 at the Bell Labs research center by Ken Thompson, Dennis Ritchie, a ...
, sh , 1971 , ,
UNIX Unix (, ; trademarked as UNIX) is a family of multitasking, multi-user computer operating systems that derive from the original AT&T Unix, whose development started in 1969 at the Bell Labs research center by Ken Thompson, Dennis Ritchie, a ...
,
UNIX Unix (, ; trademarked as UNIX) is a family of multitasking, multi-user computer operating systems that derive from the original AT&T Unix, whose development started in 1969 at the Bell Labs research center by Ken Thompson, Dennis Ritchie, a ...
, , , Text-based
CLI CLI may refer to: Computing * Call Level Interface, an SQL database management API * Command-line interface, of a computer program * Command-line interpreter or command language interpreter; see List of command-line interpreters * CLI (x86 instruc ...
, , , , , , , , , , , - !
Bourne shell The Bourne shell (sh) is a shell command-line interpreter for computer operating systems. It first appeared on Version 7 Unix, as its default shell. Unix-like systems continue to have /bin/sh—which will be the Bourne shell, or a symbolic lin ...
1977 version , 7th Ed. UNIX , sh , 1977 , , 7th Ed. UNIX , 7th Ed. UNIX, , , , Text-based
CLI CLI may refer to: Computing * Call Level Interface, an SQL database management API * Command-line interface, of a computer program * Command-line interpreter or command language interpreter; see List of command-line interpreters * CLI (x86 instruc ...
, , , , ,
,
,
,
, , , - !
Bourne shell The Bourne shell (sh) is a shell command-line interpreter for computer operating systems. It first appeared on Version 7 Unix, as its default shell. Unix-like systems continue to have /bin/sh—which will be the Bourne shell, or a symbolic lin ...
current version , Various
UNIX Unix (, ; trademarked as UNIX) is a family of multitasking, multi-user computer operating systems that derive from the original AT&T Unix, whose development started in 1969 at the Bell Labs research center by Ken Thompson, Dennis Ritchie, a ...
, sh , 1977 , , SunOS-5.x, FreeBSD , SunOS-5.x , , , Text-based
CLI CLI may refer to: Computing * Call Level Interface, an SQL database management API * Command-line interface, of a computer program * Command-line interpreter or command language interpreter; see List of command-line interpreters * CLI (x86 instruc ...
, , Since mid 1990s. , , ,
,
,
,
, if compiled with -DACCT. , , - !
POSIX The Portable Operating System Interface (POSIX; ) is a family of standards specified by the IEEE Computer Society for maintaining compatibility between operating systems. POSIX defines application programming interfaces (APIs), along with comm ...
shell ,
POSIX The Portable Operating System Interface (POSIX; ) is a family of standards specified by the IEEE Computer Society for maintaining compatibility between operating systems. POSIX defines application programming interfaces (APIs), along with comm ...
, sh , 1992 , , ,
POSIX The Portable Operating System Interface (POSIX; ) is a family of standards specified by the IEEE Computer Society for maintaining compatibility between operating systems. POSIX defines application programming interfaces (APIs), along with comm ...
, , , Text-based CLI , ,
, , ,
,
, {{small, Unspecified
({{mono, .profile given as an example) , {{yes
{{small, (Unix feature) , {{yes , {{N/A , - ! bash (v4) ,
POSIX The Portable Operating System Interface (POSIX; ) is a family of standards specified by the IEEE Computer Society for maintaining compatibility between operating systems. POSIX defines application programming interfaces (APIs), along with comm ...
, bash, sh , 1989 , {{yes ,
GNU GNU ( ) is an extensive collection of free software (394 packages ), which can be used as an operating system or can be used in parts with other operating systems. The use of the completed GNU tools led to the family of operating systems popu ...
,
Linux Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
(default for root),
macOS macOS, previously OS X and originally Mac OS X, is a Unix, Unix-based operating system developed and marketed by Apple Inc., Apple since 2001. It is the current operating system for Apple's Mac (computer), Mac computers. With ...
10.3–10.14 ,
GNU GNU ( ) is an extensive collection of free software (394 packages ), which can be used as an operating system or can be used in parts with other operating systems. The use of the completed GNU tools led to the family of operating systems popu ...
,
Linux Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
,
Haiku is a type of short form poetry that originated in Japan. Traditional Japanese haiku consist of three phrases composed of 17 Mora (linguistics), morae (called ''On (Japanese prosody), on'' in Japanese) in a 5, 7, 5 pattern; that include a ''kire ...
,
macOS macOS, previously OS X and originally Mac OS X, is a Unix, Unix-based operating system developed and marketed by Apple Inc., Apple since 2001. It is the current operating system for Apple's Mac (computer), Mac computers. With ...
10.3–10.14 , {{free, GPL , {{yes , Text-based CLI , {{no , {{yes{{better source needed, reason=Unicode escape is just a small part of Unicode support. There's also editing and string handling. This works in bash 4.3.33, but needs a source., date=May 2015 , {{yes
{{small, ({{mono, printf builtin) , {{yes , {{yes
{{small, ({{citation needed span, date=December 2021, arbitrary {{mono, fds ) , {{yes
{{small, (via variables and options) , {{yes
{{small, ({{mono, /etc/profile, {{mono, .bash_profile, {{mono, .bash_login, {{mono, .profile, {{mono, .bashrc) , {{yes
{{small, (Unix feature) , {{yes , {{yes , - ! csh ,
POSIX The Portable Operating System Interface (POSIX; ) is a family of standards specified by the IEEE Computer Society for maintaining compatibility between operating systems. POSIX defines application programming interfaces (APIs), along with comm ...
, csh , 1978 , {{yes ,
SunOS SunOS is a Unix-branded operating system developed by Sun Microsystems for their workstation and server computer systems from 1982 until the mid-1990s. The ''SunOS'' name is usually only used to refer to versions 1.0 to 4.1.4, which were based ...
, {{dunno , {{free,
BSD The Berkeley Software Distribution (BSD), also known as Berkeley Unix or BSD Unix, is a discontinued Unix operating system developed and distributed by the Computer Systems Research Group (CSRG) at the University of California, Berkeley, beginni ...
, {{yes , Text-based CLI , {{no , {{no , {{dunno , {{yes , {{yes
{{small, ({{mono, stdin, {{mono, stdout, {{mono, stdout+stderr) , {{yes
{{small, (via variables and options) , {{yes
{{small, ({{mono, ~/.cshrc, {{mono, ~/.login, {{mono, ~/.logout) , {{yes
{{small, (Unix feature) , {{yes , {{yes , - !
tcsh tcsh ( “tee-see-shell”, “tee-shell”, or as “tee see ess aitch”, tcsh) is a Unix shell based on and backward compatible with the C shell (csh). Shell It is essentially the C shell with programmable command-line completion, command- ...
,
POSIX The Portable Operating System Interface (POSIX; ) is a family of standards specified by the IEEE Computer Society for maintaining compatibility between operating systems. POSIX defines application programming interfaces (APIs), along with comm ...
, tcsh, csh , 1983{{Cite newsgroup , author-first=Ken , author-last=Greer , title=C shell with command and filename recognition/completion , date=1983-10-03 , newsgroup=net.sources , url=https://groups.google.com/group/net.sources/msg/7073bf41cc5da330?hl=en , access-date=2010-12-29 , {{yes ,
FreeBSD FreeBSD is a free-software Unix-like operating system descended from the Berkeley Software Distribution (BSD). The first version was released in 1993 developed from 386BSD, one of the first fully functional and free Unix clones on affordable ...
(former default for root), formerly
Mac OS X macOS, previously OS X and originally Mac OS X, is a Unix, Unix-based operating system developed and marketed by Apple Inc., Apple since 2001. It is the current operating system for Apple's Mac (computer), Mac computers. With ...
, {{dunno , {{free,
BSD The Berkeley Software Distribution (BSD), also known as Berkeley Unix or BSD Unix, is a discontinued Unix operating system developed and distributed by the Computer Systems Research Group (CSRG) at the University of California, Berkeley, beginni ...
, {{yes , Text-based CLI , {{no , {{yes , {{dunno , {{yes , {{yes
{{small, ({{mono, stdin, {{mono, stdout, {{mono, stdout+stderr) , {{yes
{{small, (via variables and options) , {{yes
{{small, ({{mono, /etc/csh.cshrc, {{mono, /etc/csh.login, {{mono, ~/.tcshrc, {{mono, ~/.cshrc, {{mono, ~/.history, {{mono, ~/.login, {{mono, ~/.cshdirs) , {{yes
{{small, (Unix feature) , {{yes , {{yes , - ! Hamilton C shell ,
Win32 The Windows API, informally WinAPI, is the foundational application programming interface (API) that allows a computer program to access the features of the Microsoft Windows operating system in which the program is running. Programs can acces ...
, OS/2 , csh , 1988{{cite journal , author-last=Sussman , author-first=Ann , title=Hamilton C Shell Speeds Development Of OS/2 Applications , journal= PC Week , date=1988-12-26 , issue=1988-12-26 - 1989-01-02 , page=37 , url=https://hamiltonlabs.com/archives/Hamilton-C-Shell-Speeds-Development-of-OS-2-Applications-Ann-Sussman-PC-Week-Dec-26-1988.pdf , access-date=2010-11-22 , {{yes
{{small, (OS/2 version no longer maintained) , {{optional , {{optional , {{proprietary , {{no , Text-based CLI , {{no , {{no , {{yes
{{small, (-t timestamp operator) , {{yes , {{yes
{{small, ({{mono, stdin, {{mono, stdout, {{mono, stdout+stderr) , {{yes
{{small, (via variables and options) , {{yes
{{small, (via login.csh, startup.csh and logout.csh) , {{yes
{{small, (command line option) , {{yes , {{yes , - ! Scsh ,
POSIX The Portable Operating System Interface (POSIX; ) is a family of standards specified by the IEEE Computer Society for maintaining compatibility between operating systems. POSIX defines application programming interfaces (APIs), along with comm ...
, scsh , 1994 , {{yes , {{dunno , {{dunno , {{free,
BSD The Berkeley Software Distribution (BSD), also known as Berkeley Unix or BSD Unix, is a discontinued Unix operating system developed and distributed by the Computer Systems Research Group (CSRG) at the University of California, Berkeley, beginni ...
-style , {{yes , {{dunno , {{dunno , {{dunno , {{dunno , {{dunno , {{yes , {{dunno , {{dunno , {{dunno , {{dunno , {{yes , - ! ksh (ksh93t+) ,
POSIX The Portable Operating System Interface (POSIX; ) is a family of standards specified by the IEEE Computer Society for maintaining compatibility between operating systems. POSIX defines application programming interfaces (APIs), along with comm ...
, ksh , 1983{{Cite newsgroup , author-first=Ron , author-last=Gomes , title=Toronto USENIX Conference Schedule (tentative) , date=1983-06-09 , newsgroup=net.usenix , url=https://groups.google.com/group/net.usenix/msg/fa6e1f7de3b63bba?hl=en , access-date=2010-12-29 {{Cite newsgroup , author-first=Guy , author-last=Harris , title=csh question , date=1983-10-10 , newsgroup=net.flame , url=https://groups.google.com/group/net.flame/msg/4f868085b65af530?hl=en , access-date=2010-12-29 , {{yes , AIX,
HP-UX HP-UX (from "Hewlett Packard Unix") is a proprietary software, proprietary implementation of the Unix operating system developed by Hewlett Packard Enterprise; current versions support HPE Integrity Servers, based on Intel's Itanium architect ...
,
OpenSolaris OpenSolaris () is a discontinued open-source computer operating system for SPARC and x86 based systems, created by Sun Microsystems and based on Solaris. Its development began in the mid 2000s and ended in 2010. OpenSolaris was developed as ...
, {{free, Common Public License , {{yes , Text-based CLI , {{no , {{yes , {{yes
{{small, ({{mono, printf builtin with {{mono, %(%F)Tksh93(1) man page
/ref>) , {{yes , {{yes
{{small, ({{mono, fds up to 9) , {{yes
{{small, (via variables and options) , {{yes
{{small, (system and user's {{mono, profile and {{mono, kshrc) , {{yes
{{small, (Unix feature) , {{yes , {{yes , - !
pdksh KornShell (ksh) is a Unix shell which was developed by David Korn at Bell Labs in the early 1980s and announced at USENIX on July 14, 1983. The initial development was based on Bourne shell source code. Other early contributors were Bell ...
,
POSIX The Portable Operating System Interface (POSIX; ) is a family of standards specified by the IEEE Computer Society for maintaining compatibility between operating systems. POSIX defines application programming interfaces (APIs), along with comm ...
, ksh, sh , 1989? , {{yes ,
OpenBSD OpenBSD is a security-focused operating system, security-focused, free software, Unix-like operating system based on the Berkeley Software Distribution (BSD). Theo de Raadt created OpenBSD in 1995 by fork (software development), forking NetBSD ...
Default shell in OpenBSD
is ksh (pdksh).
,
OpenBSD OpenBSD is a security-focused operating system, security-focused, free software, Unix-like operating system based on the Berkeley Software Distribution (BSD). Theo de Raadt created OpenBSD in 1995 by fork (software development), forking NetBSD ...
, {{free,
Public domain The public domain (PD) consists of all the creative work to which no Exclusive exclusive intellectual property rights apply. Those rights may have expired, been forfeited, expressly Waiver, waived, or may be inapplicable. Because no one holds ...
, {{yes , Text-based CLI , {{no , {{no , {{N/A , {{yes , {{yes
{{small, ({{citation needed span, date=December 2021, arbitrary {{mono, fds ) , {{yes
{{small, (via variables and options) , {{yes
{{small, ({{mono, /etc/profile, {{mono, .profile) , {{yes
{{small, (Unix feature) , {{yes , {{yes , - ! zsh ,
POSIX The Portable Operating System Interface (POSIX; ) is a family of standards specified by the IEEE Computer Society for maintaining compatibility between operating systems. POSIX defines application programming interfaces (APIs), along with comm ...
, zsh , 1990 , {{yes , Deepin, GoboLinux, Grml,
macOS macOS, previously OS X and originally Mac OS X, is a Unix, Unix-based operating system developed and marketed by Apple Inc., Apple since 2001. It is the current operating system for Apple's Mac (computer), Mac computers. With ...
10.15+,
Kali Kali (; , ), also called Kalika, is a major goddess in Hinduism, primarily associated with time, death and destruction. Kali is also connected with transcendental knowledge and is the first of the ten Mahavidyas, a group of goddesses who p ...
2020.4+ , Grml,
macOS macOS, previously OS X and originally Mac OS X, is a Unix, Unix-based operating system developed and marketed by Apple Inc., Apple since 2001. It is the current operating system for Apple's Mac (computer), Mac computers. With ...
10.15+ , {{free,
MIT The Massachusetts Institute of Technology (MIT) is a private research university in Cambridge, Massachusetts, United States. Established in 1861, MIT has played a significant role in the development of many areas of modern technology and sc ...
-style , {{yes , Text-based CLI , {{yes
{{small, via additional code , {{yes , {{yes
{{small, (various internal features involving the date, by using the {{mono, %F {{mono, strftime format and the {{mono, -i option for the {{mono, fc builtin) , {{yes , {{yes
{{small, ({{mono, fds up to 9) , {{yes
{{small, (via variables, options, functions, styles, etc.) , {{yes
{{small, (system and user's {{mono, zshenv, {{mono, zprofile, {{mono, zshrc, {{mono, zlogin, {{mono, zlogout) , {{yes
{{small, (Unix feature) , {{yes , {{yes , - ! ash ,
POSIX The Portable Operating System Interface (POSIX; ) is a family of standards specified by the IEEE Computer Society for maintaining compatibility between operating systems. POSIX defines application programming interfaces (APIs), along with comm ...
, sh , 1989 , {{yes ,
Minix MINIX is a Unix-like operating system based on a microkernel Software architecture, architecture, first released in 1987 and written by American-Dutch computer scientist Andrew S. Tanenbaum. It was designed as a clone of the Unix operating syste ...
,
BusyBox BusyBox is a software suite that provides several List of Unix commands, Unix utilities in a single executable file. It runs in a variety of POSIX environments such as Linux, Android (operating system), Android, and FreeBSD, although many of the ...
based systems ,
NetBSD NetBSD is a free and open-source Unix-like operating system based on the Berkeley Software Distribution (BSD). It was the first open-source BSD descendant officially released after 386BSD was fork (software development), forked. It continues to ...
,
Minix MINIX is a Unix-like operating system based on a microkernel Software architecture, architecture, first released in 1987 and written by American-Dutch computer scientist Andrew S. Tanenbaum. It was designed as a clone of the Unix operating syste ...
,
BusyBox BusyBox is a software suite that provides several List of Unix commands, Unix utilities in a single executable file. It runs in a variety of POSIX environments such as Linux, Android (operating system), Android, and FreeBSD, although many of the ...
based systems , {{free,
BSD The Berkeley Software Distribution (BSD), also known as Berkeley Unix or BSD Unix, is a discontinued Unix operating system developed and distributed by the Computer Systems Research Group (CSRG) at the University of California, Berkeley, beginni ...
-style , {{yes , Text-based CLI , {{no , {{partial
{{small, (for BusyBox, supported in command-line editing, but not in string handling) , {{N/A , {{yes , {{yes
{{small, ({{citation needed span, date=December 2021, arbitrary {{mono, fds ) , {{yes
{{small, (via variables and options) , {{yes
{{small, ({{mono, /etc/profile, {{mono, .profile) , {{yes
{{small, (Unix feature) , {{yes , {{yes , - ! CCP ,
CP/M CP/M, originally standing for Control Program/Monitor and later Control Program for Microcomputers, is a mass-market operating system created in 1974 for Intel 8080/Intel 8085, 85-based microcomputers by Gary Kildall of Digital Research, Dig ...
,
MP/M MP/M (Multi-Programming Monitor Control Program) is a discontinued multi-user version of the CP/M operating system, created by Digital Research developer Tom Rolander in 1979. It allowed multiple users to connect to a single computer, each u ...
, (CCP) , 1976 (1974) , {{no ,
CP/M CP/M, originally standing for Control Program/Monitor and later Control Program for Microcomputers, is a mass-market operating system created in 1974 for Intel 8080/Intel 8085, 85-based microcomputers by Gary Kildall of Digital Research, Dig ...
(no login),
MP/M MP/M (Multi-Programming Monitor Control Program) is a discontinued multi-user version of the CP/M operating system, created by Digital Research developer Tom Rolander in 1979. It allowed multiple users to connect to a single computer, each u ...
,
CP/M CP/M, originally standing for Control Program/Monitor and later Control Program for Microcomputers, is a mass-market operating system created in 1974 for Intel 8080/Intel 8085, 85-based microcomputers by Gary Kildall of Digital Research, Dig ...
,
MP/M MP/M (Multi-Programming Monitor Control Program) is a discontinued multi-user version of the CP/M operating system, created by Digital Research developer Tom Rolander in 1979. It allowed multiple users to connect to a single computer, each u ...
, {{proprietary, Freeware (originally proprietary) , {{yes (originally closed-source) , Text-based
CLI CLI may refer to: Computing * Call Level Interface, an SQL database management API * Command-line interface, of a computer program * Command-line interpreter or command language interpreter; see List of command-line interpreters * CLI (x86 instruc ...
, {{no , {{no , {{no , {{no , {{no , {{no , {{yes (automatic via {{mono, $$$.SUB) , {{partial
{{small, (only via external {{mono, SUBMIT command to update {{mono, $$$.SUB) , {{no , {{yes , - ! COMMAND.COM ,
DOS DOS (, ) is a family of disk-based operating systems for IBM PC compatible computers. The DOS family primarily consists of IBM PC DOS and a rebranded version, Microsoft's MS-DOS, both of which were introduced in 1981. Later compatible syste ...
,
COMMAND Command may refer to: Computing * Command (computing), a statement in a computer language * command (Unix), a Unix command * COMMAND.COM, the default operating system shell and command-line interpreter for DOS * Command key, a modifier key on A ...
, 1980 , {{no
{{small, (3rd party implementations, not bound to a specific DOS vendor or version, available) ,
DOS DOS (, ) is a family of disk-based operating systems for IBM PC compatible computers. The DOS family primarily consists of IBM PC DOS and a rebranded version, Microsoft's MS-DOS, both of which were introduced in 1981. Later compatible syste ...
,
Windows 95 Windows 95 is a consumer-oriented operating system developed by Microsoft and the first of its Windows 9x family of operating systems, released to manufacturing on July 14, 1995, and generally to retail on August 24, 1995. Windows 95 merged ...
, 98, SE, ME ,
DOS DOS (, ) is a family of disk-based operating systems for IBM PC compatible computers. The DOS family primarily consists of IBM PC DOS and a rebranded version, Microsoft's MS-DOS, both of which were introduced in 1981. Later compatible syste ...
,
Windows 95 Windows 95 is a consumer-oriented operating system developed by Microsoft and the first of its Windows 9x family of operating systems, released to manufacturing on July 14, 1995, and generally to retail on August 24, 1995. Windows 95 merged ...
, 98, SE, ME , vendor specific, f.e. MS-
EULA An end-user license agreement or EULA () is a legal contract between a software supplier and a customer or end-user. The practice of selling licenses to rather than copies of software predates the recognition of software copyright, which has ...
,MS-DOS and Windows component – covered by a valid license for MS-DOS or Microsoft Windows. or
BSD The Berkeley Software Distribution (BSD), also known as Berkeley Unix or BSD Unix, is a discontinued Unix operating system developed and distributed by the Computer Systems Research Group (CSRG) at the University of California, Berkeley, beginni ...
/ GPL (free clones) , {{no (except for OpenDOS, DR-DOS, PTS/DOS and FreeDOS) , Text-based CLI , {{no , {{no , {{no (except for DR-DOS) , {{yes (via {{mono, COMMAND con: or {{mono, CTTY con:) , {{yes
{{small, ({{mono, stdin, {{mono, stdout) , {{yes (via startup parameters and environment variables, DR-DOS also supports {{mono, DIR /C /R user-default switch command) , {{yes (automatic {{mono, \AUTOEXEC.BAT for primary shell, or explicitly via {{mono, /P, {{mono, /P:filename.bat or {{mono, /K startup options) , {{yes (via {{mono, CALL command or {{mono, /C and {{mono, /K startup options) , {{no , {{yes , - !OS/2 CMD.EXE ,
OS/2 OS/2 is a Proprietary software, proprietary computer operating system for x86 and PowerPC based personal computers. It was created and initially developed jointly by IBM and Microsoft, under the leadership of IBM software designer Ed Iacobucci, ...
,
eComStation eComStation or eCS is an operating system based on OS/2 Warp for the 32-bit x86 architecture. It was originally developed by Serenity Systems and Mensys BV under license from IBM. It includes additional applications, and support for new hardwa ...
,
ArcaOS ArcaOS is a Proprietary software, proprietary operating system based on OS/2, developed and marketed by Arca Noae, LLC under license from IBM. It was first released in 2017 and builds on OS/2 Warp 4.52 by adding support for new hardware, fixing ...
, CMD , 1987 , {{no ,
OS/2 OS/2 is a Proprietary software, proprietary computer operating system for x86 and PowerPC based personal computers. It was created and initially developed jointly by IBM and Microsoft, under the leadership of IBM software designer Ed Iacobucci, ...
,
eComStation eComStation or eCS is an operating system based on OS/2 Warp for the 32-bit x86 architecture. It was originally developed by Serenity Systems and Mensys BV under license from IBM. It includes additional applications, and support for new hardwa ...
,
ArcaOS ArcaOS is a Proprietary software, proprietary operating system based on OS/2, developed and marketed by Arca Noae, LLC under license from IBM. It was first released in 2017 and builds on OS/2 Warp 4.52 by adding support for new hardware, fixing ...
,
OS/2 OS/2 is a Proprietary software, proprietary computer operating system for x86 and PowerPC based personal computers. It was created and initially developed jointly by IBM and Microsoft, under the leadership of IBM software designer Ed Iacobucci, ...
,
eComStation eComStation or eCS is an operating system based on OS/2 Warp for the 32-bit x86 architecture. It was originally developed by Serenity Systems and Mensys BV under license from IBM. It includes additional applications, and support for new hardwa ...
,
ArcaOS ArcaOS is a Proprietary software, proprietary operating system based on OS/2, developed and marketed by Arca Noae, LLC under license from IBM. It was first released in 2017 and builds on OS/2 Warp 4.52 by adding support for new hardware, fixing ...
, {{proprietary,
IBM International Business Machines Corporation (using the trademark IBM), nicknamed Big Blue, is an American Multinational corporation, multinational technology company headquartered in Armonk, New York, and present in over 175 countries. It is ...
-
EULA An end-user license agreement or EULA () is a legal contract between a software supplier and a customer or end-user. The practice of selling licenses to rather than copies of software predates the recognition of software copyright, which has ...
OS/2 component – covered by a valid license for OS/2. , {{no , Text-based CLI , {{no , {{no , {{no , {{no , {{yes
{{small, ({{mono, stdin, {{mono, stdout, {{mono, stderr) , {{dunno , {{partial (only via {{mono, /K startup option) , {{yes (via {{mono, CALL command or {{mono, /C and {{mono, /K startup options) , {{no , {{yes , - !Windows CMD.EXECommand extensions enabled, or "CMD /X". ,
Win32 The Windows API, informally WinAPI, is the foundational application programming interface (API) that allows a computer program to access the features of the Microsoft Windows operating system in which the program is running. Programs can acces ...
, CMD , 1993 , {{no ,
Windows Windows is a Product lining, product line of Proprietary software, proprietary graphical user interface, graphical operating systems developed and marketed by Microsoft. It is grouped into families and subfamilies that cater to particular sec ...
NT, 2000, XP, Server 2003, Vista ,
Windows Windows is a Product lining, product line of Proprietary software, proprietary graphical user interface, graphical operating systems developed and marketed by Microsoft. It is grouped into families and subfamilies that cater to particular sec ...
NT, 2000, XP, Server 2003, Vista , {{proprietary, MS-
EULA An end-user license agreement or EULA () is a legal contract between a software supplier and a customer or end-user. The practice of selling licenses to rather than copies of software predates the recognition of software copyright, which has ...
Windows component – covered by a valid license for Microsoft Windows. , {{no , Text-based CLI , {{no , {{partial ({{mono, CHCP 65001 for
UTF-8 UTF-8 is a character encoding standard used for electronic communication. Defined by the Unicode Standard, the name is derived from ''Unicode Transformation Format 8-bit''. Almost every webpage is transmitted as UTF-8. UTF-8 supports all 1,112,0 ...
, but program arguments are still encoded in local codepage) , {{no , {{no , {{yes , {{yes (via registry, startup parameters, and environment variables) , {{yes (automatic via registry, or explicitly via {{mono, /K startup option) , {{yes (via {{mono, CALL command or {{mono, /C and {{mono, /K startup options) , {{no , {{yes , - !
4DOS 4DOS is a command-line interpreter by JP Software, designed to replace the default command interpreter COMMAND.COM in MS-DOS and Windows. It was written by Rex C. Conn and Tom Rawson and first released in 1989. Compared to the default, it has ...
, NDOS ,
DOS DOS (, ) is a family of disk-based operating systems for IBM PC compatible computers. The DOS family primarily consists of IBM PC DOS and a rebranded version, Microsoft's MS-DOS, both of which were introduced in 1981. Later compatible syste ...
,
Windows 95 Windows 95 is a consumer-oriented operating system developed by Microsoft and the first of its Windows 9x family of operating systems, released to manufacturing on July 14, 1995, and generally to retail on August 24, 1995. Windows 95 merged ...
, 98, SE, ME ,
4DOS 4DOS is a command-line interpreter by JP Software, designed to replace the default command interpreter COMMAND.COM in MS-DOS and Windows. It was written by Rex C. Conn and Tom Rawson and first released in 1989. Compared to the default, it has ...
, NDOS , 1989 (1986) , {{no
{{small, (not bound to a specific OS vendor or version) , {{optional , {{optional , {{free,
MIT License The MIT License is a permissive software license originating at the Massachusetts Institute of Technology (MIT) in the late 1980s. As a permissive license, it puts very few restrictions on reuse and therefore has high license compatibility. Unl ...
, with restrictions , {{yes , Text-based CLI with TUI extensions , {{yes (popups, help system, {{mono, %_MOUSE internal variable, {{mono, INKEY /M command) , {{no , {{yes , {{yes (via {{mono, CTTY con:, except for {{mono, DRAWBOX, {{mono, DRAWLINE, {{mono, DRAWVLINE, {{mono, LIST, {{mono, SCREEN, {{mono, SCRPUT, {{mono, SELECT, {{mono, VSCRPUT commands and file / directory coloring) , {{yes
{{small, ({{mono, stdin, {{mono, stdout, {{mono, stderr, {{mono, stdout+stderr) , {{yes (via {{mono, 4DOS.INI/{{mono, NDOS.INI file, startup parameters, environment variables, {{mono, SETDOS command) , {{yes (automatic {{mono, \AUTOEXEC.BAT for primary shell and {{mono, 4START.BTM/{{mono, 4START.BAT as well as {{mono, 4EXIT.BTM/{{mono, 4EXIT.BAT for any shell, or explicitly via {{mono, /P, {{mono, /P:dir\filename.ext or {{mono, /K startup options) , {{yes (via {{mono, CALL command or {{mono, /C and {{mono, /K startup options) , {{yes , {{yes , - ! 4OS2 ,
OS/2 OS/2 is a Proprietary software, proprietary computer operating system for x86 and PowerPC based personal computers. It was created and initially developed jointly by IBM and Microsoft, under the leadership of IBM software designer Ed Iacobucci, ...
,
eComStation eComStation or eCS is an operating system based on OS/2 Warp for the 32-bit x86 architecture. It was originally developed by Serenity Systems and Mensys BV under license from IBM. It includes additional applications, and support for new hardwa ...
,
ArcaOS ArcaOS is a Proprietary software, proprietary operating system based on OS/2, developed and marketed by Arca Noae, LLC under license from IBM. It was first released in 2017 and builds on OS/2 Warp 4.52 by adding support for new hardware, fixing ...
, 4OS2 , 1992 , {{no
{{small, (not bound to specific OS/2 versions) , {{optional (but bundled with ArcaOS) , {{optional , {{proprietary, Freeware , {{yes , Text-based CLI , {{no , {{no , {{no , {{no , {{yes
{{small, ({{mono, stdin, {{mono, stdout, {{mono, stderr, {{mono, stdout+stderr) , {{yes (via {{mono, 4OS2.INI file, startup parameters, environment variables, {{mono, SETDOS command) , {{yes (automatic via {{mono, 4START.CMD/{{mono, 4START.BTM as well as {{mono, 4EXIT.CMD/{{mono, 4EXIT.BTM files, or explicitly via {{mono, /K startup.cmd option) , {{yes (via {{mono, CALL command or {{mono, /C and {{mono, /K startup options) , {{yes , {{dunno , - ! TCC
(formerly 4NT) ,
Win32 The Windows API, informally WinAPI, is the foundational application programming interface (API) that allows a computer program to access the features of the Microsoft Windows operating system in which the program is running. Programs can acces ...
, TCC , 1993 , {{no
{{small, (not bound to specific NT versions) , optional , optional , {{proprietary,
Shareware Shareware is a type of proprietary software that is initially shared by the owner for trial use at little or no cost. Often the software has limited functionality or incomplete documentation until the user sends payment to the software developer. ...
, {{no , Text-based CLI ( Take Command: GUI) , {{yes
{{small, (console mouse, popups, help system, {{mono, %_XMOUSE, {{mono, %_YMOUSE internal variables, {{mono, INKEY /M command) , {{yes , {{yes , {{no , {{yes
{{small, ({{mono, stdin, {{mono, stdout, {{mono, stderr, {{mono, stdout+stderr) , {{yes
{{small, (via registry, {{mono, TCMD.INI/{{mono, 4NT.INI file, startup parameters, environment variables, {{mono, SETDOS command) , {{yes
{{small, (automatic via registry and {{mono, TCSTART/{{mono, 4START as well as {{mono, TCEXIT/{{mono, 4EXIT, or explicitly via {{mono, /K startup option) , {{yes
{{small, (via {{mono, CALL command or {{mono, /C and {{mono, /K startup options) , {{yes , {{no , - ! VMS DCL ,
OpenVMS OpenVMS, often referred to as just VMS, is a multi-user, multiprocessing and virtual memory-based operating system. It is designed to support time-sharing, batch processing, transaction processing and workstation applications. Customers using Op ...
, {{small, Automatically for login/interactive process , 1977? , {{yes , VMS , VMS , Proprietary, bundled in VMS , {{no, by special license only , Text-based CLI , {{yes, with DECwindows/Motif , {{yes , {{yes, Yes, at least to 1988 standard , {{yes , {{yes
{{small, ({{mono, sys$input, {{mono, sys$output assignment) , {{yes
{{small, (via symbols, logical names, and options) , {{yes
{{small, (SYS$MANAGER:SYLOGIN.COM and user defined LOGIN.COM) , {{yes , {{yes , {{no , - !
PowerShell PowerShell is a shell program developed by Microsoft for task automation and configuration management. As is typical for a shell, it provides a command-line interpreter for interactive use and a script interpreter for automation via a langu ...
, ,
.NET The .NET platform (pronounced as "''dot net"'') is a free and open-source, managed code, managed computer software framework for Microsoft Windows, Windows, Linux, and macOS operating systems. The project is mainly developed by Microsoft emplo ...
,
.NET Framework , PowerShell , 2006 , {{yes ,
Windows Windows is a Product lining, product line of Proprietary software, proprietary graphical user interface, graphical operating systems developed and marketed by Microsoft. It is grouped into families and subfamilies that cater to particular sec ...
10, 8, Server 2008, 7Microsoft PowerShell is installed by default on Windows 7 and later. It is an optional download for users of Windows Vista or Windows XP. ,
Windows Windows is a Product lining, product line of Proprietary software, proprietary graphical user interface, graphical operating systems developed and marketed by Microsoft. It is grouped into families and subfamilies that cater to particular sec ...
10, 8, Server 2008, 7 , {{free,
MIT The Massachusetts Institute of Technology (MIT) is a private research university in Cambridge, Massachusetts, United States. Established in 1861, MIT has played a significant role in the development of many areas of modern technology and sc ...
-style , {{yes , Graphical CLI , {{yes , {{yes , {{yes , {{yes , {{yes , {{yes
{{small, (via variables and options) , {{yes
{{small, (%USERPROFILE%\Documents \WindowsPowerShell\Microsoft.PowerShell_profile.ps1) , {{yes
{{small, (PowerShell feature) , {{yes , {{no , - ! rc , Plan 9,
POSIX The Portable Operating System Interface (POSIX; ) is a family of standards specified by the IEEE Computer Society for maintaining compatibility between operating systems. POSIX defines application programming interfaces (APIs), along with comm ...
, rc , 1989 , {{yes , Plan 9, Version 10 Unix , Plan 9, Version 10 Unix , {{free,
MIT License The MIT License is a permissive software license originating at the Massachusetts Institute of Technology (MIT) in the late 1980s. As a permissive license, it puts very few restrictions on reuse and therefore has high license compatibility. Unl ...
, {{yes , Text-based CLI , {{dunno , {{yes , {{yes , {{dunno , {{yes , {{yes
{{small, (via options) , {{yes
{{small, ({{mono, $HOME/.rcrc) , {{yes , {{dunno , {{yes , - ! BeanShell ,
Java Java is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea (a part of Pacific Ocean) to the north. With a population of 156.9 million people (including Madura) in mid 2024, proje ...
, {{dunno , 2005 , {{yes , {{dunno , {{dunno , {{free,
LGPL The GNU Lesser General Public License (LGPL) is a free-software license published by the Free Software Foundation (FSF). The license allows developers and companies to use and integrate a software component released under the LGPL into their own ...
, {{dunno , {{dunno , {{dunno , {{yes , {{dunno , {{dunno , {{yes , {{dunno , {{dunno , {{dunno , {{dunno , {{no , - !
fish A fish (: fish or fishes) is an aquatic animal, aquatic, Anamniotes, anamniotic, gill-bearing vertebrate animal with swimming fish fin, fins and craniate, a hard skull, but lacking limb (anatomy), limbs with digit (anatomy), digits. Fish can ...
,
POSIX The Portable Operating System Interface (POSIX; ) is a family of standards specified by the IEEE Computer Society for maintaining compatibility between operating systems. POSIX defines application programming interfaces (APIs), along with comm ...
, fish , 2005 , {{yes , GhostBSD , {{dunno , {{free, GPL , {{yes , Text-based CLI , {{dunno , {{yes , {{dunno , {{dunno , {{yes
{{small, ({{citation needed span, date=December 2021, arbitrary {{mono, fds ) , {{yes
{{small, (through environment variables and via web interface through {{mono, fish_config) , {{yes
{{small, ({{mono, /etc/fish/config.fish and {{mono, ~/.config/fish/config.fish) , {{yes
{{small, (Unix feature) , {{yes
{{small, ({{mono, ~/.config/fish/fish_history*) , {{dunno , - !Ion ,
Redox Redox ( , , reduction–oxidation or oxidation–reduction) is a type of chemical reaction in which the oxidation states of the reactants change. Oxidation is the loss of electrons or an increase in the oxidation state, while reduction is t ...
,
Linux Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
, ion , 2015 , {{yes ,
Redox Redox ( , , reduction–oxidation or oxidation–reduction) is a type of chemical reaction in which the oxidation states of the reactants change. Oxidation is the loss of electrons or an increase in the oxidation state, while reduction is t ...
,
Redox Redox ( , , reduction–oxidation or oxidation–reduction) is a type of chemical reaction in which the oxidation states of the reactants change. Oxidation is the loss of electrons or an increase in the oxidation state, while reduction is t ...
, {{free,
MIT The Massachusetts Institute of Technology (MIT) is a private research university in Cambridge, Massachusetts, United States. Established in 1861, MIT has played a significant role in the development of many areas of modern technology and sc ...
, {{yes , Text-based CLI , {{dunno , {{yes , {{yes , {{dunno , {{yes
{{small, ({{citation needed span, date=December 2021, arbitrary {{mono, fds ) , {{yes
{{small, (follows the XDG Base Directory spec) , {{yes
{{small, ({{mono, ~/.config/ion/initrc) , {{yes, Yes , {{yes
{{small, ({{mono, ~/.local/share/ion/history) , {{partial (not distributed as a standalone executable, but it can be built as one) , - !Shell !Usual environment !Usually invoked !Introduced ! Platform-independent !Default login shell in !Default script shell in !License !Source code availability !User interface !Mouse support !
Unicode Unicode or ''The Unicode Standard'' or TUS is a character encoding standard maintained by the Unicode Consortium designed to support the use of text in all of the world's writing systems that can be digitized. Version 16.0 defines 154,998 Char ...
support !
ISO 8601 ISO 8601 is an international standard covering the worldwide exchange and communication of date and time-related data. It is maintained by the International Organization for Standardization (ISO) and was first published in 1988, with updates in ...
support ! Console redirection !
Stream A stream is a continuous body of water, body of surface water Current (stream), flowing within the stream bed, bed and bank (geography), banks of a channel (geography), channel. Depending on its location or certain characteristics, a strea ...
redirection !Configurability !Startup/shutdown scripts !Batch scripts !Logging !Available as statically linked, independent single file executable


Interactive features

{{sticky header {{sort-under {, class="wikitable sortable sort-under sticky-header" style="width: auto; text-align: center; font-size: smaller;" , - !Shell !{{small, Command
name
completion
!{{small, Path
completion
!{{small, Command
argument
completion
!{{small, Wildcard
completion
!{{small, Command
history
!{{small, Mandatory
argument
prompt
!{{small, Automatic
suggestions
!{{small, Colored
directory
listings
!{{small, Text
highlighting
!{{small, Syntax
highlighting
!{{small, Directory history, stack or similar features !{{small, Implicit
directory
change
!{{small, Auto­correction !{{small, Integrated
environment !{{small, Snippets !{{small, Value
prompt !{{small, Menu/options
prompt !{{small, Progress
indicator
!{{small, Context
sensitive
help
, - !
Thompson shell The Thompson shell was the first Unix shell, introduced in the first version of Unix in 1971, and was written by Ken Thompson. It was a simple command interpreter, not designed for scripting, but nonetheless introduced several innovative featu ...
, {{no , {{no , {{no , {{no , {{no , {{no , {{no , ? , ? , {{no , {{no , {{no , {{no , {{no , {{no , {{no , {{no , {{no , {{no , - !
Bourne shell The Bourne shell (sh) is a shell command-line interpreter for computer operating systems. It first appeared on Version 7 Unix, as its default shell. Unix-like systems continue to have /bin/sh—which will be the Bourne shell, or a symbolic lin ...
1977 version , {{no , {{no , {{no , {{no , {{no , {{no , {{no , ? , ? , {{no , {{no , {{no , {{no , {{no , {{no , {{yes , {{no , {{partial, External , {{no , - !
Bourne shell The Bourne shell (sh) is a shell command-line interpreter for computer operating systems. It first appeared on Version 7 Unix, as its default shell. Unix-like systems continue to have /bin/sh—which will be the Bourne shell, or a symbolic lin ...
current version , {{no , {{yescurrent versions from Jörg Schilling. , {{no , {{no , {{yes , {{no , {{no , {{yes , {{yes , {{no , {{yes (CDPATH, pushd, popd, dirs), CDPATH since SVr4 , {{no , {{no , {{no , {{no , {{yes , {{no , {{partial, External , {{no , - !
POSIX The Portable Operating System Interface (POSIX; ) is a family of standards specified by the IEEE Computer Society for maintaining compatibility between operating systems. POSIX defines application programming interfaces (APIs), along with comm ...
shell , {{no , {{no , {{no , {{no , {{yes , {{no , {{no , {{yes , {{yes , {{no , {{yes
{{small, ({{mono, CDPATH) , {{no , {{no , {{no , {{no , {{yes , {{no , {{partial, External , {{no , - ! bash (v4.0) , {{yes , {{yes , {{yes , {{yesAlt-Shift-8 or Alt-* will expand to the full matching list of filenames. , {{yes , {{no , {{no , {{yes , {{yes , {{no , {{yes
{{small, ({{mono, CDPATH, {{mono, pushd, {{mono, popd) , {{yes, optional , {{no , {{no , {{no , {{yes , {{yes , {{partial, External , {{no , - ! csh , {{yes , {{yes , {{no , {{no , {{yes , {{no , {{no , {{yes , {{yes , {{no , {{yes
{{small, ({{mono, cdpath, {{mono, pushd, {{mono, popd) , {{yes, optional , {{no , {{no , {{no , {{yes , {{no , {{partial, External , {{no , - !
tcsh tcsh ( “tee-see-shell”, “tee-shell”, or as “tee see ess aitch”, tcsh) is a Unix shell based on and backward compatible with the C shell (csh). Shell It is essentially the C shell with programmable command-line completion, command- ...
, {{yes , {{yes , {{yes2, when defined , {{no , {{yes , {{no , {{no , {{yes , {{yes , {{no , {{yes
{{small, ({{mono, cdpath, {{mono, pushd, {{mono, popd) , {{yes, optional , {{yes , {{no , {{no , {{yes , {{no , {{partial, External , {{no , - ! Hamilton C shell , {{yes , {{yes , {{no , {{yes , {{yes , {{no , {{no , {{yes , {{yes , {{no , {{yes
{{small, ({{mono, cdpath, {{mono, pushd, {{mono, popd) , {{no , {{no , {{no , {{no , {{yes , {{no , {{partial, External , {{no , - ! Scsh , {{no , {{no , {{no , {{no , {{no , {{no , {{no , ? , ? , {{no , {{no , {{no , {{no , {{no , {{no , {{yes , {{no , {{partial, External , {{no , - ! ksh (ksh93t+) , {{yes
{{small, (extendable) , {{yes
{{small, (extendable) , {{no , {{no , {{yes , {{no , {{no , {{yes , {{yes , {{no , {{yes
{{small, ({{mono, cdpath builtin, {{mono, pushd, {{mono, popd implemented as functions) , {{no , {{no , {{no , {{no , {{yes , {{yes , {{partial, External , {{no , - !
pdksh KornShell (ksh) is a Unix shell which was developed by David Korn at Bell Labs in the early 1980s and announced at USENIX on July 14, 1983. The initial development was based on Bourne shell source code. Other early contributors were Bell ...
, {{yes , {{yes , {{no , {{no , {{yes , {{no , {{no , {{yes , {{yes , {{no , {{no , {{no , {{no , {{no , {{no , {{yes , {{yes , {{partial, External , {{no , - ! zsh , {{yes , {{yes , {{yes , {{yes , {{yes , {{yes , {{yes
{{small, (via {{mono, predict-on or user-defined) , {{yes , {{yes , {{partial, Third-party extension , {{yes , {{yes, optional , {{yes , {{no , {{yes2, when defined (as ZLE widgets) , {{yes , {{yes , {{partial, External , {{yes , - ! ash , {{no , {{no , {{no , {{no , {{yes , {{no , {{no , {{yes , {{yes , {{no , {{no , {{no , {{no , {{no , {{no , {{yes , {{yes , {{partial, External , {{no , - ! CCP , {{no , {{no , {{no , {{no , {{no , {{no , {{no , {{no , {{no , {{no , {{no , {{no , {{no , {{no , {{no , {{no , {{no , {{no , {{no , - ! COMMAND.COM , {{no , {{no , {{no , {{no , {{noAvailable through the {{mono,
DOSKEY DOSKEY is a command in DOS, OS/2, Windows, and ReactOS that adds command history, macro functionality, and improved editing features to the COMMAND.COM and cmd.exe command-line interpreter shells. History The command was included as a termi ...
add-on.
Available in DR-DOS through {{mono,
HISTORY History is the systematic study of the past, focusing primarily on the Human history, human past. As an academic discipline, it analyses and interprets evidence to construct narratives about what happened and explain why it happened. Some t ...
.
, {{no , {{no , {{no , {{no (only in DR-DOS through %$ON%, %$OFF%, %$HEADER%, %$FOOTER%) , {{no , {{no , {{no , {{no , {{no (only single-stepping with COMMAND /Y) , {{no , {{no , {{no (only via external {{mono, CHOICE command, in DR-DOS also via {{mono, SWITCH / {{mono, DRSWITCH internal commands) , {{no , {{no , - !OS/2
CMD.EXE , {{yes , {{yes , {{no , {{no , {{yes , {{no , {{no , {{no , {{no , {{no , {{no , {{no , {{no , {{no , {{no , {{no , {{no , {{no , {{no , - !Windows
CMD.EXE , {{yes2, partial , {{yes2, partial , {{no , {{no , {{yes
{{small, ({{mono, F8) , {{no , {{no , {{no , {{no , {{no , {{yes
{{small, ({{mono, PUSHD, {{mono, POPD) , {{no , {{no , {{no , {{no , {{yes (via {{mono, SET /P command) , {{no , {{no , {{no , - !
4DOS 4DOS is a command-line interpreter by JP Software, designed to replace the default command interpreter COMMAND.COM in MS-DOS and Windows. It was written by Rex C. Conn and Tom Rawson and first released in 1989. Compared to the default, it has ...
, {{yes , {{yes , {{yes , {{yes , {{yesAlternatively available through the {{mono,
DOSKEY DOSKEY is a command in DOS, OS/2, Windows, and ReactOS that adds command history, macro functionality, and improved editing features to the COMMAND.COM and cmd.exe command-line interpreter shells. History The command was included as a termi ...
add-on as well.
Alternatively available in DR-DOS through {{mono,
HISTORY History is the systematic study of the past, focusing primarily on the Human history, human past. As an academic discipline, it analyses and interprets evidence to construct narratives about what happened and explain why it happened. Some t ...
as well.
, {{no , {{no , {{yes , {{no , {{no , {{yes, (via popup, extended directory searches, {{mono, CDPATH, {{mono, PUSHD, {{mono, POPD, {{mono, DIRHISTORY, {{mono, DIRS, {{mono, CDD, {{mono, CD - commands and {{mono, %@DIRSTACK[] function) , {{yes , {{no , {{yes , {{no , {{yes (via {{mono, INPUT, {{mono, INKEY and {{mono, ESET commands) , {{yes (via {{mono, @SELECT[] function, and indirectly via a combination of {{mono, INKEY, {{mono, INPUT, {{mono, SWITCH commands) , {{no , {{yes , - ! 4OS2 , ? , ? , ? , ? , {{yes , {{no , {{no , {{yes , {{no , {{no , {{yes , {{yes , {{no , ? , {{no , ? , ? , {{no , {{yes , - ! TCC (formerly 4NT) , {{yes , {{yes , {{yes , {{yes , {{yes , {{no , {{no , {{yes , {{no , {{yes , {{yes, (via popup, extended directory searches, {{mono, CDPATH, {{mono, PUSHD, {{mono, POPD, {{mono, DIRHISTORY, {{mono, DIRS, {{mono, CDD, {{mono, CD - commands and {{mono, %@DIRSTACK[] function) , {{yes , {{no , {{yes , {{no , {{yes (via {{mono, INPUT, {{mono, INKEY, {{mono, ESET and {{mono, SET /P commands) , {{yes (via {{mono, @SELECT[] function, and indirectly via a combination of {{mono, INKEY, {{mono, INPUT, {{mono, SWITCH commands)TCC has special prompt functions for Yes, No, Cancel, Close, Retry. , {{no , {{yes , - !
PowerShell PowerShell is a shell program developed by Microsoft for task automation and configuration management. As is typical for a shell, it provides a command-line interpreter for interactive use and a script interpreter for automation via a langu ...
, {{yes , {{yes , {{yes , {{yes , {{yes
{{small, ({{mono, F8) , {{yes , {{yes, Yes; via PSReadLine{{cite web , url=https://github.com/lzybkr/PSReadLine, title=PSReadLine: A bash inspired readline implementation for PowerShell, first=Jason, last=Shirk, date=15 February 2018, via=GitHub module (bundled in v5.0) or in ISE , {{partial, Third-party extension , {{yes , {{yes, Yes; via PSReadLine module (bundled in v5.0) or in ISE , {{yes
{{small, (multiple stacks; multiple location types; {{mono, Push-Location, {{mono, Pop-Location) , {{yes2Yes, in PSReadLine module , {{yes2Yes, in ISE{{cite web , title=Windows PowerShell Integrated Scripting Environment (ISE) , url=https://technet.microsoft.com/en-us/library/dd819514.aspx?f=255&MSPPError=-2147217396 , publisher=Microsoft Technet , access-date=2015-09-12 , {{yes2Yes, in ISE , {{yes , {{yes , {{yes , {{yes, in ISE , {{yes, popup window , - ! rc , {{yesHandled by rio,
GNU readline GNU Readline is a software library that provides in-line editing and history capabilities for interactive programs with a command-line interface, such as GNU bash, Bash. It is currently maintained by Chet Ramey as part of the GNU Project. It allo ...
, editline or vrl.
, {{yes , {{no , {{no , {{yes , {{no , {{no , {{no , ? , {{no , {{no , {{no , {{no , {{no , {{no , ? , {{no , {{no , {{no , - ! BeanShell , {{yes , {{yes , {{no , {{no , {{no , {{no , {{no , ? , ? , {{no , {{no , {{no , {{no , {{no , {{no , {{no , {{no , {{no , {{no , - ! VMS DCL , {{yes, Minimum uniqueness scheme , {{no , {{no , {{no , {{yes , {{yes , {{no , ? , ? , {{no , {{no , {{no , {{no , {{no , {{no , {{yes , {{no , {{no , {{no , - !
fish A fish (: fish or fishes) is an aquatic animal, aquatic, Anamniotes, anamniotic, gill-bearing vertebrate animal with swimming fish fin, fins and craniate, a hard skull, but lacking limb (anatomy), limbs with digit (anatomy), digits. Fish can ...
, {{yes , {{yes , {{yes{{cite web , url=http://fishshell.com/docs/current/index.html#completion , title=fish: Documentation , at=Section ''Tab completion'' , access-date=2016-01-10 , {{yes , {{yes , {{no , {{yes , {{yes , {{yes
{{small, (built-in helper available) , {{yes , {{yes , {{yes , {{yes , {{yesThe fish shell is an interactive character based input/output surface. , {{yes, Yes, using {{mono, abbr command , {{yes , {{yes, (via {{mono, fish_config command) , {{no , {{no , - !Shell ! Command
name
completion
! Path
completion
! Command
argument
completion
! Wildcard
completion
! Command
history
! Mandatory
argument
prompt
! Automatic
suggestions
! Colored
directory
listings
! Text
highlighting
! Syntax
highlighting
! Directory history, stack or similar features ! Implicit
directory
change
! Auto­correction !Integrated
environment !Snippets !Value
prompt !Menu/options
prompt ! Progress
indicator
! Context
sensitive
help


Background execution

Background execution allows a shell to run a command without user interaction in the terminal, freeing the command line for additional work with the shell. POSIX shells and other Unix shells allow background execution by using the ''&'' character at the end of command.


Completions

{{main article, Command-line completion Completion features assist the user in typing commands at the command line, by looking for and suggesting matching words for incomplete ones. Completion is generally requested by pressing the completion key (often the {{keypress, TAB key). ''Command name completion'' is the completion of the name of a command. In most shells, a command can be a program in the command path (usually $PATH), a builtin command, a function or alias. ''Path completion'' is the completion of the path to a file, relative or absolute. ''Wildcard completion'' is a generalization of path completion, where an expression matches any number of files, using any supported syntax for file matching. ''Variable completion'' is the completion of the name of a variable name (
environment variable An environment variable is a user-definable value that can affect the way running processes will behave on a computer. Environment variables are part of the environment in which a process runs. For example, a running process can query the va ...
or shell variable). Bash, zsh, and fish have completion for all variable names. PowerShell has completions for environment variable names, shell variable names and — from within user-defined functions — parameter names. ''Command argument completion'' is the completion of a specific command's arguments. There are two types of arguments, named and positional: Named arguments, often called ''options'', are identified by their name or letter preceding a value, whereas positional arguments consist only of the value. Some shells allow completion of argument names, but few support completing values. Bash, zsh and fish offer parameter name completion through a definition external to the command, distributed in a separate completion definition file. For command parameter name/value completions, these shells assume path/filename completion if no completion is defined for the command. Completion can be set up to dynamically suggest completions by calling a shell function. The fish shell additionally supports parsing of
man page A man page (short for manual page) is a form of software documentation found on Unix and Unix-like operating systems. Topics covered include programs, system libraries, system calls, and sometimes local system details. The local host administr ...
s to extract parameter information that can be used to improve completions/suggestions. In PowerShell, all types of commands (cmdlets, functions, script files) inherently expose data about the names, types and valid value ranges/lists for each argument. This metadata is used by PowerShell to automatically support argument name and value completion for built-in commands/functions, user-defined commands/functions as well as for script files. Individual cmdlets can also define dynamic completion of argument values where the completion values are computed dynamically on the running system.


Command history

{{main article, Command history Users of a shell may find themselves typing something similar to what they have typed before. Support for ''command history'' means that a user can recall a previous command into the command-line editor and edit it before issuing the potentially modified command. Shells that support completion may also be able to directly complete the command from the command history given a partial/initial part of the previous command. Most modern shells support command history. Shells which support command history in general also support completion from history rather than just recalling commands from the history. In addition to the plain command text, PowerShell also records execution start- and end time and execution status in the command history.


Mandatory argument prompt

{{further, Named parameter#Optional parameters Mandatory arguments/parameters are arguments/parameters which must be assigned a value upon invocation of the command, function or script file. A shell that can determine ahead of invocation that there are missing mandatory values, can assist the interactive user by prompting for those values instead of letting the command fail. Having the shell prompt for missing values will allow the author of a script, command or function to mark a parameter as mandatory instead of creating script code to either prompt for the missing values (after determining that it is being run interactively) or fail with a message.


Automatic suggestions

{{main article, Autocomplete Shells featuring automatic suggestions display optional command-line completions as the user types. The
PowerShell PowerShell is a shell program developed by Microsoft for task automation and configuration management. As is typical for a shell, it provides a command-line interpreter for interactive use and a script interpreter for automation via a langu ...
and
fish A fish (: fish or fishes) is an aquatic animal, aquatic, Anamniotes, anamniotic, gill-bearing vertebrate animal with swimming fish fin, fins and craniate, a hard skull, but lacking limb (anatomy), limbs with digit (anatomy), digits. Fish can ...
shells natively support this feature; pressing the {{keypress, tab key inserts the completion. Implementations of this feature can differ between shells; for example, PowerShell and zsh use an external module to provide completions, and fish derives its completions from the user's command history.


Directory history, stack or similar features

{{Further, pushd and popd Shells may record a history of directories the user has been in and allow for fast switching to any recorded location. This is referred to as a "directory stack". The concept had been realized as early as 1978 in the release of the C shell (csh). Command line interpreters
4DOS 4DOS is a command-line interpreter by JP Software, designed to replace the default command interpreter COMMAND.COM in MS-DOS and Windows. It was written by Rex C. Conn and Tom Rawson and first released in 1989. Compared to the default, it has ...
and its graphical successor Take Command Console also feature a directory stack.


Implicit directory change

A directory name can be used directly as a command which implicitly changes the current location to the directory. This must be distinguished from an unrelated load drive feature supported by
Concurrent DOS Multiuser DOS is a real-time multi-user multi-tasking operating system for IBM PC-compatible microcomputers. An evolution of the older Concurrent CP/M-86, Concurrent DOS and Concurrent DOS 386 operating systems, it was originally developed by ...
,
Multiuser DOS Multiuser DOS is a real-time multi-user multi-tasking operating system for IBM PC-compatible microcomputers. An evolution of the older Concurrent CP/M-86, Concurrent DOS and Concurrent DOS 386 operating systems, it was originally developed by ...
, System Manager and
REAL/32 Multiuser DOS is a real-time multi-user multi-tasking operating system for IBM PC-compatible microcomputers. An evolution of the older Concurrent CP/M-86, Concurrent DOS and Concurrent DOS 386 operating systems, it was originally developed by ...
, where the drive letter L: will be implicitly updated to point to the load path of a loaded application, thereby allowing applications to refer to files residing in their load directory under a standardized drive letter instead of under an absolute path.{{cite book , title=Concurrent DOS 386 - Multiuser/Multitasking Operating System - User Guide , publisher=
Digital Research Digital Research, Inc. (DR or DRI) was a privately held American software company created by Gary Kildall to market and develop his CP/M operating system and related 8-bit, 16-bit and 32-bit systems like MP/M, Concurrent DOS, FlexOS, Multiuser ...
, url=http://bitsavers.org/pdf/digitalResearch/concurrent/1126-2004-001_Concurrent_DOS_386_Users_Guide_Nov87.pdf


Autocorrection

When a command line does not match a command or arguments directly, spell checking can automatically correct common typing mistakes (such as
case sensitivity In computers, case sensitivity defines whether uppercase and lowercase letters are treated as distinct (case-sensitive) or equivalent (case-insensitive). For instance, when users interested in learning about dogs search an e-book, "dog" and "Dog ...
, missing letters). There are two approaches to this; the shell can either suggest probable corrections upon command invocation, or this can happen earlier as part of a completion or autosuggestion. The
tcsh tcsh ( “tee-see-shell”, “tee-shell”, or as “tee see ess aitch”, tcsh) is a Unix shell based on and backward compatible with the C shell (csh). Shell It is essentially the C shell with programmable command-line completion, command- ...
and zsh shells feature optional spell checking/correction, upon command invocation. Fish does the autocorrection upon completion and autosuggestion. The feature is therefore not in the way when typing out the whole command and pressing enter, whereas extensive use of the tab and right-arrow keys makes the shell mostly case insensitive. The PSReadLine PowerShell module (which is shipped with version 5.0) provides the option to specify a CommandValidationHandler ScriptBlock which runs before submitting the command. This allows for custom correcting of commonly mistyped commands, and verification before actually running the command.


Progress indicator

A shell script (or job) can report progress of long running tasks to the interactive user. Unix/Linux systems may offer other tools support using progress indicators from scripts or as standalone-commands, such as the program "pv". These are not integrated features of the shells, however.


Colored directory listings

JP Software 4DOS is a command-line interpreter by JP Software, designed to replace the default command interpreter COMMAND.COM in MS-DOS and Windows. It was written by Rex C. Conn and Tom Rawson and first released in 1989. Compared to the default, it has ...
command-line processors provide user-configurable colorization of file and directory names in directory listings based on their file extension and/or attributes through an optionally defined {{code, %COLORDIR% environment variable. For the Unix/Linux shells, this is a feature of the {{mono, ls command and the terminal.


Text highlighting

The command line processors in
DOS Plus DOS Plus (erroneously also known as DOS+) was the first operating system developed by Digital Research's OEM Support Group in Newbury, Berkshire, UK, first released in 1985. DOS Plus 1.0 was based on CP/M-86 Plus combined with the PCM ...
,
Multiuser DOS Multiuser DOS is a real-time multi-user multi-tasking operating system for IBM PC-compatible microcomputers. An evolution of the older Concurrent CP/M-86, Concurrent DOS and Concurrent DOS 386 operating systems, it was originally developed by ...
,
REAL/32 Multiuser DOS is a real-time multi-user multi-tasking operating system for IBM PC-compatible microcomputers. An evolution of the older Concurrent CP/M-86, Concurrent DOS and Concurrent DOS 386 operating systems, it was originally developed by ...
and in all versions of
DR-DOS DR-DOS is a disk operating system for IBM PC compatibles, originally developed by Gary A. Kildall's Digital Research, Inc. and derived from Concurrent PC DOS 6.0, which was an advanced successor of CP/M-86. Upon its introduction in 198 ...
support a number of optional environment variables to define escape sequences allowing to control text highlighting, reversion or colorization for display or print purposes in commands like
TYPE Type may refer to: Science and technology Computing * Typing, producing text via a keyboard, typewriter, etc. * Data type, collection of values used for computations. * File type * TYPE (DOS command), a command to display contents of a file. * ...
. All mentioned command line processors support %$ON% and %$OFF%. If defined, these sequences will be emitted before and after filenames. A typical sequence for {{code, %$ON% would be {{code, \033 m in conjunction with ANSI.SYS, {{code">\033p for an ASCII terminal or {{code">\016 for an IBM or ESC/P printer. Likewise, typical sequences for {{code, %$OFF% would be {{code, \033[0m, {{code, \033q, {{code, \024, respectively. The variables %$HEADER% and %$FOOTER% are only supported by COMMAND.COM in DR-DOS 7.02 and higher to define sequences emitted before and after text blocks in order to control text highlighting, pagination or other formatting options. For the Unix/Linux shells, this is a feature of the terminal.


Syntax highlighting

{{main article, Syntax highlighting A defining feature of the fish shell is built-in syntax highlighting, As the user types, text is colored to represent whether the input is a valid command or not (the executable exists and the user has permissions to run it), and valid file paths are underlined. An independent project offers syntax highlighting as an add-on to the Z Shell (zsh). This is not part of the shell, however. PowerShell provides customizable syntax highlighting on the command line through the PSReadLine module. This module can be used with PowerShell v3.0+, and is bundled with v5.0 onwards. It is loaded by default in the command line host "powershell.exe" since v5.0. Take Command Console (TCC) offers syntax highlighting in the integrated environment.


Context sensitive help

{{main article, Context-sensitive help 4DOS, 4OS2, 4NT / Take Command Console and PowerShell (in PowerShell ISE) looks up context-sensitive help information when {{keypress, F1 is pressed. Zsh provides various forms of configurable context-sensitive help as part of its {{mono, run-help widget, {{mono, _complete_help command, or in the completion of options for some commands. The fish shell provides brief descriptions of a command's flags during tab completion.


Programming features

{{sort-under {, class="wikitable sortable sort-under" style="width: auto; text-align: center; font-size: smaller;" , - !Shell !Subroutine, Functions !Exception handling !Search & replace
on variable substi­tutions !{{verth, Arithmetic !{{verth, Floating point !Math function library !Array data type, Linear arrays or List (abstract data type), lists !{{verth, Associative array, Assoc­iative
arrays
!{{verth, Lambda
functions
!{{verth, eval
function
! Pseudo­random number generation !
Bytecode Bytecode (also called portable code or p-code) is a form of instruction set designed for efficient execution by a software interpreter. Unlike human-readable source code, bytecodes are compact numeric codes, constants, and references (normal ...
, - !
Bourne shell The Bourne shell (sh) is a shell command-line interpreter for computer operating systems. It first appeared on Version 7 Unix, as its default shell. Unix-like systems continue to have /bin/sh—which will be the Bourne shell, or a symbolic lin ...
1977 version , {{no , {{yes, Yes (via {{mono, trap) , {{no , {{no , {{no , {{no , {{no , {{no , {{no , {{yes , {{no , {{no , - !
Bourne shell The Bourne shell (sh) is a shell command-line interpreter for computer operating systems. It first appeared on Version 7 Unix, as its default shell. Unix-like systems continue to have /bin/sh—which will be the Bourne shell, or a symbolic lin ...
current version , {{yes, Yes since SVR2 , {{yes, Yes (via {{mono, trap) , {{no , {{yes , {{no , {{no , {{no , {{no , {{no , {{yes , {{no , {{no , - !
POSIX The Portable Operating System Interface (POSIX; ) is a family of standards specified by the IEEE Computer Society for maintaining compatibility between operating systems. POSIX defines application programming interfaces (APIs), along with comm ...
shell , {{yes , {{yes, Yes (via {{mono, trap) , {{no , {{yes , {{no , {{no , {{no , {{no , {{no , {{yes , {{no , {{no , - ! bash (v4.0) , {{yes , {{yes, Yes (via {{mono, trap) , {{yes
{{small, (via {{mono, ${//} syntax) , {{yes , {{no , {{no , {{yes , {{yes , {{no , {{yes , {{yes
{{small, ({{mono, $RANDOM) , {{no , - ! csh , {{no , {{no , {{yes
{{small, (via {{mono, $var:s/// syntax) , {{yes , {{no , {{no , {{yes , {{no , {{no , {{yes , {{no , {{no , - !
tcsh tcsh ( “tee-see-shell”, “tee-shell”, or as “tee see ess aitch”, tcsh) is a Unix shell based on and backward compatible with the C shell (csh). Shell It is essentially the C shell with programmable command-line completion, command- ...
, {{partial, Work in progress , {{no , {{yes
{{small, (via {{mono, $var:s/// syntax) , {{yes , {{no , {{no , {{yes , {{no , {{no , {{yes , {{no , {{no , - ! Hamilton C shell , {{yes , {{no , {{yes
{{small, (via {{mono, $var:s/// syntax) , {{yes , {{yes , {{yes , {{yes , {{no , {{no , {{yes , {{yes, Yes (random utility) , {{no , - ! Scsh , {{yes , ? , {{yes
{{small, (via string functions and regular expressions) , ? , ? , ? , {{yes , ? , {{yes , {{yes , {{yes
{{small, (random-integer, random-real) , {{yes
{{small, (compiler is Scheme48 virtual machine, via {{mono, scshvm) , - ! ksh (ksh93t+) , {{yes , {{yes, Yes (via {{mono, trap) , {{yes
{{small, (via {{mono, ${//} syntax and builtin commands) , {{yes , {{yes , {{yes , {{yes , {{yes , {{no , {{yes , {{yes
{{small, ({{mono, $RANDOM) , {{yes
{{small, (compiler is called {{mono, shcomp) , - !
pdksh KornShell (ksh) is a Unix shell which was developed by David Korn at Bell Labs in the early 1980s and announced at USENIX on July 14, 1983. The initial development was based on Bourne shell source code. Other early contributors were Bell ...
, {{yes , {{yes, Yes (via {{mono, trap) , {{no , {{yes , {{no , {{no , {{yes , {{no , {{no , {{yes , {{yes
{{small, ({{mono, $RANDOM) , {{no , - ! zsh , {{yes , {{yes , {{yes
{{small, (via {{mono, ${:s//} and {{mono, ${//} syntax) , {{yes , {{yes , {{yes
{{small, ({{mono, zsh/mathfunc module) , {{yes , {{yes , {{no , {{yes , {{yes
{{small, ({{mono, $RANDOM) , {{yes
{{small, (built-in {{mono, zcompile command) , - ! ash , {{yes , {{yes (via {{mono, trap) , {{no , {{yes
{{small, (since 1992) , {{no , {{no , {{no , {{no , {{no , {{yes , {{no , {{no , - ! CCP , {{no , ? , {{no , {{no , ? , ? , {{no , {{no , {{no , {{no , {{no , {{no , - ! COMMAND.COM , {{no , {{partial (only Auto-fail (via {{mono, COMMAND /F (or {{mono, /N in some versions of DR-DOS)) , {{no , {{no , {{no , {{no , {{no , {{no , {{no , {{no , {{no , {{no , - !OS/2 CMD.EXE , {{no , {{no , {{no , ? , {{no , {{no , ? , {{no , {{no , {{no , {{no , {{no , - !Windows CMD.EXE , {{yes
{{small, (via {{mono, CALL :label) , {{no , {{yes
{{small, (via {{mono, SET %''varname'':''expression'' syntax) , {{yes
{{small, (via {{mono, SET /A) , {{no , {{no , {{yes
{{small, (via {{mono, SET) , {{no , {{no , {{no , {{yes
{{small, ({{mono, %random%) , {{no , - !
4DOS 4DOS is a command-line interpreter by JP Software, designed to replace the default command interpreter COMMAND.COM in MS-DOS and Windows. It was written by Rex C. Conn and Tom Rawson and first released in 1989. Compared to the default, it has ...
, {{yes , {{yes
{{small, (via {{mono, ON command, optional Auto-fail via {{mono, 4DOS /F) , {{yes
{{small, (via {{mono, %@Replace ..} function) , {{yes
{{small, (via {{mono, SET /A) , ? , ? , {{yes
{{small, (via ranges, include lists, {{mono, @file lists and {{mono, FOR command) , {{no , {{no , {{yes , {{yes
{{small, ({{mono, %@Random ..} function) , {{yes
{{small, (via {{mono, BATCOMP command) , - ! 4OS2 , ? , ? , ? , ? , ? , ? , ? , ? , {{no , {{yes , {{yes ({{mono, %@Random ..} function) , ? , - ! TCC (formerly 4NT) , {{yes , {{yes
{{small, (via {{mono, ON and various {{mono, ...MONITOR commands) , {{yes
{{small, (via {{mono, %@Replace ..} function) , {{yes
{{small, (via {{mono, SET /A) , ? , ? , {{yes
{{small, (via ranges, include lists, {{mono, @file lists and {{mono, FOR command) , ? , {{no , {{yes , {{yes ({{mono, %@Random ..} function) , {{yes (via {{mono, BATCOMP command) , - !
PowerShell PowerShell is a shell program developed by Microsoft for task automation and configuration management. As is typical for a shell, it provides a command-line interpreter for interactive use and a script interpreter for automation via a langu ...
, {{yes , {{yes (Try-Catch-Finally) , {{yes
{{small, ({{mono, -replace operator) , {{yes , {{yes , {{yes, athclass , {{yes , {{yes , {{yes , {{yes , {{yes , {{yes, Yes, automatic , - ! rc , {{yes , {{yes , {{no , {{yes , ? , ? , {{yes , ? , {{no , {{yes , {{no , {{no , - ! BeanShell , {{yes , {{yes , ? , {{yes , ? , ? , {{yes , {{yes , {{no , {{yes , {{yes , {{yes , - ! VMS DCL , {{yes , {{yes , {{no , {{yes , {{no , {{yes, yes, for compiled programs , {{yes , {{no , {{no , {{no , {{no , {{no , - !
fish A fish (: fish or fishes) is an aquatic animal, aquatic, Anamniotes, anamniotic, gill-bearing vertebrate animal with swimming fish fin, fins and craniate, a hard skull, but lacking limb (anatomy), limbs with digit (anatomy), digits. Fish can ...
, {{yes , {{yes, Yes (via {{mono, trap) , {{yes, Yes, via {{mono, string builtin command , {{yes , {{yes , {{yes , {{yes , {{no , {{no , {{yes , {{yes
{{small, ({{mono, random) , {{no


String processing and filename matching

{{sort-under {, class="wikitable sortable sort-under" style="width: auto; text-align: center; font-size: smaller;" , - !Shell !String processing ! Alternation ( Brace expansion) !Pattern matching (
regular expression A regular expression (shortened as regex or regexp), sometimes referred to as rational expression, is a sequence of characters that specifies a match pattern in text. Usually such patterns are used by string-searching algorithms for "find" ...
s built-in) !Pattern matching (filename globbing) !Globbing qualifiers (filename generation based on file attributes) ! Recursive globbing (generating files from any level of subdirectories) , - !
Bourne shell The Bourne shell (sh) is a shell command-line interpreter for computer operating systems. It first appeared on Version 7 Unix, as its default shell. Unix-like systems continue to have /bin/sh—which will be the Bourne shell, or a symbolic lin ...
1977 version , ? , {{no , {{no , {{yes
{{small, ({{mono, *, {{mono, ?, {{mono, ..}) , {{no , {{no , - !
Bourne shell The Bourne shell (sh) is a shell command-line interpreter for computer operating systems. It first appeared on Version 7 Unix, as its default shell. Unix-like systems continue to have /bin/sh—which will be the Bourne shell, or a symbolic lin ...
recent version , {{partial (prefix and suffix stripping in variable expansion) , {{no , {{no , {{yes
{{small, ({{mono, *, {{mono, ?, {{mono, ..}) , {{no , {{no , - !
POSIX The Portable Operating System Interface (POSIX; ) is a family of standards specified by the IEEE Computer Society for maintaining compatibility between operating systems. POSIX defines application programming interfaces (APIs), along with comm ...
shell , {{partial (prefix and suffix stripping in variable expansion) , {{no , {{no , {{yes
{{small, ({{mono, *, {{mono, ?, {{mono, ..}) , {{no , {{no , - ! bash (v4.0) , {{partial (prefix and suffix stripping in variable expansion) , {{yes , {{yes , {{yes
{{small, ({{mono, *, {{mono, ?, {{mono, ..}, {{mono, {...}) , {{no , {{yes ({{mono, **/...) , - ! csh , {{yes
{{small, (:s and other editing operators) , {{yes , {{no , {{yes , {{no , {{no , - !
tcsh tcsh ( “tee-see-shell”, “tee-shell”, or as “tee see ess aitch”, tcsh) is a Unix shell based on and backward compatible with the C shell (csh). Shell It is essentially the C shell with programmable command-line completion, command- ...
, {{yes
{{small, (:s and other editing operators) , {{yes , {{yes , {{yes , {{no , {{no , - ! Hamilton C shell , {{yes
{{small, (:s and other editing operators + substr, strlen, strindex, printf, reverse, upper, lower, concat and other builtin functions) , {{yes , {{no , {{yes , {{no , {{yes
{{small, (via indefinite directory {{mono, "..." wildcard) , - ! Scsh , ? , ? , {{yes , {{yes , {{no , {{no , - ! ksh (ksh93t+) , {{partial (prefix, suffix stripping and string replacement in variable expansion) , {{yes{{cite book , author-last1=Seebach , author-first1=Peter , title=Beginning Portable Shell Scripting: From Novice to Professional , url=https://books.google.com/books?id=53zaxy423xcC , series=Expert's voice in open source , date=21 November 2008 , publisher=Apress , publication-date=2008 , page=149 , isbn=9781430210436 , access-date=2014-09-17 , quote=Brace expansion is available in ksh93, pdksh, bash, and zsh. , {{yes , {{yes
{{small, ({{mono, *, {{mono, ?, {{mono, ..}) , {{no , {{yes (with {{mono, set -G, no following of symlinks) , - !
pdksh KornShell (ksh) is a Unix shell which was developed by David Korn at Bell Labs in the early 1980s and announced at USENIX on July 14, 1983. The initial development was based on Bourne shell source code. Other early contributors were Bell ...
, ? , {{yes , {{no , {{yes , {{no , {{no , - ! zsh , {{yes (through variable processing: e.g. substring extraction, various transformations via parameter expansion) , {{yes , {{yes , {{yes
{{small, ({{mono, *, {{mono, ?, {{mono, ..}, extended globbingZsh offers a variety o
globbing options
) , {{yes , {{yes ({{mono, **/... or {{mono, ***/... to follow symlinks) , - ! ash , ? , ? , {{no , {{yes , {{no , {{no , - ! CCP , {{no , {{no , {{no , {{no , {{no , {{no , - ! COMMAND.COM , {{no , {{no , {{no , {{yes
{{small, ({{mono, *, {{mono, ?) , {{no , {{no , - !OS/2 CMD.EXE , {{no , {{no , {{no , {{yes
{{small, ({{mono, *, {{mono, ?) , {{partial (only in {{mono, DIR /A:... command) , {{no , - !Windows CMD.EXE , {{partial (only through {{mono, FOR /F and {{mono, SET /A) , {{no , {{no, NoNot available as a shell built-in. External {{mono, FINDSTR /R command is available in most Windows releases. , {{yes
{{small, ({{mono, *, {{mono, ?) , {{partial (only in {{mono, DIR /A:... command) , {{yes (via {{mono, FOR /R command, or, where available, indirectly via {{mono, /S subdir option) , - !
4DOS 4DOS is a command-line interpreter by JP Software, designed to replace the default command interpreter COMMAND.COM in MS-DOS and Windows. It was written by Rex C. Conn and Tom Rawson and first released in 1989. Compared to the default, it has ...
, {{yes (through variable functions {{mono, %@...[], extended environment variable processing, various string commands and {{mono, FOR /F and {{mono, SET /A) , {{no , {{no , {{yes
{{small, ({{mono, *, {{mono, ?, {{mono, ..}, extended wildcards, {{mono, SELECT popup command) , {{yes (via {{mono, /A:... attribute and {{mono, /I"..." description options and {{mono, / ...} size, {{mono, / ...} time, {{mono, / ...} date, and {{mono, / ...} file exclusion ranges) , {{yes (via {{mono, FOR /R command, or indirectly via {{mono, GLOBAL command or, where available, {{mono, /S subdir option) , - ! 4OS2 , ? , {{no , {{no , ? , ? , ? , - ! TCC (formerly 4NT) , {{yes (through variable functions {{mono, %@...[], extended environment variable processing, various string commands and {{mono, FOR /F and {{mono, SET /A) , {{no , {{yes , {{yes
{{small, ({{mono, *, {{mono, ?, {{mono, ..}, extended wildcards, {{mono, SELECT popup command) , {{yes (via {{mono, /A:... attribute and {{mono, /I"..." description options and {{mono, / ...} size, {{mono, / ...} time, {{mono, / ...} date, {{mono, / ...} owner, and {{mono, / ...} file exclusion ranges) , {{yes (via {{mono, FOR /R command, or indirectly via {{mono, GLOBAL command or, where available, {{mono, /S subdir option) , - !
PowerShell PowerShell is a shell program developed by Microsoft for task automation and configuration management. As is typical for a shell, it provides a command-line interpreter for interactive use and a script interpreter for automation via a langu ...
, {{yes
{{small, (Concat/Substring/Insert/Remove/Replace, ToLower/ToUpper, Trim/TrimStart/TrimEnd, Compare, Contains/StartsWith/EndWith, Format, IndexOf/LastIndexOf, Pad/PadLeft/PadRight, Split/Join, regular expression functions and other .NET string functions) , {{partial, Range operator for numbers , {{yes
{{small, (full regex support)PowerShell leverages the full
.NET The .NET platform (pronounced as "''dot net"'') is a free and open-source, managed code, managed computer software framework for Microsoft Windows, Windows, Linux, and macOS operating systems. The project is mainly developed by Microsoft emplo ...
regular expression engine which features named captures, zero-width lookahead/-behind, greedy/non-greedy, character classes, level counting etc.
, {{yes
{{small, ({{mono, *, {{mono, ?, {{mono, ..}) , ? , ? , - ! rc , ? , ? , {{no , {{yes , {{no , {{no , - ! BeanShell , ? , ? , {{yes , ? , ? , ? , - ! VMS DCL , {{yes , {{no , {{no , {{yes , {{no , {{yes (via {{mono, UBDIR...}) , - !
fish A fish (: fish or fishes) is an aquatic animal, aquatic, Anamniotes, anamniotic, gill-bearing vertebrate animal with swimming fish fin, fins and craniate, a hard skull, but lacking limb (anatomy), limbs with digit (anatomy), digits. Fish can ...
, {{yes
{{small, (builtin string function) , {{yes, Yes , {{yes
{{small, (via builtin {{mono, string match and {{mono, string replace functions) , {{yes
{{small, ({{mono, *, {{mono, ?, {{mono, {...}) , {{no , {{yes ({{mono, **/...)


Inter-process communication

{, class="wikitable sortable" style="width: auto; text-align: center; font-size: smaller;" , - !Shell !
Pipes Pipe(s), PIPE(S) or piping may refer to: Objects * Pipe (fluid conveyance), a hollow cylinder following certain dimension rules ** Piping, the use of pipes in industry * Smoking pipe ** Tobacco pipe * Half-pipe and quarter pipe, semi-circu ...
!
Command substitution In computing, command substitution is a facility that allows a Command-line interpreter, command to be run and its output to be pasted back on the command line as arguments to another command. Command substitution first appeared in the Bourne she ...
! Process substitution !Subshells ! TCP/ UDP connections as streams ! Keystroke stacking , - !
Bourne shell The Bourne shell (sh) is a shell command-line interpreter for computer operating systems. It first appeared on Version 7 Unix, as its default shell. Unix-like systems continue to have /bin/sh—which will be the Bourne shell, or a symbolic lin ...
, {{yes, bytes concurrent , {{yes , {{no , {{yes , {{no , {{N/A, N/Axautomation and xdotool can be used to generate keystrokes under
X Window System The X Window System (X11, or simply X) is a windowing system for bitmap displays, common on Unix-like operating systems. X originated as part of Project Athena at Massachusetts Institute of Technology (MIT) in 1984. The X protocol has been at ...
; or a program can be run in a pseudoterminal to be able to control it (as with the {{mono, expect tool).
, - !
POSIX The Portable Operating System Interface (POSIX; ) is a family of standards specified by the IEEE Computer Society for maintaining compatibility between operating systems. POSIX defines application programming interfaces (APIs), along with comm ...
shell , {{yes, bytes concurrent , {{yes , {{no , {{yes , {{no , {{N/A, N/A , - ! bash (v4.0) , {{yes, bytes concurrent , {{yes , {{yes
{{small, (if system supports {{mono, /dev/fd/''{{angbr, n'' or named pipes) , {{yes , {{yes
{{small, (client only) , {{N/A, N/A , - ! csh , {{yes, bytes concurrent , {{yes , {{no , {{yes , {{no , {{N/A, N/A , - !
tcsh tcsh ( “tee-see-shell”, “tee-shell”, or as “tee see ess aitch”, tcsh) is a Unix shell based on and backward compatible with the C shell (csh). Shell It is essentially the C shell with programmable command-line completion, command- ...
, {{yes, bytes concurrent , {{yes , {{no , {{yes , {{no , {{N/A, N/A , - ! Hamilton C shell , {{yes, bytes concurrent , {{yes , {{no , {{yes , {{no , ? , - ! Scsh , {{yes, text , ? , ? , ? , {{yes , {{N/A, N/A , - ! ksh (ksh93t+) , {{yes, bytes (may contain serialized objects if {{mono, print -C is used) concurrent , {{yes
{{small, ({{mono, $(...) and {{mono, ${...;}) , {{yes
{{small, (if system supports {{mono, /dev/fd/''{{angbr, n'') , {{yes , {{yes
{{small, (and SCTP support, client only) , {{N/A, N/A , - !
pdksh KornShell (ksh) is a Unix shell which was developed by David Korn at Bell Labs in the early 1980s and announced at USENIX on July 14, 1983. The initial development was based on Bourne shell source code. Other early contributors were Bell ...
, {{yes, bytes concurrent , {{yes , {{no , {{yes , {{no , {{N/A, N/A , - ! zsh , {{yes, bytes concurrent , {{yes , {{yes , {{yes , {{yes
{{small, (client and server, but only TCP) , {{N/A, N/A , - ! ash , {{yes, bytes concurrent , {{yes , {{no , {{yes , {{no , {{N/A, N/A , - ! CCP , {{no , {{no , {{no , {{no , {{no , {{no , - ! COMMAND.COM , {{yes, text sequential temporary files , {{no , {{no , {{partial (only under DR-DOS multitasker via {{mono, COMMAND.COM /T) , {{no , {{no , - !OS/2 CMD.EXE , {{yes, text concurrent , {{no , {{no , ? , {{no , {{no , - !Windows CMD.EXE , {{yes, text concurrent , {{yes
{{small, (via {{mono, FOR /F command) , {{no , {{yes
{{small, (Backtick: {{mono, ` in {{mono, FOR /F usebackq) , {{no , {{no , - !
4DOS 4DOS is a command-line interpreter by JP Software, designed to replace the default command interpreter COMMAND.COM in MS-DOS and Windows. It was written by Rex C. Conn and Tom Rawson and first released in 1989. Compared to the default, it has ...
, {{yes, text sequential temporary files , {{yes
{{small, (via {{mono, FOR /F command) , ? , {{partial (via {{mono, %@EXECSTR[] and {{mono, %@EXEC[], or via {{mono, SET /M, {{mono, ESET /M and {{mono, UNSET /M and {{mono, %@MASTER ..}) , {{no , {{yes (via {{mono, KEYSTACK and {{mono, KSTACK.COM, KSTACK){{cite book , title=4DOS 8.00 online help , title-link=4DOS 8.00 , author-first1=Hardin , author-last1=Brothers , author-first2=Tom , author-last2=Rawson , author-link2=Tom Rawson , author-first3=Rex C. , author-last3=Conn , author-link3=Rex C. Conn , author-first4=Matthias R. , author-last4=Paul , author-first5=Charles E. , author-last5=Dye , author-first6=Luchezar I. , author-last6=Georgiev , date=2002-02-27 , - ! 4OS2 , {{yes, text concurrent , ? , ? , ? , {{no , {{yes (via {{mono, KEYSTACK) , - ! TCC (formerly 4NT) , {{yes, text concurrent , {{yes
{{small, (via {{mono, FOR /F command) , ? , {{partial (via {{mono, %@EXECSTR[] and {{mono, %@EXEC[]) , {{yes (via {{mono, FTP, {{mono, TFTP, {{mono, FTPS, {{mono, SFTP, {{mono, HTTP, {{mono, HTTPS and {{mono, IFTP, client only) , {{yes (via {{mono, KEYSTACK) , - !
PowerShell PowerShell is a shell program developed by Microsoft for task automation and configuration management. As is typical for a shell, it provides a command-line interpreter for interactive use and a script interpreter for automation via a langu ...
, {{yes, objects concurrent , {{yes , {{no , {{yes , {{yes , ? , - ! rc , {{yes, text concurrent , {{yes , {{yes
{{small, (via: {{mono, <{cmd} if system supports {{mono, /dev/fd/''{{angbr, n'') , {{yes , {{no , ? , - ! BeanShell , {{no, not supported , ? , ? , ? , {{yes , ? , - ! VMS DCL , {{yes, text (via {{mono, PIPE command) , {{yes , {{no , {{yes
{{small, (spawn) , {{yes
{{small, (server TCP only) , {{no , - !
fish A fish (: fish or fishes) is an aquatic animal, aquatic, Anamniotes, anamniotic, gill-bearing vertebrate animal with swimming fish fin, fins and craniate, a hard skull, but lacking limb (anatomy), limbs with digit (anatomy), digits. Fish can ...
, {{yes, bytes concurrent , {{yes ({{mono, ...) , {{No, No (broken) , {{no , {{no , {{N/A, N/A


Keystroke stacking

In anticipation of what a given running application may accept as keyboard input, the user of the shell instructs the shell to generate a sequence of ''simulated'' keystrokes, which the application will interpret as a keyboard input from an interactive user. By sending keystroke sequences the user may be able to direct the application to perform actions that would be impossible to achieve through input redirection or would otherwise require an interactive user. For example, if an application acts on keystrokes, which cannot be redirected, distinguishes between normal and extended keys, flushes the queue before accepting new input on startup or under certain conditions, or because it does not read through standard input at all. Keystroke stacking typically also provides means to control the timing of simulated keys being sent or to delay new keys until the queue was flushed etc. It also allows to simulate keys which are not present on a keyboard (because the corresponding keys do not physically exist or because a different keyboard layout is being used) and therefore would be impossible to type by a user.


Security features

{{importance section, date=July 2014 {{sort-under {, class="wikitable sortable sort-under" style="width: auto; text-align: center; font-size: smaller;" , - !Shell !#Secure prompt, Secure (password) prompt !File/directory passwords !#Execute permission, Execute permission !#Restricted shell subset, Restricted shell subset !#Safe data subset, Safe data subset , - !
Bourne shell The Bourne shell (sh) is a shell command-line interpreter for computer operating systems. It first appeared on Version 7 Unix, as its default shell. Unix-like systems continue to have /bin/sh—which will be the Bourne shell, or a symbolic lin ...
, {{some, via {{mono, stty The shell can use the {{mono, stty utility to suppress echoing of typed characters to the screen. This requires multiple steps: 1. reading the current echo state, 2. switching echo off, 3. reading the input, 4. switching echo state back to the original state. , ? , {{N/A, N/AThe ''execute permission'' is enforced by a separate program, the program loader, by refusing to invoke the interpreter (possibly a shell) specified by the script's hashbang. The interpreter does not enforce the execute permission if invoked directly as the program loader would, with the file as an argument; this only requires read permission, as does piping the file as input to the interpreter, in which case the interpreter cannot see the execute permission. , {{yes , {{no , - !
POSIX The Portable Operating System Interface (POSIX; ) is a family of standards specified by the IEEE Computer Society for maintaining compatibility between operating systems. POSIX defines application programming interfaces (APIs), along with comm ...
shell , {{some, via {{mono, stty , ? , {{N/A, N/A , {{no , {{no , - ! bash (v4.0) , {{yes, {{mono, read -s , ? , {{N/A, N/A , {{yes , {{no , - ! csh , {{some, via {{mono, stty , ? , {{N/A, N/A , {{yes , {{no , - !
tcsh tcsh ( “tee-see-shell”, “tee-shell”, or as “tee see ess aitch”, tcsh) is a Unix shell based on and backward compatible with the C shell (csh). Shell It is essentially the C shell with programmable command-line completion, command- ...
, {{some, via {{mono, stty , ? , {{N/A, N/A , {{yes , {{no , - ! Hamilton C shell , {{no , {{no , {{no , {{no , {{no , - ! Scsh , {{some, via {{mono, stty , ? , {{N/A, N/A , {{no , {{no , - ! ksh (ksh93t+) , {{some, via {{mono, stty , ? , {{N/A, N/A , {{yes , {{no , - !
pdksh KornShell (ksh) is a Unix shell which was developed by David Korn at Bell Labs in the early 1980s and announced at USENIX on July 14, 1983. The initial development was based on Bourne shell source code. Other early contributors were Bell ...
, {{some, via {{mono, stty , ? , {{N/A, N/A , {{yes , {{no , - ! zsh , {{yes, {{mono, read -s , ? , {{N/A, N/AThe zsh and fish shells also honor the ''execute permission'' for command completion. , {{yes , {{no , - ! ash , {{some, via {{mono, stty , ? , {{N/A, N/A , {{yes , {{no , - ! CCP , {{no , {{no , {{no , {{no , {{no , - ! COMMAND.COM , {{partial (only under DR-DOS, prompts for password if file/directory is protected) , {{partial (only under DR-DOS via {{mono, \dirname;dirpwd\filename;filepwd syntax)Under DR-DOS the password separator for file and directory passwords is a semicolon. This is also supported under 4DOS for as long as the command does not support include lists. Under 4DOS, the password separator must be doubled for all commands supporting include lists in order to distinguish passwords from include lists. Commands not supporting include lists accept both forms. DR-DOS 7.02 and higher optionally accept a doubled semicolon as well, so that doubled semicolons work under both COMMAND.COM and 4DOS regardless of the command executed. , {{partial (only under DR-DOS, if files are password-protected for read and/or execute permission)DR-DOS supports file passwords for read/write/delete and optionally execute permissions. Files are not protected by default, but the system can be set up so that f.e. batch scripts require a password to read. , {{no , {{no , - !OS/2 CMD.EXE , {{no , {{no , {{no , {{no , {{no , - !Windows CMD.EXE , {{no , {{no , {{no , {{no , {{no , - !
4DOS 4DOS is a command-line interpreter by JP Software, designed to replace the default command interpreter COMMAND.COM in MS-DOS and Windows. It was written by Rex C. Conn and Tom Rawson and first released in 1989. Compared to the default, it has ...
, {{yes (via {{mono, INPUT /P or {{mono, INKEY /P){{mono, INPUT /P and {{mono, INKEY /P echoes back asterisks for each typed character. , {{partial (only under DR-DOS via {{mono, \dirname;;dirpwd\filename;;filepwd syntax) , {{partial (only under DR-DOS, if files are password-protected for read and/or execute permission) , {{no , {{no , - ! 4OS2 , ? , {{no , {{no , {{no , {{no , - ! TCC (formerly 4NT) , {{yes (via {{mono, INPUT /P, {{mono, INKEY /P or {{mono, QUERYBOX /P) , {{no , {{no , {{no , {{no , - !
PowerShell PowerShell is a shell program developed by Microsoft for task automation and configuration management. As is typical for a shell, it provides a command-line interpreter for interactive use and a script interpreter for automation via a langu ...
, {{yes{{mono, Read-Host -AsSecureString reads a string of characters from the input device into an encrypted string, one character at a time thus ensuring that there is no memory image of the clear text which could be gleaned from scanning memory, or from crash dumps, memory dumps, paging files, log files or similar. , {{no , {{noPowerShell script files ({{mono, .ps1 files) are by default associated with the Notepad editor, not with the PowerShell execution engine. Invoking a {{mono, .ps1 file will launch Notepad rather than executing the script. , {{yesStartup scripts per computer/user can import modules and expose a subset the commands/functions available in the modules. , {{yes , - ! rc , {{some, via {{mono, stty , ? , {{N/A, N/A , {{yes , {{no , - ! BeanShell , ? , ? , ? , ? , ? , - ! VMS DCL , {{yes , {{no , {{yes , {{yes , {{no , - !
fish A fish (: fish or fishes) is an aquatic animal, aquatic, Anamniotes, anamniotic, gill-bearing vertebrate animal with swimming fish fin, fins and craniate, a hard skull, but lacking limb (anatomy), limbs with digit (anatomy), digits. Fish can ...
, {{yes, {{mono, read -s , ? , {{N/A, N/A , {{yes, Yes (via {{mono, fish -l) , ?


Secure prompt

Some shell scripts need to query the user for sensitive information such as passwords, private digital keys, Personal Identification Number, PIN codes or other confidential information. Sensitive input should not be echoed back to the screen/input device where it could be gleaned by unauthorized persons. Plaintext memory representation of sensitive information should also be avoided as it could allow the information to be compromised, e.g., through swap files, core dumps etc.{{cite web , author-last=Provos , author-first=Niels , title=Encrypting Virtual Memory , url=http://www.openbsd.org/papers/swapencrypt.ps , publisher=Center for Information Technology Integration, University of Michigan , access-date=2012-12-20 The shells bash, zsh and PowerShell offer this as a specific feature. Shells which do not offer this as a specific feature may still be able to turn off echoing through some other means. Shells executing on a Unix/Linux operating system can use the {{mono, stty external command to switch off/on echoing of input characters. In addition to not echoing back the characters, PowerShell's {{code, -AsSecureString option also encrypts the input character-by-character during the input process, ensuring that the string is never represented unencrypted in memory where it could be compromised through memory dumps, scanning, transcription etc.


Execute permission

Some operating systems define an ''execute'' permission which can be granted to users/groups for a file when the file system itself supports it. On Unix systems, the execute permission controls access to invoking the file as a program, and applies both to executables and scripts. As the permission is enforced in the Loader (computing), program loader, no obligation is needed from the invoking program, nor the invoked program, in enforcing the execute permission{{Snd this also goes for shells and other interpreter programs. The behaviour is mandated by the C POSIX library, POSIX C library that is used for interfacing with the kernel. POSIX specifies that the exec family of functions shall fail with EACCESS (permission denied) if the file denies execution permission (see {{man, sh, execve, SUS). The ''execute'' permission only applies when the script is run directly. If a script is invoked as an argument to the interpreting shell, it will be executed regardless of whether the user holds the ''execute'' permission for that script. Although Windows also specifies an ''execute'' permission, none of the Windows-specific shells block script execution if the permission has not been granted.


Restricted shell subset

Several shells can be started or be configured to start in a mode where only a limited set of commands and actions is available to the user. While not a security ''boundary'' (the command accessing a resource is blocked rather than the resource) this is nevertheless typically used to restrict users' actions before logging in. A restricted mode is part of the
POSIX The Portable Operating System Interface (POSIX; ) is a family of standards specified by the IEEE Computer Society for maintaining compatibility between operating systems. POSIX defines application programming interfaces (APIs), along with comm ...
specification for shells, and most of the Linux/Unix shells support such a mode where several of the built-in commands are disabled and only external commands from a certain directory can be invoked. PowerShell supports restricted modes through ''session configuration files'' or session configurations. A session configuration file can define visible (available) cmdlets, aliases, functions, path providers and more.


Safe data subset

Scripts that invoke other scripts can be a security risk as they can potentially execute foreign code in the context of the user who launched the initial script. Scripts will usually be designed to exclusively include scripts from known safe locations; but in some instances, e.g. when offering the user a way to configure the environment or loading localized messages, the script may need to include other scripts/files.{{cite book , author-last1=Albing , author-first1=Carl , title=Bash cookbook , year=2007 , publisher=O'Reilly Media , location=Sebastopol, California, USA , isbn=978-0-596-52678-8 , edition=1st , author-last2=Vossen , author-first2=J. P. , author-last3=Newham , author-first3=Cameron , quote=[...] is hardly what one thinks of as a passive list of configured variables. It can run other commands (e.g., cat) and use if statements to vary its choices. It even ends by echoing a message. Be careful when you source something, as it's a wide open door into your script. One way to address this risk is for the shell to offer a safe subset of commands which can be executed by an included script.


Notes

{{Reflist, group="nb"


References

{{Reflist, refs= {{cite web , author-first=Matthias R. , author-last=Paul , title=Caldera OpenDOS 7.01/7.02 Update Alpha 3 IBMBIO.COM - README.TXT and BOOT.TXT - A short description of how OpenDOS is booted , url=http://www.uni-bonn.de/~uzs180/download/ibmbioa3.zip , date=1997-10-02 , orig-year=1997-09-29 , access-date=2009-03-29 , url-status=dead , archive-url=https://web.archive.org/web/20031004074600/http://www-student.informatik.uni-bonn.de/~frinke/ibmbioa3.zip , archive-date=2003-10-04}
Op702src.zip is an unofficial renamed distribution of the ibmbioa3.zip file -->
/ref>


External links

* {{cite book , url= https://www.linux-magazine.com/Issues/2007/78/Bash-vs.-Vista-PowerShell , date= May 2007 , title= Comparing Bash with the Windows Vista shell: Shell Games , first= Marcus , last= Nasarek , publisher= Linux Magazine , chapter= Article , chapter-url= https://www.linux-magazine.com/content/download/63303/487727/version/1/file/Bash_vs._Vista_PowerShell.pdf , url-status= live , archive-date= Oct 10, 2014 , archive-url= https://web.archive.org/web/20141010000744/http://w3.linux-magazine.com/issue/78/Bash_vs._Vista_PowerShell.pdf * {{cite web , url= https://pubs.opengroup.org/onlinepubs/9799919799/utilities/contents.html , title= Shell and Utilities , date= 2024-08-08 , edition= 2024 , issue= 8 , work= IEEE Standard for Information Technology 1003.1™-2024 – Portable Operating System Interface POSIX™.1-2024 — The Open Group Base Specifications Issue 8 , publisher= The IEEE and The Open Group {{Unix shells {{DEFAULTSORT:Comparison Of Command Shells Command shells Software comparisons, Shells