75 Zsh-Befehle, Plugins, Aliase und Tools

Mai 9, 2021
admin

Ich verbringe einen großen Teil meines Tages im Terminal, und meine bevorzugte Shell ist Zsh – eine hochgradig anpassbare Unix-Shell, die einige sehr mächtige Funktionen bietet. Da ich ein fauler EntwicklerTM bin, suche ich immer nach Möglichkeiten, weniger zu tippen und alle Dinge zu automatisieren. Glücklicherweise ist dies etwas, wofür sich Zsh gut eignet.

In diesem Beitrag werde ich 75 Befehle, Plugins, Aliase und Tools vorstellen, die Ihnen hoffentlich einige Tastenanschläge ersparen und Sie bei Ihrer täglichen Arbeit produktiver machen.

Wenn Sie Zsh noch nicht auf Ihrem Rechner installiert haben, dann schauen Sie sich diesen Beitrag an, in dem ich Ihnen zeige, wie Sie es zum Laufen bringen.

15 Dinge, die Zsh von Haus aus kann

Zsh hat viele praktische Funktionen mit der Bash gemeinsam. Keine der folgenden sind einzigartig für Zsh, aber sie sind trotzdem gut zu wissen. Ich möchte Sie dazu ermutigen, die Befehlszeile zu verwenden, um Operationen wie die unten aufgeführten durchzuführen. Es mag zunächst mehr Arbeit machen als die Verwendung einer grafischen Benutzeroberfläche, aber wenn Sie erst einmal den Dreh raus haben, werden Sie nie wieder zurückblicken.

  • Die Eingabe von cd von einer beliebigen Stelle des Dateisystems aus bringt Sie direkt zu Ihrem Heimatverzeichnis zurück.
  • Die Eingabe von !! bringt den letzten Befehl. Dies ist praktisch, wenn ein Befehl fehlschlägt, weil er Administratorrechte benötigt. In diesem Fall können Sie sudo !!.
  • Sie können && verwenden, um mehrere Befehle zu verketten. Zum Beispiel: mkdir project && cd project && npm init -y.
  • Die bedingte Ausführung ist mit || möglich. Beispiel: git commit -m "whatever..." || echo "Commit failed".
  • Die Verwendung eines -p-Schalters mit dem Befehl mkdir ermöglicht es Ihnen, übergeordnete Verzeichnisse nach Bedarf zu erstellen. Die Verwendung der Klammererweiterung reduziert Wiederholungen. Beispiel: mkdir -p articles/jim/sitepoint/article{1,2,3}.
  • Setzen Sie Umgebungsvariablen für jeden Befehl wie folgt: NODE_DEBUG=myapp node index.js. Oder pro Sitzung wie folgt: export NODE_DEBUG=myapp. Sie können überprüfen, ob sie gesetzt wurde, indem Sie echo $<variable-name> eingeben.
  • Leiten Sie die Ausgabe eines Befehls in einen zweiten Befehl. Zum Beispiel cat /var/log/kern.log | less, um ein langes Protokoll lesbar zu machen, oder history | grep ssh, um nach allen History-Einträgen zu suchen, die „ssh“ enthalten.
  • Sie können Dateien in Ihrem Editor vom Terminal aus öffnen. Zum Beispiel nano ~/.zshrc (nano), subl ~/.zshrc (Sublime Text), code ~/.zshrc (VS Code). Wenn die Datei nicht existiert, wird sie erstellt, wenn Sie im Editor auf Speichern drücken.
  • Navigation ist eine wichtige Fähigkeit, die man beherrschen muss. Verlassen Sie sich nicht nur auf Ihre Pfeiltasten. Mit der Tastenkombination Strg + a springen Sie zum Beispiel an den Anfang einer Zeile.
  • Mit der Tastenkombination Strg + e springen Sie an das Ende.
  • Mit der Tastenkombination Strg + w löschen Sie ein Wort (rückwärts).
  • Mit der Tastenkombination Strg + u löschen Sie alles vom Cursor bis zum Anfang der Zeile.
  • Mit der Tastenkombination Strg + k löschen Sie alles vom Cursor bis zum Ende der Zeile. Die letzten drei können mit Strg + y rückgängig gemacht werden.
  • Sie können Text mit Strg + Umschalt + c kopieren. Das ist viel eleganter als mit der rechten Maustaste zu klicken und Kopieren auszuwählen.
  • Umgekehrt können Sie kopierten Text mit Strg + Umschalt + v einfügen.

