Shells - leotm/react-native-template-new-architecture GitHub Wiki

  • (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) ✨
  • 202? ? create first agentic shell too late 😆
  • 2025 Flux159/agentic-shell 🔥
  • 2025 mikecvet/nl-sh wrapper 🔥
  • 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