GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Endgeschwindigkeit:Sich schnell in Ihrer Hülle bewegen

Ich benutze seit vielen Jahren täglich ein Terminal. Ich verwende eine stark angepasste, nicht standardmäßige Shell. Ich mache ausgiebigen Gebrauch von der Tab-Vervollständigung und habe mir die Flags für viele Befehle gemerkt. Bis vor etwa einem Jahr dachte ich, ich hätte den Höhepunkt der Terminalproduktivität erreicht. Dann entdeckte ich eine Welle von Shell-Hilfsprogrammen, die, obwohl obskur, die Art und Weise, wie ich mit meiner Terminalumgebung interagiere, grundlegend zum Besseren veränderten.

Dieser Artikel ist der erste in einer Reihe über diese neuen Dienstprogramme (plus ein paar Tools, die ich schon länger kenne und liebe). Heute werden wir uns Tools ansehen, die speziell zum Bewegen in Ihrem Dateisystem geeignet sind.

Umherspringen:z

Sie wissen, wie Sie die ersten paar Buchstaben einer häufig verwendeten Website in Ihren Browser eingeben und mit der Gewissheit, dass Sie an die richtige Stelle gelangen, die Eingabetaste drücken können? Was wäre, wenn wir dieselbe Erfahrung in Ihre Shell bringen würden? Stellen Sie sich vor, Sie könnten sich zu einem häufig verwendeten Verzeichnis teleportieren, indem Sie einfach einen kleinen Teil seines Namens eingeben. Das ist z tut.

Das z Shell-Skript verfolgt die Verzeichnisse, die Sie besuchen, und wann Sie sie besucht haben. Es kombiniert die Häufigkeit Ihres Zugriffs auf ein Verzeichnis mit der Aktualität Ihres Zugriffs, um die "Häufigkeit" Ihres Zugriffs zu bestimmen. Wenn Sie ein paar Buchstaben für den Namen eines Verzeichnisses eingeben, z wählt den Kandidaten aus, der den bereitgestellten Teilstring mit der höchsten Häufigkeit enthält. Das Ergebnis ist unheimlich oft richtig.

Hier ist es in Aktion:

Kurze Fakten:

  • bash /zsh Implementierung:GitHub
  • fish Implementierung:GitHub
  • Lizenz (bash /zsh ):WTFPLv2
  • Lizenz (fish ):MIT
  • Sprache:Shell-Skript

Es gibt eine Reihe ähnlicher Tools wie autojump und fasd . Probieren Sie sie alle aus!

Fuzzy-Suche:fzf

Manchmal ist die Suche nach Dingen mit regulären Ausdrücken übertrieben. Es gibt Zeiten, in denen es ausreichen sollte, dass die richtigen Buchstaben in der richtigen Reihenfolge vorkommen. Das fzf Mit dem Dienstprogramm können Sie schmerzlos nach Fuzzy-Matches suchen. Wie bezieht sich dieses Tool auf die Bewegung in Ihrem Dateisystem? Warte einfach ab und du wirst sehen.

Standardmäßig fzf funktioniert auf stdin, also können Sie es wie grep verwenden :

$ fzf < long-log-file.txt

Live-Beispiel:

Denn fzf funktioniert, um stdin zu filtern und die Ausgabe auf stdout zu senden, können Sie mit diesem Tool viel mehr tun, als Dateien zu durchsuchen. Möchten Sie nach einem Verzeichnis unterhalb des aktuellen suchen?

$ fzf

Stimmt. Wenn stdin keine Pipe ist, fzf durchsucht alle Dateien darunter und gibt Ihre Auswahl auf stdout aus, was es einfach macht, die Ergebnisse mit anderen Befehlen wie einem Editor zu kombinieren.

Wenn Sie dasselbe mit mehr Kontrolle erreichen möchten, könnten Sie Folgendes ausführen:

$ find . -type d | fzf

Sie können fzf verwenden um sich fortzubewegen, indem Sie Folgendes ausführen:

$ cd $(find . -type d | fzf) #bash/zsh
$ cd (find . -type d | fzf) #fish

Jetzt gibt es auch andere unterhaltsame Anwendungen. Sie können:

  • Rufen Sie Befehle aus Ihrem Verlauf auf mit:
    $ eval $(history | fzf) #bash/zsh
    $ eval (history | fzf) #fish
    
  • Bearbeiten Sie eine Datei unterhalb des aktuellen Verzeichnisses mit:
    $ $EDITOR $(find . | fzf) #bash/zsh
    $ $EDITOR (find . | fzf) #fish
    
  • Wählen Sie die zu installierenden Pakete mit:
    $ sudo apt install $(apt search <word> 2>/dev/null | tail -n+3 | grep '^\w' | sed 's|([^/]+)/.*|\1|' | fzf) #bash/zsh
    $ sudo apt install (apt search <word> 2>/dev/null | tail -n+3 | grep '^\w' | string split / | fzf) #fish
    
  • Treffen Sie im Allgemeinen Entscheidungen basierend auf Text mit Zeilentrennung. Der Himmel ist die Grenze!

Das fzf Utility hat bestehende Integrationen mit bash , zsh , und fish . Wenn Sie diese Shells installieren, fzf ergänzt und erweitert auf natürliche Weise Arbeitsabläufe wie "umgekehrte Indexsuche" und Tab-Vervollständigung. Ich bin ein intensiver Nutzer von fish Integration, ich selbst.

Kurze Fakten:

  • Hole fzf :GitHub
  • Lizenz:MIT
  • Sprache:Los

Möchten Sie mehr?

Wenn Ihnen diese Tools nützlich erscheinen, bleiben Sie dran für weitere Artikel. Wenn Sie es kaum erwarten können, diese Serie basiert auf diesem Vortrag, den ich bei All Things Open 2019 gehalten habe. Dort finden Sie weitere Tools und Tricks.


Linux
  1. Zeichnen Sie Ihre Terminalsitzung mit Asciinema auf

  2. Was ist Ihr Lieblings-Linux-Terminal-Trick?

  3. Was ist Ihr Lieblings-Terminal-Emulator?

  4. Einfärben Ihrer Terminal- und Shell-Umgebung?

  5. Löschen der Shell-Konsole?

Entspannen Sie am Feuer an Ihrem Linux-Terminal

Schlängeln Sie sich durch Ihr Linux-Terminal

Spielen Sie Tetris auf Ihrem Linux-Terminal

Fahren Sie eine Lokomotive durch Ihr Linux-Terminal

So zeichnen Sie Ihre Terminalsitzung unter Linux auf

MapSCII – Die Weltkarte in Ihrem Terminal