KornShell

Kornshell
OpenBSD ksh Interaction.png
Interagieren mit OpenBSDStandardschale, pdksh
Originalautor (en) David Korn
Erstveröffentlichung 1983; Vor 39 Jahren[1][2]
Endgültige Veröffentlichung
93u+ / 1. August 2012; Vor 9 Jahren
Vorschau -Version
93V- / 24. Dezember 2014; vor 7 Jahren
Repository Github.com/att/ast
Geschrieben in C
Betriebssystem Unix und Unix-artig (z.B. Linux und Mac OS; funktioniert auch in Windows 10[3])
Verfügbar in Englisch
Typ Unix Shell
Lizenz
Webseite www.Kornshell.org
KSH2020
Entwickler (en) Kurtis Rader, Siteshwar Vashisht, Gemeinschaft
Endgültige Veröffentlichung
2020 / 10. Oktober 2019; vor 2 Jahren
Repository Github.com/KSH2020/ksh
Vorgänger 93V-
KSH93U+m
Entwickler (en) Martijn Dekker, Gemeinschaft
Repository Github.com/KSH93/ksh
Vorgänger 93U+
Lizenz Eclipse Public Lizenz

Kornshell (ksh) ist ein Unix Shell das wurde von entwickelt von David Korn bei Bell Labs in den frühen 1980er Jahren und angekündigt bei Usenix Am 14. Juli 1983.[1][2] Die anfängliche Entwicklung basierte auf Bourne Shell Quellcode.[7] Andere frühe Mitwirkende waren die Bell Labs -Entwickler Mike Veach und Pat Sullivan, die das schrieb EMACs und vi-Stil -Zeilenbearbeitungsmodi -Code.[8] Kornshell ist mit der Bourne Shell rückwärtskompatibel und enthält viele Merkmale der C Shell, inspiriert von den Anfragen von Bell Labs -Benutzern.

Kornshell, d.h. KSH2020,[9] Eine "große Veröffentlichung aus mehreren Gründen"[10] (wie die Entfernung von Ebcdic Unterstützung, fallengelassene Unterstützung für binäre Plugins, die für geschrieben wurden KSH93U+ und die Entfernung einiger gebrochener Mathematikfunktionen), wurde von AT & T veröffentlicht, wurde jedoch nie von ihnen aufrechterhalten oder unterstützt (nicht einmal am ersten Veröffentlichungsdatum).

Merkmale

Kornshell entspricht Pox.2, Shell and Utilities, Command Interpreter (IEEE STD 1003.2-1992.) Wichtige Unterschiede zwischen Kornshell und der traditionellen Bourne Shell umfassen:

  • Jobkontrolle, Kommandoaliasing, und Befehlsgeschichte Entworfen nach dem entsprechenden C Shell Merkmale; Die Arbeitskontrolle wurde 1989 in die Bourne Shell hinzugefügt[11]
  • eine Auswahl von drei Befehlszeilenbearbeitungsstilen basierend auf vi, EMACs, und Gosling Emacs
  • assoziative Arrays und eingebaut schwimmende Punktarithmetik Operationen (nur in der verfügbar KSH93 Version von Kornshell)
  • Dynamische Suche nach Funktionen
  • Mathematische Funktionen
  • Prozessersubstitution und Prozessumleitung
  • C-sprachliche Ausdrücke
  • verstärkte expressionsorientierte zum und während Schleifen
  • Dynamische Erweiterbarkeit von (dynamisch geladenen) integrierten Befehlen (seitdem KSH93)
  • Referenzvariablen
  • Hierarchisch verschachtelte Variablen
  • Variablen können Mitgliedsfunktionen zugeordnet sein
  • Objektorientierte Programmierung (seit KSH93T))
    • Variablen können Objekte mit Mitgliedsvariablen und Mitgliedsmethoden sein
    • Objektmethoden werden mit dem folgenden (nach einem Punktzeichen) befolgten Objektvariablennamen aufgerufen
    • Spezielle Objektmethoden werden aufgerufen: Objektinitialisierung oder Zuordnung, Objektabgabe ( ungehindert)
    • Zusammensetzung und Aggregation ist sowie eine Form des Vererbens verfügbar

