Ich denke darüber nach, von bash nach zsh zu wechseln, da ich oft auf Posts stoße, in denen zsh gelobt wird. Ich bin ein erfahrener Kommandozeilenbenutzer und gehe davon aus, dass die Grundlagen ziemlich gleich sind. Deshalb suche ich nach Ratschlägen, um die Vorteile des Bewegens zu nutzen, und nach Hinweisen, die ich beachten muss.
Bitte geben Sie nur einen Rat pro Antwort. Ich bin auf der Suche nach mundgerechten Stücken, in denen ich in regelmäßigen Abständen zusätzliche Informationen in meine Shell-Nutzung integrieren kann, anstatt zu versuchen, alles auf einmal zu lernen.
bash
command-line
zsh
Hamish Downer
quelle
quelle
source /etc/zsh_command_not_found
Sie einfach zu Ihrem.zshrc
.Antworten:
Wie Sie sagen,
zsh
ist in vielerlei Hinsicht ähnlichbash
. Es hat einige Funktionen, die Sie nicht finden werdenbash
, und es kann auf mächtige Weise erweitert werden. Stellen Sie sich Bewegung nicht als eine Art Revolution vor, sondern als eine Reihe von Evolutionsschritten, die Sie bei Ihrer täglichen Arbeit unterstützen. Hier sind einige Hinweise von mir.zshrc
. Obwohl Sie sagen, Sie bevorzugen einzelne Ratschläge, ist dieser Beitrag eine lange Liste. Trotzdem ist es eine gute Idee, die Punkte einzeln durchzugehen. Fügen Sie einfach die interessanten Teile hinzu~/.zshrc
und laden Sie mitsource ~/.zshrc
. Ein letzter Tipp: die Tastenanschläge von lernenzsh
‚s Standard (‚Emacs‘) Tastaturkürzel:^A ^E ^W Alt-F Alt-B Alt-P ^L ^R
. Sie könnenAlt
durch zwei separate Tastenanschläge ersetzen :Alt-P
entsprichtESC
P
.Auf diese Weise erhalten Sie eine umfassendere Registerkartenergänzung.
Tab Vervollständigung von beiden Enden.
Bei der Eingabe der Tabulatoren sollte die Groß- und Kleinschreibung nicht berücksichtigt werden.
Besserer Abschluss für killall.
Ändert die Definition von "Wort", zB mit ^ W.
Farben für ls.
Abkürzungen für ls.
Eine Geschichte für alle offenen Muscheln; Speichern Sie 10.000 Einträge. Dies macht dies zu einer nützlichen Speicherhilfe, um die Befehle zu finden, die Sie zuletzt für
./configure
usw. verwendet haben. Verwenden Sie Alt-P (Suchbefehl, der so beginnt) und ^ R (Suche im Verlauf) großzügig.Aktiviert alle Arten von erweiterten Globen, wie z. B. ls ** / *. Txt (alle Textdateien suchen)
ls -d *(D)
(alle Dateien anzeigen, einschließlich der Dateien, die mit "." Beginnen ). Weitereman zshexpn
Informationen finden Sie im Abschnitt "FILENAME GENERATION".Dies ist nützlich, um sich Befehle in Ihrem Verlauf zu merken, ohne sie auszuführen.
Geben Sie ".." anstelle von "cd ..", "/ usr / include" anstelle von "cd / usr / include" ein.
Nette Aufforderung.
Zeigt die CPU-Auslastungsstatistik für Befehle an, die länger als 10 Sekunden dauern
Einige Befehle, die Sie häufig in Ubuntu verwenden.
Listet Pakete nach ihrer Größe sortiert auf. Dies ist hilfreich, wenn Sie entscheiden, welche Pakete Speicherplatz beanspruchen.
quelle
Ich würde das Buch From bash to Z Shell empfehlen . Es enthält alle Ratschläge, die Sie zum Wechseln Ihrer Shell benötigen. Es erklärt die Unterschiede beider Schalen und macht es einem neuen Zsher leicht.
quelle
Hier ist meine .zshrc und das ist das Wichtigste! zsh hat viele Möglichkeiten, die Sie nutzen können. Schauen Sie sich einige Beispiele im Internet an oder lesen Sie die Dokumentation auf der Zsh-Homepage .
Meine .zshrc enthält keine wirklich coolen Dinge außer einem Zeitstempel auf der rechten Seite der Befehlszeile.
Übrigens, denken Sie daran, hier einige Beispiele für Tab-Compleation zu finden:
wird so etwas zeigen:
Und wenn Sie passwortlose SSH-Schlüssel oder SSH-Agenten verwenden, ist es möglicherweise nützlich, entfernte Dateien zu tab-vervollständigen:
Nachdem Sie die Liste erhalten haben, können Sie die Tabulatortaste mehrmals drücken, um durch die verschiedenen Möglichkeiten zu blättern.
Aber seien Sie gewarnt, diese Shell wird Sie faul machen und Ihnen das Gefühl geben, dass eine Standard-Shell dumm und nervig ist!
quelle
Einige besonders nützliche erweiterte Globs:
1-
rmdir *(/^F)
- Löschen Sie alle nicht leeren Verzeichnisse unter dem aktuellen Verzeichnis2-
grep traceback /srv/log/**/*(.m-2)
- Suchen Sie nach diesem regulären Ausdruck in Dateien, die in den letzten zwei Tagen geändert wurden3-
chmod g+w **/*(U^I)
- Alle Dateien, deren Eigentümer ich bin und die nicht von einer Gruppe beschreibbar sind, müssen von einer Gruppe beschreibbar seinJa, natürlich können Sie dies mit schreiben,
find
aber dies ist einfacher abzusausen. Es hat zwei Nachteile, um ehrlich zu sein, beide, weil sie alle auf die Befehlszeile erweitert wurden: Wenn sie mit vielen tausend Dateien übereinstimmt, wird die Befehlszeile zu lang und dies schlägt fehl, und zweitens werden alle Dateien gefunden bevor die Datei gestartet wird.(Du wirst brauchen,
setopt extendedglob
wenn das noch nicht so ist)quelle
Ich weiß nicht so viel über Bash, also kann ich nicht mithalten. Einige Schnipsel aus meiner zsh-Konfigurationsdatei.
Einige Konfig
Git in der Eingabeaufforderung
Bei einigen Tastenkombinationen fügen Sie am Anfang der Zeile Text ein.
Die Funktionen speichere ich dann in ~ / .zsh / functions
Die git_info_for_prompt
Einige Github-Optionen
quelle
Ich bin auf der gleichen Reise :)
Bisher habe ich festgestellt, dass das Ding eine gute Konfigurationsdatei (.zshrc) haben soll.
Nehmen Sie dieses Beispiel http://matt.blissett.me.uk/linux/zsh/zshrc , schauen Sie sich die Kommentare an und hacken Sie sich um. Stackoverflow und Severphault sowie gute Suchmöglichkeiten.
Ich muss noch in http://dotfiles.org/.zshrc eintauchen , aber ich habe nicht so viel Zeit zu verlieren :)
quelle
Erfahren Sie mehr über die erweiterten Globbing- und rekursiven Globs in zsh.
Erfahren Sie etwas über zstyle und wie Sie mithilfe verschiedener Dinge (insbesondere der Fertigstellung) die Konfiguration mit zstyle anpassen können.
Schauen Sie sich die assoziativen Arrays an. Auch die Standard-Arrays (Vorsicht vor den Unterschieden zu Bash, zum Besseren!)
Wenn Sie reguläre Ausdrücke verwenden,
=~
prüfen Sie (welche Bash auch hat) und berücksichtigen Sie:setopt rematch_pcre
Vermeiden Sie es, Skripte zu schreiben, die mehr als nur ein wenig von zshs Magie abhängen, da zsh zwar fantastisch zu verwenden ist, aber dazu neigen kann, nur zu schreiben. Wenn Sie zu viel verwenden, überlegen Sie, wann Sie zu einer Sprache wie Python wechseln sollten.
Zsh ist verführerisch. Es ist die dunkle Seite. Herzlich willkommen.
quelle
Großer Vorteil - Hervorragende Registerkartenvervollständigung mit vorgefertigten Vervollständigungsskripten für viele Befehle. Hier ist ein Beispiel für die Ausgabe von
apt-get<TAB>
:quelle
Ich habe ein paar Vorträge gehalten und mehrere Leute zu zsh konvertiert. Ich behalte ein Github-Repo meiner (was sind die Vorteile) Notizen zusammen mit einem Starter und einer Kopie meiner eigenen zsh-Konfiguration in Github hier.
http://github.com/mitechie/zshrc
quelle
Eine weitere großartige Ressource ist die zsh lovers Seite (kommt von der grml zsh Seite ).
quelle