# brief history - 1971, thompson shell - 1973, pwb shell (mashey shell), introduces one-letter variables and pipes - 1978, `csh`, c-style scripting (broken), some interactivity, moar followed 1981 with `tcsh` (completion, interactive history) - 1979, `sh`, bourne shell, base for posix - 1983, `ksh`, korn shell, bourne w/ interactivity and some more, part of system v, commercial, also influenced posix - 1989, `ash`, almquist shell, bsd licensed `sh`, spawned as `dash`, `busybox` - 1989, `bash`, same goals as `ksh` - 1990, `zsh`, same goals as `ksh` # types ## login shells setup only needed once, f.e. run `ssh-agent`, notify other users (`write`). usual config files are `profile`, `login` and `logout`. triggered by `-l` or leading `-`. can be exitted with `logout`. ## interactive shells read `rc` files. # misc talk with term via `stty -a` clean passing of parameters from f.e. `find`. `$0` may also appear in error messages as command name. ``` sh -c 'echo $0 $1' command_name argument ```