Geschichte

Korn Shell rennt weiter Windows -Dienste für UNIX

Kornshell war ursprünglich proprietäre Software. Im Jahr 2000 wurde der Quellcode unter einer Lizenz veröffentlicht, die speziell für AT & T ist, aber seit der KSH93Q Veröffentlichung Anfang 2005 wurde es unter dem lizenziert Eclipse Public Lizenz.[4] Kornshell ist als Teil der Open -Source -Software -Sammlung der AT & T Software Technology (AST) erhältlich. Da Kornshell ursprünglich nur über eine proprietäre Lizenz von AT & T erhältlich war, wurden eine Reihe von freien und Open -Source -Alternativen erstellt. Diese beinhalten pdksh, Mksh, verprügeln, und ZSH.

Die Funktionalität des ursprünglichen Kornshell, KSH88, wurde als Grundlage für den Standard verwendet Pox.2, Shell and Utilities, Befehlsinterpreter (IEEE STD 1003.2-1992.)

Einige Anbieter versenden immer noch ihre eigenen Versionen des Älteren KSH88 Variante, manchmal mit Erweiterungen. KSH93 wird eingehalten GitHub.[12]

Als "Desktop Kornshell" (dtksh), KSH93 ist als Teil der verteilt Gemeinsame Desktop -Umgebung.[13] Diese Version bietet auch Zuordnungen auf Shell-Ebene für Motiv Widgets. Es war als Konkurrent für Tcl/Tk.[14]

Der ursprüngliche Kornshell, KSH88, wurde die Standardschale auf AIX in Version 4,[15][16] wobei KSH93 getrennt verfügbar ist.[17]

Unixware 7 beinhaltet beides KSH88 und KSH93. Die Standard -Korn -Shell ist KSH93, was geliefert wird als /usr/bin/kshund die ältere Version ist verfügbar als /usr/bin/ksh88.[18] Unixware enthält auch dtksh Wenn CDE ist installiert.

Das KSH93 Die Verteilung wurde einem weniger stabilen Schicksal unterzogen, nachdem die Autoren AT & T um 2012 in einer stabilen Version verlassen hatten KSH93U+. Die Hauptautoren arbeiteten weiter an einem KSH93V- Beta -Zweigstelle bis 2014. Diese Arbeit wurde schließlich hauptsächlich von erobert roter Hut im Jahr 2017 (aufgrund von Kundenanfragen) und führte zu einer eventuellen Erstveröffentlichung von KSH2020[19] im Herbst 2019. Diese erste Veröffentlichung (obwohl die Behebung mehrerer früherer Stabilitätsprobleme) einige geringfügige Bruch- und Kompatibilitätsprobleme einführte.[20] Im März 2020 beschloss AT & T, die Veränderungen der Community zurückzusetzen, sie in einer Niederlassung zu verstauen und neu zu starten KSH93U+, da die Änderungen zu breit und zu KSH-fokussiert waren, um das Unternehmen in ein Projekt im Wartungsmodus zu übernehmen.[21][22] Die Bugfix -Entwicklung setzt die fort KSH93U+m Zweig, basierend auf der letzten stabilen AT & T -Version (KSH93U+ 2012-08-01).[23]

Hauptbeiträge zur Hauptsoftware -Filiale

Für die Zwecke der folgenden Listen ist die Hauptsoftware -Niederlassung von KSH als ursprüngliches Programm aus Juli 1983 definiert, bis hin zur Veröffentlichung von KSH2020 Ende 2019. Die fortgesetzte Entwicklung von Follow-On-Versionen (Zweigen) von KSH haben sich ab 2020 in verschiedene Gruppen aufgeteilt und werden unten nicht ausgearbeitet.

Primäre individuelle Mitwirkende