Versuchen Sie, sich diese Tastenkombinationen einzuprägen. Sie werden überrascht sein, wie oft sie sich als nützlich erweisen.

15 benutzerdefinierte Aliase zur Steigerung Ihrer Produktivität

Aliase sind Terminal-Kurzbefehle für reguläre Befehle. Sie können sie zu Ihrer ~/.zshrc-Datei hinzufügen und dann Ihr Terminal neu laden (mit source ~/.zshrc), damit sie wirksam werden.

Die Syntax für die Deklaration eines (einfachen) Alias lautet wie folgt:

alias =''

Aliase sind ideal für häufig verwendete Befehle, lange Befehle oder Befehle mit einer schwer zu merkenden Syntax. Hier sind einige der Befehle, die ich regelmäßig verwende:

  • Ein myip-Alias, der Ihre aktuelle öffentliche IP-Adresse auf dem Terminal ausgibt: alias myip='curl http://ipecho.net/plain; echo'.
  • A distro alias, um Informationen über Ihre Linux-Distribution auszugeben: alias distro='cat /etc/*-release'.
  • A reload alias, da ich mich nie erinnern kann, wie ich mein Terminal neu laden kann: alias reload='source ~/.zshrc'.
  • Ein undo-git-reset Alias: alias undo-git-reset-head="git reset 'HEAD@{1}'". Dies macht die Auswirkungen der Ausführung von git reset HEAD~.
  • Ein Alias zum Aktualisieren von Paketlisten rückgängig: alias sapu='sudo apt-get update'.
  • Ein Alias, um den vorherigen Befehl mit sudo erneut auszuführen: alias ffs='sudo !!'.
  • Weil ich faul bin, habe ich y mit dem Befehl yarn verknüpft: alias y='yarn'. Das bedeutet, dass ich ein Repository klonen und dann einfach y eingeben kann, um alle Abhängigkeiten einzubinden. Das habe ich von Scott Tolinski auf Syntax gelernt.
  • Ich benutze diesen Alias nicht, aber er löscht den Ordner node_modules und entfernt die Datei package-lock.json, bevor ich die Abhängigkeiten eines Projekts neu installiere: alias yolo='rm -rf node_modules/ && rm package-lock.json && yarn install'. Wie du wahrscheinlich weißt, steht yolo für You Only Live Once.
  • Ein Alias, um meine .zshrc-Datei zum Bearbeiten zu öffnen: alias zshconfig='subl $HOME/.zshrc'.
  • Ein Alias, um die Liste der Ruby-Versionen zu aktualisieren, die rbenv installieren kann: alias update-available-rubies='cd ~/.rbenv/plugins/ruby-build && git pull'
  • Ein Alias, um einen Server im aktuellen Verzeichnis zu starten (keine npm-Pakete erforderlich): alias server='python -m SimpleHTTPServer 8000'.
  • Sie können auch einen Alias erstellen, um die Dokumentation in Ihrem Browser zu öffnen: alias npmhelp='firefox https://github.com/robbyrussell/oh-my-zsh/tree/master/plugins/npm'.
  • Ein globaler Alias, um die Ausgabe eines Befehls nach less zu leiten: alias -g L='| less'. Sie können ihn wie folgt verwenden: cat production.log L.
  • Ein globaler Alias, um die Ausgabe eines Befehls nach grep zu leiten: alias -g G='| grep'. Sie können ihn wie folgt verwenden: history G ssh.
  • Sie können auch Funktionen zum Erstellen von Aliasen verwenden. Das Folgende (von hier) erstellt einen Alias, der Code zu GitHub hinzufügt, überträgt und pusht:
    bash
    function acp() {
    git add .
    git commit -m ""
    git push
    }

