Früher, als AT & T UNIX erfand, gab es Bourne Shell, geschrieben von Steve Bourne. Es war ziemlich einfach und es fehlten viele Tools, die wir heutzutage für selbstverständlich halten.
AT & T befand sich nicht wirklich im UNIX-Geschäft, daher übernahm Berkelely zu diesem Zeitpunkt etwas das grundlegende Betriebssystem und nahm einige Änderungen an BSD UNIX vor. Unter vielen Änderungen befand sich eine neue Shell mit dem Namen csh, die viele Verbesserungen gegenüber sh aufwies, einschließlich einer besseren interaktiven Verwendung der Auftragssteuerung und so weiter. Leider entschieden sie, dass die sh-Programmiersyntax nicht funktioniert und erstellten ihre eigenen, (etwas schlecht) kopierten C-Codierungsstile. (Ein klassisches Rant ist http://www.faqs.org/faqs/unix-faq/shell/csh-whynot/ ) Nun gab es also zwei Syntaxen.
Später haben sie CSH verbessert, indem sie die Tab-Vervollständigung und einige andere Dinge hinzugefügt haben. Dies wurde zu tcsh, und wenn Sie CSH verwenden, ist dies wahrscheinlich derjenige, den Sie verwenden.
AT & T entschied, dass es nicht vollständig aus dem UNIX-Geschäft heraus war, und sie haben es auch aufpoliert. David Korn (netter Kerl) hat die Korn-Shell erstellt. Basierend auf der Idee, die Bourne-Shell-Syntax zu erweitern, wurden sowohl für Programmierer als auch für die interaktive Verwendung viele Dinge hinzugefügt. Es gibt tatsächlich einige Versionen, und Sie sehen möglicherweise selten Dinge wie ksh88 und ksh93, die die Varianten bezeichnen.
Dann kamen FSF und das GNU OS. Sie wollten ihr eigenes UNIX-kompatibles Betriebssystem namens Hurd erstellen und wollten eine bessere Shell dafür. Sie riefen nach Bourne Again SHell. Ungefähr zu dieser Zeit kamen POSIX-Regeln hinzu, und sie wollten die POSIX-Shell erstellen. Sie sahen sich um, übernahmen die Syntax der Bourne-Shell und die Verbesserungen der Korn-Shell und stahlen und erweiterten die interaktiven Funktionen von tcsh. Es wurde zur De-facto-Shell unter Linux, ist also weit verbreitet.
Es gibt auch die zsh, die als "ultimative" Shell geschrieben wurde. Es ist auch in der Linux-Welt sehr verbreitet. Es hat die Bash verlängert (und ein bisschen gekreuzt, einige neue Dinge gingen zurück auf die Bash).
Wenn ich eine Muschel auswählen würde, würde ich bash oder zsh auswählen. Bash ist möglicherweise an ein paar Stellen mehr als zsh. zsh ist mächtiger, aber bash hat mir gut getan. Real / bin / sh Die Bourne-Shell gibt es nur aus historischen Gründen. bash hat so ziemlich alles, was ksh zu bieten hat und noch viel mehr. Die Syntax ist sauberer als die von csh oder tcsh und bietet bessere Funktionen als beide.
Das Konvertieren eines Skripts hängt davon ab, von was zu was. Der Bourne-Shell-Stil (sh, ksh, bash, zsh) zum oder vom csh-Stil (csh, tcsh) ist schwierig. Das Wechseln von Alt zu Neu (/ bin / sh => bash, / bin / ksh => zsh) ist einfacher als auf die andere Weise.