← cd ~/posts
Jul 4, 2026 #shell #shells

Other Shells: fish, dash, ksh, tcsh

# discovering shells

cat /etc/shells list the valid login shells installed on the system
echo $SHELL show your login shell
echo $0 show the shell currently running
chsh -s /usr/bin/fish change your login shell

# fish — friendly interactive shell

fish ships with autosuggestions, syntax highlighting and completions out of the box — no configuration required.

set -Ux EDITOR vim universal variables persist across sessions automatically
abbr -a gc "git commit" abbreviations expand as you type, keeping history readable
funced greet edit a function interactively; funcsave persists it
fish_config configure colors and prompt in a web browser

# dash, ksh, tcsh

dash script.sh dash — minimal POSIX shell; /bin/sh on Debian/Ubuntu, much faster for scripts
ksh KornShell — POSIX shell with associative arrays and floating-point arithmetic, common on AIX/Solaris
tcsh enhanced C shell with C-like syntax; historically the BSD default

Rule of thumb: script for POSIX sh so it runs everywhere; pick any shell you like for interactive use.

← back to all posts