Gibt es von den wichtigsten Unix-Shells (bash, ksh, tcsh, zsh, andere?) Zwingende Gründe, sie übereinander zu verwenden?
- Welches ist das interaktivste / befehlszeilenfreundlichste?
- Welches ist am förderlichsten / intuitivsten für das Schreiben von Skripten?
- Gibt es wichtige integrierte Funktionen, die eine Shell bietet, die andere nicht bieten?
- Ist eine dieser Schalen wirklich gut für eine Art von Funktion, aber nicht für eine andere? Oder sind sie alle ziemlich rund / flexibel?
- Ist es nur eine Frage der persönlichen Präferenz?
Ich kann dieses Community-Wiki erstellen, wenn jemand es vorzieht.
Fisch ist eine neue Schale, die vielleicht interessanter ist als die anderen, nicht weil sie notwendigerweise mehr Funktionen hat, sondern weil sie standardmäßig einfach funktionieren und weil Fisch nach Benutzerfreundlichkeit strebt.
Ein paar Screenshots ( 1 , 2 , 3 , 4 ) reichen aus, um die allgemeine Vorstellung zu vermitteln.
Fisch ist jetzt die Standard-Shell auf meinem Mac bei der Arbeit. Stelle dir das vor.
quelle
Wenn Sie eine andere Shell als
sh
/ lernen möchtenbash
, können Sie auch einfach mit gehenzsh
. Ich glaube nicht, dass jemand ernsthaft bestreitet, dass es die leistungsstärkste und funktionsreichste der alternativen Muscheln ist. ob es nur aufgebläht ist, steht natürlich noch zur Debatte.Ich habe gute Dinge gehört
fish
, aber nie die Mühe gemacht, mich mit ihnen zu beschäftigen.Die Admins, die ich kenne, betrachten
csh
undtcsh
als Greuel, die um jeden Preis vermieden werden sollten, und ich stimme ihnen zu, obwohl ich nie gezwungen war, mich durch eine der beiden Hüllen zu stecken.quelle
Ich würde empfehlen, bash gut zu kennen, da es eines der häufigsten ist (im Allgemeinen die Linux-Standardeinstellung). Ich persönlich liebe zsh als meine interaktive Shell. Es hat großartige Vervollständigungsfunktionen. Sie können beispielsweise eine Liste von Hosts festlegen. Wenn Sie beispielsweise ssh Ser [tab] ausführen, wird versucht, einen dieser Hosts automatisch zu vervollständigen. Es hat auch rekursives Globing. Wenn Sie also alle JPEG-Dateien im aktuellen und Unterverzeichnis finden möchten, können Sie sie verwenden
ls -ld **/*.jpg
. Es gibt viele lustige Funktionen mit zsh (Suche nach .zshrc-Dateien von Personen), und Sie können es auf "bash-kompatibel" einstellen, so dass es einfach ist, zwischen den beiden zu wechseln. Wenn Sie dies mit GNU Screen kombinieren, wird die Arbeit mit der Befehlszeile möglicherweise zu einem Vergnügen.quelle
Vergessen Sie nicht Ihre andere Frage Häufigste Unix / Linux-Shell - die beliebteste Shell ist wahrscheinlich aus einem bestimmten Grund am beliebtesten ;-)
Für das, was es wert ist, schalten die meisten Leute nicht häufig zwischen Muscheln ab, so dass es schwierig sein wird, einen umfassenden Vergleich der verschiedenen Optionen zu erhalten. Es ist wahrscheinlicher, dass Sie verschiedene Menschen sehen, die sich für die Tugenden ihrer Lieblingsschalen einsetzen. Nach dem Wenigen, das ich über verschiedene Shells gehört habe, bieten sie alle dieselben grundlegenden Funktionen (wie E / A-Umleitung, Befehlsverlauf usw.), sodass persönliche Vorlieben wahrscheinlich eine große Komponente darstellen.
quelle
Ein zwingender Grund für die Verwendung von ZSH, der nicht erwähnt wurde, ist der vi-Modus und der emacs-Modus .
Für diejenigen, die es lieben, ihr vi-Muskelgedächtnis in der Schale zu nutzen, ist dies eine Killer-Funktion.
Und für diejenigen, die Emacs bevorzugen, können Sie auch diese Tastenkombinationen verwenden, aber echte Emacs-Gläubige würden wahrscheinlich sagen, dass Emacs ihre Lieblingsschale ist.
;-);
quelle
Die Präferenz für den täglichen Gebrauch ist wirklich eine Mischung aus persönlichem Geschmack. Wenn ich jedoch Skripte schreibe, versuche ich, aus Gründen der Portabilität posix-konform zu sein.
quelle
Genau wie Heads Up: Ubuntu setzt standardmäßig "sh" auf "dash", was in der Vergangenheit zu einigen Problemen mit der POSIX-Kompatibilität führte. Anscheinend unterscheiden sich die Echo-Befehle geringfügig.
quelle