Es gibt viele Orte, an denen man weitere Ideen für Aliase online finden kann. Zum Beispiel diese Diskussion auf Hacker News oder dieser Beitrag über die Produktivität in der Kommandozeile mit Zsh.

15 coole Dinge, die man mit (Oh My) Zsh tun kann

Oh My Zsh ist ein von der Community betriebenes Framework zur Verwaltung der Zsh-Konfiguration und wird mit Tausenden von hilfreichen Funktionen, Helfern, Plugins und Themen geliefert. Wenn Sie die Z-Shell zu Ihrem täglichen Begleiter machen wollen, sollten Sie Oh My Zsh wirklich installieren.

Hier sind fünfzehn nützliche Dinge, die Oh My Zsh für Sie tun kann:

  • Der take Befehl erstellt ein neues Verzeichnis und wechselt in dieses. take my-project ersetzt mkdir my-project && cd my-project.
  • zsh_stats gibt dir eine Liste der 20 wichtigsten Befehle und wie oft sie ausgeführt wurden.
  • Oh My Zsh vereinfacht die Navigation in deinem Dateisystem. Zum Beispiel ist .. ein Alias für cd ...
  • Auf die gleiche Weise bringt Sie ... zwei Verzeichnisse nach oben, .... drei und ..... vier.
  • Sie können das cd beim Navigieren weglassen. Wenn Sie zum Beispiel / eingeben, gelangen Sie direkt zum Stammverzeichnis Ihres Dateisystems.
  • Teilweise Übereinstimmung wird ebenfalls unterstützt. Wenn ich zum Beispiel /h/j/De eingebe und TAB und dann Return drücke, komme ich zu /home/jim/Desktop/.
  • rd ist ein Alias für rmdir und md ist ein Alias für mkdir -p.
  • Sie können d eingeben, um die zuletzt verwendeten Verzeichnisse einer Terminalsitzung aufzulisten.
  • Sie können dann zu jedem dieser Verzeichnisse navigieren, indem Sie cd -n eingeben, wobei n die Verzeichnisnummer ist.
  • Die Tabulatorvervollständigung ist eine weitere großartige Funktion. Wenn Sie z. B. ls - eingeben und die Tabulatortaste drücken, werden alle Optionen des Befehls aufgelistet, zusammen mit einer hilfreichen Beschreibung, was sie bewirken. Dies funktioniert auch für cap, rake, ssh und kill.
  • Die Eingabe von alias listet alle Ihre aktuellen Aliase auf.
  • Mit globbing (eine Zsh-Funktion) können Sie Dateien mit einer bestimmten Erweiterung auflisten. Zum Beispiel listet ls *.html alle HTML-Dateien im aktuellen Verzeichnis auf. Um Unterverzeichnisse einzuschließen, ändern Sie in: ls **/*.html.
  • Mit Glob-Qualifiern können Sie Dateitypen mit Hilfe von Flags auswählen. Zum Beispiel findet ls -l **/*(.x) alle ausführbaren Dateien im aktuellen Verzeichnis und in allen Unterverzeichnissen.
  • Sie können Dateien nach Änderungsdatum suchen. Beispiel: ls *(m-7) listet alle Dateien auf, die in der letzten Woche geändert wurden.
  • Sie können nach Dateien anhand ihrer Größe suchen. Zum Beispiel findet ls *(Lm+1) alle Dateien mit einer Größe von mehr als 1MB.

Using Plugins for Fun and Profit

Oh My Zsh wird mit einer Vielzahl von Plugins ausgeliefert. Sie sollten diese durchsehen und etwas Zeit investieren, um die zu lernen, die Ihren Arbeitsablauf unterstützen.

Hier sind drei Plugins, die ich regelmäßig benutze und die eine Menge praktischer Abkürzungen und Aliase bieten.

