Die Frage sagt also eigentlich schon alles. Ich arbeite mit Snow Leopard und mache viel Webentwicklung, insbesondere in Rails 3, das die Konsole stark nutzt.
Ich habe einige bemerkenswerte Blogger usw. gesehen, die Zsh als ihre Präferenz gegenüber Bash erwähnen, aber ich weiß nicht, welchen Unterschied es machen würde.
Könnte mir jemand einen guten Vergleich geben, welcher Unterschied besteht und warum man die eine oder andere Option bevorzugt?
Dies ist aus der Zsh-FAQ :
2.5: Ähnlichkeiten mit bash Die Bourne-Again-Shell, bash, ist eine weitere verbesserte Bourne-ähnliche Shell; Der offensichtlichste Der Unterschied zu zsh besteht darin, dass es nicht versucht, die Korn-Shell zu emulieren. Da beide Shells in aktiver Entwicklung sind, ist es wahrscheinlich nicht sinnvoll, zu spezifisch zu sein hier. Im Großen und Ganzen hat bash der Einhaltung von Standards (z. B. POSIX) mehr Aufmerksamkeit geschenkt länger und hat bisher die abstruseren interaktiven Funktionen (programmierbare Vervollständigung usw.), die zsh hat.
Ich habe sie beide verwendet, bevorzuge aber heutzutage Bash, weil die Maschinen, auf denen ich arbeite, standardmäßig konsistent bashen. Der Kommentar zur Einhaltung von Standards ist mir wichtig, da dies Konsistenz zwischen den Betriebssystemen bedeutet.
Zsh hat nette Fähigkeiten zur automatischen Vervollständigung, aber ich fand immer wieder Fälle, in denen es nicht wusste, was ich wollte. Das war vor einigen Jahren, also könnte es sich seitdem verbessert haben.
Ich habe festgestellt, dass das Aktivieren von "vi-mode" ( set -o vi
) in Bash eine viel schönere Befehlszeilenumgebung als normalerweise macht, also mache ich das sofort in meiner .bashrc
Datei.
Beim Schreiben von Shell-Skripten programmiere ich weder in bash noch in zsh – ich programmiere mit sh ( /bin/sh
), da dies der kleinste gemeinsame Nenner ist und Kompatibilitätsprobleme am unwahrscheinlichsten sind. Das ist nur eine alte Angewohnheit, die mir gut getan hat.
locate */vi
. Bei Verwendung von zsh ist das Ergebnis für denselben Befehl zsh: no matches found: */vi
. Damit die Suche in zsh funktioniert, muss die Suchanfrage in Anführungszeichen wie locate "*/vi"
.
ghoppe
Coeur
amar