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 support
ISO 8601 support
Console redirection
Stream redirection
Configurability
Startup/shutdown scripts
Batch scripts
Logging
available as statically linked, independent single file executable
Thompson shell
UNIX
sh
1971
Template:N/A
UNIX
UNIX
Template:N/A
Template:Yes
Text-based CLI
Template:No
Template:No
Template:N/A
Template:Yes
Template:N/A
Template:N/A
Template:N/A
Template:N/A
Template:N/A
Template:N/A
Bourne shell 1977 version
7th Ed. UNIX
sh
1977
Template:Yes
7th Ed. UNIX
7th Ed. UNIX ,
Template:Proprietary
Template:Yes
Text-based CLI
Template:No
Template:No
Template:N/A
Template:Yes
Template:Yes
Template:Yes
Template:Yes
Template:Yes
Template:No
Template:Yes
Bourne shell current version
Various UNIX
sh
1977
Template:Yes
SunOS-5.x, FreeBSD (non-root user)[ 1]
SunOS-5.x
Template:Free
Template:Yes
Text-based CLI
Template:No
Template:Yes [ nb 1] Template:Better source
Template:N/A
Template:Yes
Template:Yes
Template:Yes
Template:Yes
Template:Yes
Template:Yes [ nb 2]
Template:Yes
POSIX shell[ 2]
POSIX
sh
1992[ 3]
Template:N/A
Template:N/A
POSIX
Template:N/A
Template:N/A
Text-based CLI
Template:No
Template:Yes
Template:N/A
Template:Yes
Template:Yes
Template:Yes
Unspecified (.profile given as an example)
Template:Yes
Template:Yes
Template:N/A
bash (v4)
POSIX
bash, sh
1989[ 4]
Template:Yes
GNU , Linux (default for root), macOS 10.3–10.14
GNU , Linux , Haiku , macOS 10.3–10.14
Template:Free
Template:Yes
Text-based CLI
Template:No
Template:Yes [ 5] Template:Better source
Template:Yes
Template:Yes
Template:Yes
Template:Yes
Template:Yes
Template:Yes
Template:Yes
Template:Yes
csh
POSIX
csh
1978
Template:Yes
SunOS
Template:Dunno
Template:Free
Template:Yes
Text-based CLI
Template:No
Template:No
Template:Dunno
Template:Yes
Template:Yes
Template:Yes
Template:Yes
Template:Yes
Template:Yes
Template:Yes
tcsh
POSIX
tcsh, csh
1983[ 6]
Template:Yes
FreeBSD (default for root), formerly Mac OS X
Template:Dunno
Template:Free
Template:Yes
Text-based CLI
Template:No
Template:Yes
Template:Dunno
Template:Yes
Template:Yes
Template:Yes
Template:Yes
Template:Yes
Template:Yes
Template:Yes
Hamilton C shell
Win32 , OS/2
csh
1988[ 7]
Template:Yes (OS/2 version no longer maintained)
Template:Optional
Template:Optional
Template:Proprietary
Template:No
Text-based CLI
Template:No
Template:No
Template:Yes
Template:Yes
Template:Yes
Template:Yes
Template:Yes
Template:Yes
Template:Yes
Template:Yes
Scsh
POSIX
scsh
1994
Template:Yes
Template:Dunno
Template:Dunno
Template:Free
Template:Yes
Template:Dunno
Template:Dunno
Template:Dunno
Template:Dunno
Template:Dunno
Template:Yes
Template:Dunno
Template:Dunno
Template:Dunno
Template:Dunno
Template:Yes
ksh (ksh93t+)
POSIX
ksh
1983[ 8] [ 9]
Template:Yes
AIX , HP-UX
OpenSolaris
Template:Free
Template:Yes
Text-based CLI
Template:No
Template:Yes
Template:Yes
Template:Yes
Template:Yes
Template:Yes
Template:Yes
Template:Yes
Template:Yes
Template:Yes
pdksh
POSIX
ksh, sh
1989?
Template:Yes
OpenBSD [ 10]
OpenBSD [ 10]
Template:Free
Template:Yes
Text-based CLI
Template:No
Template:No
Template:N/A
Template:Yes
Template:Yes
Template:Yes
Template:Yes
Template:Yes
Template:Yes
Template:Yes
zsh
POSIX
zsh
1990
Template:Yes
Deepin , GoboLinux , Grml , macOS 10.15+
Grml , macOS 10.15+
Template:Free
Template:Yes
Text-based CLI
Template:Yes
Template:Yes
Template:Yes
Template:Yes
Template:Yes
Template:Yes
Template:Yes
Template:Yes
Template:Yes
Template:Yes
ash
POSIX
sh
1989
Template:Yes
Minix , BusyBox based systems
NetBSD , Minix , BusyBox based systems
Template:Free
Template:Yes
Text-based CLI
Template:No
Template:Partial (for BusyBox, supported in command-line editing, but not in string handling[ 11] )
Template:N/A
Template:Yes
Template:Yes
Template:Yes
Template:Yes
Template:Yes
Template:Yes
Template:Yes
CCP
CP/M , MP/M
(CCP)
1976 (1974)
Template:No
CP/M (no login), MP/M
CP/M , MP/M
Template:Proprietary
Template:Yes (originally closed-source)
Text-based CLI
Template:No
Template:No
Template:No
Template:No
Template:No
Template:No
Template:Yes (automatic via $$$.SUB )
Template:Partial (only via external SUBMIT command to update $$$.SUB )
Template:No
Template:Yes
COMMAND.COM
DOS
COMMAND
1980
Template:No (3rd party implementations, not bound to a specific DOS vendor or version, available)
DOS , Windows 95 , 98 , SE , ME
DOS , Windows 95 , 98 , SE , ME
vendor specific, f.e. MS -EULA ,[ nb 3] or BSD /GPL (free clones)
Template:No (except for OpenDOS, DR-DOS, PTS/DOS and FreeDOS)
Text-based CLI
Template:No
Template:No
Template:No (except for DR-DOS)
Template:Yes (via COMMAND con: or CTTY con: )
Template:Yes
Template:Yes (via startup parameters and environment variables, DR-DOS also supports DIR /C /R user-default switch command)
Template:Yes (automatic \AUTOEXEC.BAT for primary shell, or explicitly via /P , /P:filename.bat or /K startup options)
Template:Yes (via CALL command or /C and /K startup options)
Template:No
Template:Yes
OS/2 CMD.EXE
OS/2
CMD
1987
Template:No
OS/2
OS/2
Template:Proprietary [ nb 4]
Template:No
Text-based CLI
Template:No
Template:No
Template:No
Template:No
Template:Yes
Template:Dunno
Template:Partial (only via /K startup option)
Template:Yes (via CALL command or /C and /K startup options)
Template:No
Template:Yes
Windows CMD.EXE [ nb 5]
Win32
CMD
1993
Template:No
Windows NT, 2000, XP, Server 2003, Vista
Windows NT, 2000, XP, Server 2003, Vista
Template:Proprietary [ nb 6]
Template:No
Text-based CLI
Template:No
Template:Partial (CHCP 65001 for UTF-8 , but program arguments are still encoded in local codepage)
Template:No
Template:No
Template:Yes
Template:Yes (via registry, startup parameters, and environment variables)
Template:Yes (automatic via registry, or explicitly via /K startup option)
Template:Yes (via CALL command or /C and /K startup options)
Template:No
Template:Yes
4DOS , NDOS
DOS , Windows 95 , 98 , SE , ME
4DOS , NDOS
1989 (1986)
Template:No
Template:Optional
Template:Optional
Template:Free
Template:Yes
Text-based CLI with TUI extensions
Template:Yes (popups, help system, %_MOUSE internal variable, INKEY /M command)
Template:No
Template:Yes
Template:Yes (via CTTY con: , except for DRAWBOX , DRAWLINE , DRAWVLINE , LIST , SCREEN , SCRPUT , SELECT , VSCRPUT commands and file / directory coloring)
Template:Yes
Template:Yes (via 4DOS.INI /NDOS.INI file, startup parameters, environment variables, SETDOS command)
Template:Yes (automatic \AUTOEXEC.BAT for primary shell and 4START.BTM /4START.BAT as well as 4EXIT.BTM /4EXIT.BAT for any shell, or explicitly via /P , /P:dir\filename.ext or /K startup options)
Template:Yes (via CALL command or /C and /K startup options)
Template:Yes
Template:Yes
4OS2
OS/2
4OS2
1992
Template:No
Template:Optional
Template:Optional
Template:Proprietary
Template:Yes
Text-based CLI
Template:No
Template:No
Template:No
Template:No
Template:Yes
Template:Yes (via 4OS2.INI file, startup parameters, environment variables, SETDOS command)
Template:Yes (automatic via 4START.CMD /4START.BTM as well as 4EXIT.CMD /4EXIT.BTM files, or explicitly via /K startup.cmd option)
Template:Yes (via CALL command or /C and /K startup options)
Template:Yes
Template:Dunno
TCC (formerly 4NT)
Win32
TCC
1993
Template:No
optional
optional
Template:Proprietary
Template:No
Text-based CLI (Take Command : GUI )
Template:Yes (console mouse, popups, help system, %_XMOUSE , %_YMOUSE internal variables, INKEY /M command)
Template:Yes
Template:Yes
Template:No
Template:Yes
Template:Yes (via registry, TCMD.INI /4NT.INI file, startup parameters, environment variables, SETDOS command)
Template:Yes (automatic via registry and TCSTART /4START as well as TCEXIT /4EXIT , or explicitly via /K startup option)
Template:Yes (via CALL command or /C and /K startup options)
Template:Yes
Template:No
VMS DCL [ 12]
OpenVMS
Automatically for login/interactive process
1977?
Template:Yes
VMS
VMS
Proprietary, bundled in VMS
Template:No
Text-based CLI
Template:Yes
Template:Yes
Template:Yes
Template:Yes
Template:Yes
Template:Yes
Template:Yes
Template:Yes
Template:Yes
Template:No
PowerShell
.NET
PowerShell
2006
Template:Yes
Windows 10, 8, Server 2008, 7, Vista, XP[ nb 7]
Windows 10, 8, Server 2008, 7
Template:Free
Template:Yes
Graphical CLI
Template:Yes
Template:Yes
Template:Yes
Template:No
Template:Yes
Template:Yes
Template:Yes
Template:Yes
Template:Yes
Template:No
rc
Plan 9 , POSIX
rc
1989
Template:Yes
Plan 9 , Version 10 Unix
Plan 9 , Version 10 Unix
Template:Free
Template:Dunno
Template:Dunno
Template:Dunno
Template:Yes
Template:Dunno
Template:Dunno
Template:Yes
Template:Dunno
Template:Dunno
Template:Dunno
Template:Dunno
Template:Yes
BeanShell
Java
Template:Dunno
2005
Template:Yes
Template:Dunno
Template:Dunno
Template:Free
Template:Dunno
Template:Dunno
Template:Dunno
Template:Yes
Template:Dunno
Template:Dunno
Template:Yes
Template:Dunno
Template:Dunno
Template:Dunno
Template:Dunno
Template:No
fish
POSIX
fish
2005[ 13]
Template:Yes
GhostBSD
Template:Dunno
Template:Free
Template:Yes
Text-based CLI
Template:Dunno
Template:Yes
Template:Dunno
Template:Dunno
Template:Yes
Template:Yes
Template:Yes
Template:Yes
Template:Yes
Template:Dunno
Ion
Redox , Linux
ion
2015[ 14]
Template:Yes
Redox
Redox
Template:Free
Template:Yes
Text-based CLI
Template:Dunno
Template:Yes
Template:Yes
Template:Dunno
Template:Yes
Template:Yes
Template:Yes
Template:Yes
Template:Yes
Template: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 support
ISO 8601 support
Console redirection
Stream redirection
Configurability
Startup/shutdown scripts
Batch scripts
Logging
available as statically linked, independent single file executable