Das Folgende ist in einer ungefähr aufsteigenden chronologischen Reihenfolge ihrer Beiträge aufgeführt:

  • David G. Korn (AT & T Bell Laboratories, AT & T Laboratories und Google; und Creator)
  • Glenn S. Fowler (AT & T Bell Laboratories, AT & T Laboratories)
  • Kiem-Phong VO (AT & T Bell Laboratories, AT & T Laboratories)
  • Adam Edgar (AT & T Bell Laboratories)
  • Michael T. Veach (AT & T Bell Laboratories)
  • Patrick D. Sullivan (AT & T Bell Laboratories)
  • Matthijs N. Melchior (AT & T Network Systems International)
  • Karsten-Fleischer (Omnium Software Engineering)
  • Boyer-Moore
  • Siteshwar Vashisht (Red Hat)
  • Kurtis Raider

Integrationsberater

  • Roland Mainz

Primär -Unternehmens -Mitwirkende

Das Folgende ist in einer ungefähr aufsteigenden chronologischen Reihenfolge ihrer Beiträge aufgeführt:

Unternehmensressourcen gespendet

Neben den wichtigsten Hauptunternehmen (oben aufgeführt) haben einige Unternehmen kostenlose Ressourcen zur Entwicklung von KSH beigetragen. Diese sind unten aufgeführt (alphabetisch bestellt):

Varianten

Es gibt einige Gabeln und Klone von Kornshell:

  • dtksh- Eine Gabel von KSH93 eingeschlossen als Teil von CDE.
  • TKSH- Eine Gabel von KSH93 Das bietet Zugang zum Zugriff auf die Tk Widget Toolkit.
  • Oksh- Ein Hafen von OpenBSD's Variante von Kornshell, die maximal tragbar sein soll[24] über Betriebssysteme hinweg. Es wurde als Standardschale in Deli Linux 7.2 verwendet.
  • Loksh- a Linux Port von OpenBSD's Variante von Kornshell mit minimalen Änderungen.[25]
  • Mksh- a frei Implementierung der Kornshell -Sprache, die von OpenBSD gegabelt wurde pdksh. Es wurde ursprünglich für entwickelt für Miros BSD und ist unter lizenziert unter zulässt (wenn auch nicht öffentlich zugänglich) Begriffe; Insbesondere die Miros -Lizenz.[6] Zusätzlich zu seiner Verwendung bei BSD hat diese Variante ersetzt pdksh auf Debian,[26] und ist die Standardschale auf Android.
  • SKSH- ein Amigaos Variante, die mehrere amigaspezifische Funktionen liefert, wie z. Arexx Interoperabilität.[27] In dieser Tradition Morphos Verwendet pdksh in seinem SDK.
  • Mks Inc.Mks Korn Shell - Eine proprietäre Umsetzung der Kornshell -Sprache von Microsoft Windows Services für UNIX (SFU) bis Version 2.0; Laut David Korn war die MKS Korn Shell 1998 nicht vollständig mit Kornshell kompatibel.[28][29] In SFU Version 3.0 Microsoft ersetzte die MKS Korn Shell durch eine neue posix.2-konforme Hülle als Teil von Interix.[30]
  • Kornshell ist in enthalten DU GEWINNST, ein Unix -Kompatibilitätspaket von David Korn.[31]

Siehe auch

