Skip to content
LeoTM edited this page Nov 4, 2025 · 42 revisions
  • (non)login
  • (non)interactive
  • 1971 Thompson shell
  • 1975 PWB (aka Mashey) shell
  • 1978 C shell (C)
    • .login, .cshrc
  • 1979 Bourne shell (C, macros like ALGOL 68)
    • .profile
  • 1980 COMMAND.COM (x86 assembly)
  • 1981 TENEX C shell (C)
  • 1983 Korn shell (C)
    • .kshrc
  • 1988 Hamilton C shell (C)
  • 1989 Almquist shell (C)
  • 1989 rc Unix shell (Hare) πŸ‡
  • 1989 Bourne Again shell aka Bash πŸ“¦ (C) Linux, macOS (old), Windows (WSL, Git for Windows) Bash vs Bourne
    • .bash_profile, .bashrc
  • 1990 Z shell (C) macOS (new) comparisons
    • .zshenv β†’ .zprofile β†’ .zshrc β†’ .zlogin β†’ .zlogout
    • frameworks
      • Oh My Zsh (Shell) why
      • Starship (Rust)
      • Antigen (Shell, Perl)
      • Prezto
      • zplug
      • zen
      • Antidote (Shell)
  • 1993 Command Prompt aka cmd.exe (C, C++) Windows (old)
  • 1997 Debian Almquist Shell aka Dash (C)
  • 2005 Fish (Rust) 🐟
  • 2006 PowerShell (C#, PowerShell) Windows (new) Windows Terminal
  • 2019 Nu shell (Rust) ✨
  • 2025 ? create first agentic shell too late πŸ˜†
  • 2025 Flux159/agentic-shell πŸ”₯ 1yo
  • 2025 mikecvet/nl-sh wrapper πŸ”₯ 1yo
  • 2025 TODO: create new MAINTAINED agentic shell
  • 202? β“βš‘πŸ’‘
# M2 Pro, Darwin 25, macOS 26

> cat /etc/shells                   
# List of acceptable shells for chpass(1).
# Ftpd will not allow users to connect who are not using
# one of these shells.

/bin/bash
/bin/csh
/bin/dash
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh

# ---

> sh --help            
GNU bash, version 3.2.57(1)-release-(arm64-apple-darwin25)
# ...

> bash --help          
GNU bash, version 3.2.57(1)-release-(arm64-apple-darwin25)
# ...

> ls -i /bin/sh /bin/bash
1152921500312554102 /bin/bash	1152921500312554156 /bin/sh

> file -h /bin/sh
/bin/sh: Mach-O universal binary with 2 architectures: [x86_64:Mach-O 64-bit executable x86_64] [arm64e:Mach-O 64-bit executable arm64e]
/bin/sh (for architecture x86_64):	Mach-O 64-bit executable x86_64
/bin/sh (for architecture arm64e):	Mach-O 64-bit executable arm64e

> file -h /bin/bash
/bin/bash: Mach-O universal binary with 2 architectures: [x86_64:Mach-O 64-bit executable x86_64] [arm64e:Mach-O 64-bit executable arm64e]
/bin/bash (for architecture x86_64):	Mach-O 64-bit executable x86_64
/bin/bash (for architecture arm64e):	Mach-O 64-bit executable arm64e

Clone this wiki locally