10 Nifty Git Aliases

Das Git-Plugin bietet viele Aliase und einige nützliche Funktionen. Warum gehen Sie diese nicht durch und versuchen Sie, sich Ihre Top Ten zu merken? Hier sind die, die ich am häufigsten verwende.

  1. g ist ein praktischer Alias für git. Das bedeutet, dass Sie Dinge wie g clone <whatever> anstelle von git clone <whatever> eingeben können. Das sind zwar nur zwei Tastenanschläge, aber sie summieren sich schnell.
  2. gaa ist ein Alias für git add all. Ich benutze ihn ständig.
  3. gb ist ein Alias für git branch, der alle Zweige im aktuellen Repo auflistet und anzeigt, in welchem man sich befindet.
  4. gcb ist ein Alias für git checkout -b, den Befehl, mit dem man einen neuen Zweig erstellen kann.
  5. gcm ist ein Alias für git checkout master. Damit kehren Sie zum Master-Zweig zurück.
  6. gdca ist ein Alias für git diff --cached. Damit können Sie alle Dateien vergleichen, die Sie für die Übergabe bereitgestellt haben.
  7. gf ist ein Alias für git fetch.
  8. gm ist ein Alias für git merge.
  9. gp ist ein Alias für git push. Um einen Fork eines Repos zu synchronisieren, könnte man Folgendes tun: gf upstream, gm upstream/master, gefolgt von gp.
  10. glog ist ein Alias für git log --oneline --decorate --graph, wodurch man einen hübschen Git-Branch-Graph erhält.

10 Praktische npm-Aliase

Das npm-Plugin bietet auch eine Reihe nützlicher Aliase.

  • npmg ist ein Alias für npm install --global, mit dem Sie Abhängigkeiten global auf Ihrem System installieren können. Zum Beispiel ist npmg nodemon.
  • npmS ein Alias für npm install --save, den Sie verwenden, um Abhängigkeiten zu installieren und sie zum dependencies Abschnitt Ihres package.json hinzuzufügen. Beachten Sie, dass dies seit npm 5.0.0 der Standard ist, wenn Sie npm i <package> ausführen.
  • npmD ist ein Alias für npm install --save-dev, den Sie verwenden, um Abhängigkeiten zu installieren und sie zum devDependencies Abschnitt Ihres package.json hinzuzufügen.
  • npmO ist ein Alias für npm outdated, der die Registry überprüft, um zu sehen, ob irgendwelche (oder bestimmte) installierte Pakete derzeit veraltet sind.
  • npmL ist ein Alias für npm list, der installierte Pakete auflistet.
  • npmL0 ist ein Alias für npm list --depth=0, der Top-Level-Pakete auflistet. Dies ist besonders nützlich, um zu sehen, welche Module global installiert sind, ohne das Terminal mit einem riesigen Abhängigkeitsbaum zu überfluten: npmL0 -g.
  • npmst ist ein Alias für npm run start, ein npm-Skript, das oft zum Starten einer Anwendung verwendet wird.
  • npmt ist ein Alias für npm run test, das, wie Sie vielleicht erraten, zum Ausführen Ihrer Tests verwendet wird.
  • npmR ist ein Alias für npm run. Alleine listet dieser Befehl alle verfügbaren npm-Skripte eines Projekts auf, zusammen mit einer Beschreibung ihrer Funktion. In Verbindung mit einem Skriptnamen wird dieses Skript ausgeführt. Zum Beispiel ist npmR build.
  • npmI ein Alias für npm init. Es stellt Ihnen eine Reihe von Fragen und erstellt dann auf der Grundlage Ihrer Antworten ein package.json. Verwenden Sie das Kennzeichen -y, um den Prozess zu automatisieren. Zum Beispiel npmI -y.

10 Zeitsparende Rails/Rake-Aliase

