Lohnt es sich, für den gelegentlichen Gebrauch auf zsh umzusteigen?[geschlossen]

StackOverflow https://stackoverflow.com/questions/43321

  •  09-06-2019
  •  | 
  •  

Frage

Die Standard-Shell in Mac OS X ist bash, was ich im Allgemeinen gerne verwende.Ich halte es einfach für selbstverständlich.Es wäre wirklich schön, wenn es automatisch vervollständigt würde mehr Zeug, und ich habe gute Dinge darüber gehört zsh diesbezüglich.Aber ich habe nicht wirklich Lust, stundenlang an Einstellungen herumzufummeln, um meine Befehlszeilennutzung ein wenig zu verbessern, da mein Leben an der Befehlszeile gar nicht so schlecht ist.

(So ​​wie ich es verstehe, bash kann auch für eine intelligentere automatische Vervollständigung konfiguriert werden.Es ist die Konfiguration, die mir nicht besonders gefällt.)

Werde zu wechseln zsh, selbst in einer kleinen Anzahl von Fällen, mein Leben einfacher machen?Oder ist es nur dann eine bessere Hülle, wenn man sich die Zeit zum Lernen nimmt? Warum es ist besser?(Beispiele wären auch schön :) )


@Rodney Amato & @Vulkanischer EiferNennen Sie jeweils zwei gute Gründe, daran festzuhalten bash und wechseln zu zsh.Sieht so aus, als müsste ich beides untersuchen!nun ja :)

Gibt es jemanden, der eine Meinung zu beiden Seiten des Arguments vertritt?

War es hilfreich?

Lösung

Für den gelegentlichen Gebrauch ist es wahrscheinlich besser, bei Bash zu bleiben und einfach die Bash-Vervollständigung zu installieren.

Die Installation ist ziemlich einfach. Besorgen Sie sich bash-completion-20060301.tar.gz von http://www.caliban.org/bash/index.shtml#completion und extrahieren Sie es mit

tar -xzvf bash-completion-20060301.tar.gz

Kopieren Sie dann die Datei bash_completion/bash_completion nach /etc mit

sudo cp bash_completion/bash_completion /etc

Dadurch werden Sie zur Eingabe Ihres Passworts aufgefordert.Sie möchten wahrscheinlich ein Verzeichnis /etc/bash_completion.d für alle zusätzlichen Vervollständigungsskripte erstellen (ich habe dort beispielsweise das Git-Vervollständigungsskript).

Sobald dies erledigt ist, besteht der letzte Schritt darin, sicherzustellen, dass die Datei .bash_profile in Ihrem Home-Verzeichnis vorhanden ist

if [ -f /etc/bash_completion ]; then
     . /etc/bash_completion 
fi

darin, um die Abschlussdatei zu laden, wenn Sie sich anmelden.

Um es zu testen, öffnen Sie einfach ein neues Terminal und versuchen Sie, cvs zu vervollständigen. Die CVS-Optionen sollten in der Liste der Vervollständigungen angezeigt werden.

Andere Tipps

Ich persönlich liebe zsh.

Im Allgemeinen werden Sie den Unterschied zwischen it und bash wahrscheinlich erst dann bemerken, wenn Sie schnell Dinge wie rekursives Globbing ausführen möchten:

  • **/*.c Zum Beispiel.

Oder verwenden Sie Suffix-Aliase, um bestimmte Programme mit unterschiedlichen Suffixen zu verknüpfen, sodass Sie sie direkt „ausführen“ können.Mit dem folgenden Alias ​​können Sie eine C-Quelldatei an der Eingabeaufforderung „ausführen“, indem Sie einfach Folgendes eingeben ./my_program.c – was genau so funktioniert, als ob Sie tippen würden vim ./my_program.c.(Äquivalent zum Doppelklick auf das Symbol einer Datei.)

  • alias -s c=vim

Oder drucken Sie die Namen der heute geänderten Dateien aus:

  • print *(e:age today now:)

Sie können wahrscheinlich all diese Dinge in Bash tun, aber meine Erfahrung mit zsh ist, dass ich es wahrscheinlich darin finden kann, wenn ich etwas tun möchte ZSH-Liebhaber.Ich finde auch das Buch 'Von Bash bis Z-Shell' sehr nützlich.

Es macht auch großen Spaß, mit der unglaublich großen Auswahl an Optionen zu spielen!

Wechseln Sie zu zsh.Sie haben Zugriff auf:

  1. zmv:Du kannst tun: zmv '(*).mp3' '$1.wma' für Tausende von Dateien.
  2. zcalc:Extrem komfortabler Rechner, besser als bc.
  3. zparseopts:Einzeiler zum Parsen beliebiger komplexer Optionen, die Ihrem Skript zugewiesen wurden.
  4. autopushd:Das können Sie immer tun popd nach cd , um in Ihr vorheriges Verzeichnis zurückzukehren.
  5. Gleitkommaunterstützung.Es wird von Zeit zu Zeit benötigt.
  6. Hashes-Unterstützung.Manchmal sind sie nur ein Schlüsselmerkmal.

Wenn Sie ZSH lediglich für eine bessere Vervollständigung verwenden möchten, ist die Konfiguration ziemlich einfach.Platzieren Sie dies in Ihrer ~/.zshrc:

autoload -U zutil      # [1]
autoload -U compinit   # [2]
autoload -U complist   # [3]
compinit

Es lohnt sich jedoch, einen Blick auf alle anderen tollen Funktionen des ZSH zu werfen.Das obige Beispiel gibt Ihnen eine ziemlich einfache Eingabeaufforderung mit guter Vervollständigung.Wenn Sie nicht mit Konfigurationen herumspielen möchten, sondern sehen möchten, was ZSH für Sie tun kann, geben Sie bei Google „zshrc“ ein und Sie erhalten einige gebrauchsfertige Konfigurationen für den Einstieg.

zsh hat eine Konsolen-GUI-Konfigurationssache.Sie können es ziemlich schnell und einfach einrichten, ohne sich mit Konfigurationsdateien herumschlagen zu müssen.Ich glaube nicht, dass Sie zum Einrichten viel Zeit benötigen werden, wahrscheinlich 10 Sekunden, wenn Sie nur die Standardeinstellungen verwenden. Probieren Sie es also einfach aus.

Staale spricht von einem assistentenähnlichen Programm (CUI), das automatisch ausgeführt wird, wenn Sie zsh zum ersten Mal ausführen.Beantworten Sie einfach einige Fragen, sehen Sie sich die Standardeinstellungen an bzw. ändern Sie sie und alles ist für Sie konfiguriert.

IBM DeveloperWorks verfügt über großartige Ressourcen zu zsh.

Ich habe keine sehr erweiterten Funktionen verwendet und bin bisher nicht auf gravierende Unterschiede gestoßen, die jemanden, der von Bash kommt, behindern könnten.

Einige Beispiele:

  • !?Musteru003CTab> wird automatisch zum letzten Befehl im Geschichts -Matching -Muster vervollständigen.Sehr hilfreich.

  • Sie können eine Eingabeaufforderung auf der Registerkarte RHS.Eine Verwendung besteht darin, eine feste Eingabeaufforderung für die Breite auf der linken Seite so dass alle Befehle gut aufeinander abgestimmt sind, während Anzeige der PWD (oder irgendetwas von variable Breite) als rechte Hand seitliche Eingabeaufforderung.

  • Sie können Eingaben aus mehreren Dateien umleiten (Sie müssen dies noch versuchen):cat < Datei1 < Datei2 < Datei3

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top