ksh (Korn-Shell) ist eine Unix-Shell von David Korn bei den AT&T Bell Laboratories, vorgestellt 1983. Sie vereint die Stärken der Bourne-Shell mit Komfort-Features der C-Shell und ist weitgehend POSIX-kompatibel. Die wichtigste Variante ist ksh93, die bis etwa 2012 von Korn und Glenn Fowler weiterentwickelt wurde.

Erste Schritte

ksh -c 'print "Hallo Welt"'
history
alias ll='ls -l'
typeset -i zahl=5

Kernkonzepte

  • print: Ausgabe (Alternative zu echo)
  • typeset: Variablen und Attribute setzen (z. B. typeset -i für Integer-Arithmetik)
  • [[ ]]: erweiterte Bedingungen mit Mustergleich
  • (( )): arithmetische Ausdrücke, z. B. (( sum = a + b ))
  • select: interaktive Auswahlmenüs in Skripten
  • function: Funktionen definieren, whence: Befehlspfad ermitteln
  • Coprozesse: |& für bidirektionale Kommunikation mit Hintergrundprozessen

Kommandozeilen-Editing

ksh bringt von Haus aus bearbeitbare History mit — im vi- oder emacs-Modus (set -o vi bzw. set -o emacs). Das war Mitte der 1980er Jahre ein Alleinstellungsmerkmal.

Praxis

ksh war lange die Standard-Login-Shell auf AIX und Solaris und ist bis heute POSIX-konforme Wahl für robuste Administrations-Skripte. Wer eine modernere, komfortablere interaktive Shell sucht, findet sie in der Bash oder Zsh. Die Verwandtschaft zeigt sich auch bei csh und tcsh — sie stammen aus derselben Shell-Epoche.