Verweise

  1. ^ a b Ron Gomes (9. Juni 1983). "Toronto Usenix Konferenzplan (vorläufig)". Newsgroup:net.usenix. Abgerufen 29. Dezember, 2010.
  2. ^ a b Guy Harris (10. Oktober 1983). "CSH -Frage". Newsgroup:net.flame. Abgerufen 29. Dezember, 2010.
  3. ^ "Korn -Shell -Launcher für Windows Subsystem für Linux« Musings ". blog.fpmurphy.com. Abgerufen 2021-01-29.
  4. ^ a b "Archivierte Kopie". Archiviert von das Original Am 2018-11-14. Abgerufen 2018-12-10.{{}}: CS1 Wartung: Archiviertes Kopie als Titel (Link)
  5. ^ a b "Mirbs Korn Shell". Mirbsd.org. Abgerufen 10. Dezember 2018.
  6. ^ Korn, David G. (26. Oktober 1994), "KSH - Eine erweiterbare Sprache auf hoher Ebene", Proceedings of the Usenix 1994 Sehr hohe Sprachen Symposium, Usenix Association, abgerufen 5. Februar, 2015, Anstatt eine neue Skriptsprache zu erfinden, haben wir ein Formulareintragssystem erstellt, indem wir die Bourne-Shell geändert haben und nach Bedarf integrierte Befehle hinzugefügt haben.
  7. ^ Bolsky, Morris I.; Korn, David G. (1989). "Anerkennung". Die Kornshell -Befehls- und Programmiersprache. Englewood Cliffs, NJ: Prentice Hall. S. xii. ISBN 0-13-516972-0.
  8. ^ "2020.0.0: Stabile Veröffentlichung von KSH-2020.0.0". GitHub. Abgerufen 2021-01-29. Hinweis: KSH2020 wird nicht gewartet oder unterstützt
  9. ^ "KSH 2020.0.0 Changelog". GitHub. 2021-01-29.
  10. ^ "Traditionelle Bourne Shell Familie / Geschichte und Entwicklung". In-ulm.de. Abgerufen 10. Dezember 2018.
  11. ^ "Dies ist die AT & T -Softwaretechnologie AST -Software -Download -Site von AT & T Research. Die AT & T AST OpenSource -Softwaresammlung bietet eine Übersicht und eine praktische wiederverwendbare Unix -Software." Github.com. 10. Dezember 2018. Abgerufen 10. Dezember 2018.
  12. ^ Bill Rosenblatt; Arnold Robbins (2002). Lernen der Korn -Hülle (2 ed.). O'Reilly Media, Inc. S. viii - IX. ISBN 978-0-596-00195-7.
  13. ^ J. Stephen Pendergrast (1995). Desktop Kornshell Grafische Programmierung. Addison-Wesley. p. 359. ISBN 978-0-201-63375-7.
  14. ^ Casey Cannon; Scott Trent; Carolyn Jones (1999). Einfach AIX 4.3. Prentice Hall PTR. p. 21. ISBN 978-0-13-021344-0.
  15. ^ "IBM Knowledge Center". Ibm.com. Abgerufen 10. Dezember 2018.
  16. ^ "IBM Knowledge Center". Ibm.com. Abgerufen 10. Dezember 2018.
  17. ^ "UNIX95 Konformität". Uw714doc.sco.com. Abgerufen 10. Dezember 2018.
  18. ^ "KSH2020". GitHub. 26. Februar 2021.
  19. ^ "KSH2020 Changelog". GitHub. 29. Mai 2020.
  20. ^ "Rückspulen Sie dieses Repo zurück und ermutigen Sie die Community · Ausgabe #1466 · ATT/AST". GitHub.
  21. ^ "Segfault mit erweiterten Globs · #1464 · ATT/AST". GitHub.
  22. ^ "Ksh 93u+m". GitHub. 17. November 2021.
  23. ^ "Oksh bei Github". GitHub. 1. August 2020.
  24. ^ "Loksh bei Github". GitHub. 15. Oktober 2021.
  25. ^ "Archivierte Kopie". Archiviert von das Original Am 2014-07-28. Abgerufen 2014-07-28.{{}}: CS1 Wartung: Archiviertes Kopie als Titel (Link)
  26. ^ "Aminet - Util/Shell/sksh21.lzh".
  27. ^ "David Korn erzählt es allen". Slashdot. Abgerufen 2009-10-22.
  28. ^ "Jerry Feldman - Teilnehmer von Usenix NT/Lisa NT". Lists.blu.org. Abgerufen 2009-10-22.
  29. ^ "Windows Services für UNIX Version 3.0". Technet.microsoft.com. Abgerufen 2009-10-22.
  30. ^ Anatole Olczak (2001). Die Korn Shell: UNIX- und Linux -Programmierhandbuch. Addison-Wesley Professional. p. 4. ISBN 978-0-201-67523-8.

Weitere Lektüre

Externe Links