Definition

Korn-Shell (ksh)

Was ist die Korn-Shell (ksh)?

Die Korn-Shell (ksh) ist eine Befehlsshell für Betriebssysteme, die von David Korn bei Bell Labs für Unix entwickelt wurde. Eine Shell ist ein Programm zur Ausführung von Befehlen oder ein Befehlsinterpreter, der mit einem Betriebssystem kommuniziert, um Befehle oder Skripte auszuführen, die Befehle enthalten. Die Korn-Shell ist eine von vielen Arten von Befehlsshells, die für verschiedene Betriebssysteme verfügbar sind.

Die Korn-Shell, auch KornShell genannt, wurde 1983 eingeführt und enthielt eine eigene Skriptsprache. Sie vereinte viele der besten Funktionen der beiden damals am häufigsten verwendeten Shells: die C-Shell (csh), die von Bill Joy an der University of California in Berkeley entwickelt wurde, und die Bourne-Shell, die von Stephen Bourne bei Bell Labs entwickelt wurde. Die Korn-Shell war effizienter als die beiden anderen und bot eine bessere Leistung.

Die Korn-Shell ist in hohem Maße kompatibel mit der Bourne-Shell. Die Korn-Shell verwendet dasselbe Dollarzeichen ($) als Eingabeaufforderung für Benutzereingaben, und die meisten für die Bourne-Shell geschriebenen Skripte können in der Korn-Shell ausgeführt werden. Benutzer, die mit der Bourne-Shell vertraut sind, haben in der Regel wenig Probleme beim Umstieg auf die Korn-Shell. Die Korn-Shell ist außerdem einfacher zu bedienen, weshalb unerfahrene Benutzer oft die Korn-Shell der Bourne-Shell vorziehen.

die Grafik zeigt Unix-Befehle
Abbildung 1: Unix unterstützt mehrere Shells, die eine Befehlszeilen-Benutzeroberfläche für die Interaktion mit einem Betriebssystem (OS) bieten, darunter die Korn-Shell.

Geschichte und Verbesserungen der Korn-Shell

Nach ihrer Einführung im Jahr 1983 wurde die Korn-Shell 1986, dann 1988 und erneut 1993 aktualisiert. Die Version von 1993 war eine grundlegende Überarbeitung der Version von 1988. Neben der Verbesserung der Leistung und Sicherheit wurden in der Ausgabe von 1993 auch mehrere wichtige Funktionen hinzugefügt oder verbessert, darunter die folgenden:

  • Erweiterte Eingabe-/Ausgabefunktionen (I/O) und bessere Unterstützung für Arrays.
  • Verbesserte Unterstützung für den Befehlsverlauf.
  • Inline-Bearbeitung über EMACS-TC- oder vi-Funktionen.
  • Verbesserte Unterstützung für Shell-Funktionen und Aliase.
  • Verbesserte Teilzeichenfolgenfunktionen und Musterabgleich.
  • Verbesserte Debugging- und Jobsteuerungsfunktionen.
  • Größere Erweiterbarkeit.

Zu dieser Zeit war die Version von 1993 (ksh93) Eigentum von Lucent und AT&T und galt als proprietäre Software. Der Quellcode von Korn wurde jedoch schließlich unter der Eclipse Public License veröffentlicht und als Open-Source-Software zur Verfügung gestellt.

Die letzte stabile Version (93u+ 2012-08-01) ist auf GitHub verfügbar, wo sie weiterhin mit Fehlerbehebungen und Patches aktualisiert wird.

Die Versionen, die diese Korrekturen enthalten, werden als Reboot bezeichnet und mit dem Buchstaben m nach dem Pluszeichen gekennzeichnet, zum Beispiel 93u+m. Die Reboots enthalten Korrekturen und Patches von Solaris, Red Hat und OpenSUSE sowie Beiträge der Entwickler-Community. Der neueste Reboot, der diese Korrekturen enthält, ist ksh 93u+m/1.0.10.

ksh2020 und darüber hinaus

Zwischen 2017 und 2020 versuchte eine Gruppe von Entwicklern, die Korn-Shell wiederzubeleben – ein Projekt mit dem Namen ksh2020. Ihr Ziel war es, eine der Beta-Versionen (93v-) umfassend zu überarbeiten, um Fehler und Stabilitätsprobleme zu beheben. Das Projekt wurde schließlich aufgegeben.

Die Korn-Shell wird heute noch auf Unix- und Unix-ähnlichen Systemen wie Linux und macOS verwendet, obwohl viele Benutzer mittlerweile Bash und andere Befehlsshells anstelle von Korn verwenden. Beispielsweise ist Bash derzeit die Standard-Shell in vielen Linux-Systemen wie Ubuntu und Fedora, und bis 2019 war sie auch die Standard-Shell in macOS (die Standard-Shell ist jetzt zsh). Trotz dieses Trends wird die Korn-Shell weiterhin verwendet und ist die Standard-Shell auf Systemen wie IBM AIX.

Erfahren Sie mehr über Softwareentwicklung