Dieses Plugin fügt Vervollständigungen für das Ruby on Rails-Framework und das Rake-Programm sowie einige Aliase für Protokolle und Umgebungsvariablen hinzu.

  • rc ist ein Alias für rails console, der es Ihnen ermöglicht, mit Ihrer Rails-Anwendung über die CLI zu interagieren.
  • rdc ist ein Alias für rake db:create, der (sofern RAILS_ENV nicht gesetzt ist) die Entwicklungs- und Testdatenbank für Ihre Anwendung erstellt.
  • rdd ist ein Alias für rake db:drop, der die Entwicklungs- und Testdatenbanken Ihrer Anwendung löscht.
  • rdm ist ein Alias für rake db:migrate, der alle anstehenden Datenbankmigrationen ausführt.
  • rds ist ein Alias für rake db:seed, der die Datei db/seeds.rb ausführt, um Ihre Entwicklungsdatenbank mit Daten zu füllen.
  • rgen ist ein Alias für rails generate, der Boilerplate-Code erzeugt. Zum Beispiel: rgen scaffold item name:string description:text.
  • rgm ist ein Alias für rails generate migration, der eine Datenbankmigration erzeugt. Zum Beispiel: rgm add_description_to_products description:string.
  • rr ist ein Alias für rake routes, der alle definierten Routen einer App auflistet.
  • rrg ist ein Alias für rake routes | grep, mit dem Sie die definierten Routen auflisten und filtern können. Zum Beispiel ist rrg user.
  • rs ein Alias für rails server, der den Rails-Standard-Webserver startet.

Zusätzliche Ressourcen

Die Hauptaufgabe der oben aufgeführten Plugins ist es, Aliase für häufig verwendete Befehle bereitzustellen. Bitte beachten Sie, dass es noch viele weitere Plugins gibt, die Ihre Shell um zusätzliche Funktionen erweitern.

Hier sind vier meiner Favoriten:

  • sudo ermöglicht es Ihnen, Ihren aktuellen oder vorherigen Befehlen einfach ein sudo voranzustellen, indem Sie zweimal ESC drücken.
  • autosuggestions schlägt Ihnen während der Eingabe Befehle vor, die auf dem Verlauf und den Vervollständigungen basieren. Wenn der Vorschlag der Richtige ist, drücken Sie die → Taste, um ihn zu akzeptieren. Eine echte Zeitersparnis!
  • command-not-found: Wenn ein Befehl nicht im $PATH erkannt wird, wird das Ubuntu-Paket command-not-found verwendet, um ihn zu finden oder Schreibfehler vorzuschlagen.
  • z ist ein praktisches Plugin, das eine Liste Ihrer häufigsten und neuesten Ordner erstellt (es nennt diese „frecent“) und es Ihnen ermöglicht, mit einem einzigen Befehl zu ihnen zu springen.

Und vergessen Sie nicht, wenn Sie viel Zeit im Terminal verbringen, lohnt es sich, etwas Mühe zu investieren, um es visuell ansprechend zu gestalten. Glücklicherweise wird Oh My Zsh mit einer ganzen Reihe von Themes ausgeliefert, aus denen Sie wählen können. Mein Favorit ist Agnoster.

Mehr über Themes erfahren Sie in meinem Artikel 10 Zsh Tipps & Tricks: Konfiguration, Anpassung & Verwendung.

Fazit

So, da haben wir es: 75 Zsh-Befehle, Plugins, Aliase und Tools. Ich hoffe, Sie haben den einen oder anderen Trick gelernt, und ich möchte Sie ermutigen, aus Ihren GUIs herauszukommen und ins Terminal zu gehen. Es ist einfacher, als es aussieht, und eine großartige Möglichkeit, Ihre Produktivität zu steigern.

Wenn ich Ihr Lieblings-Plugin oder Ihren zeitsparenden Alias/Befehl verpasst habe, lassen Sie es mich auf Twitter wissen.

Wollen Sie noch mehr aus Ihrem Toolkit herausholen? Sehen Sie sich Visual Studio Code an: End-to-End Editing and Debugging Tools for Web Developers von Wiley.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.