Website-Suche

Moderne CLI-Tools: Zeit, LS und CAT zu vergessen


Die Befehlszeile bleibt die leistungsstärkste Schnittstelle für Linux-Benutzer, aber traditionelle Unix-Tools wie ls, cat, grep und find zeigen ihr Alter. Eine neue Generation von CLI-Tools bietet erhebliche Verbesserungen in Geschwindigkeit, Benutzerfreundlichkeit und Funktionen. In diesem Tutorial erkunden wir 10 moderne Alternativen, die Ihren täglichen Arbeitsablauf verändern und Ihre Produktivität steigern werden.

In diesem Tutorial lernen Sie:

  • Moderne Alternativen zu traditionellen Unix-Befehlen
  • Wie man schneller mit ripgrep und fd sucht
  • Verbesserte Dateiansicht mit bat und eza
  • Intelligente Verzeichnisnavigation mit zoxide
  • Interaktives Filtern mit fzf
  • Bessere Systemüberwachung und Festplattenanalyse

Zusammenfassung des Artikels: Ersetzen Sie Ihre traditionellen Unix-Tools durch diese modernen Alternativen für ein schnelleres und produktiveres Arbeiten in der Kommandozeile.

Traditionelles WerkzeugModerne Alternative
grep
ripgrep (rg)
find
fd
cat
bat
ls
eza

PROFI-TIPP
Erstelle Aliase in deiner ~/.bashrc, um traditionelle Befehle durch moderne Alternativen zu ersetzen: alias grep='rg', alias find='fdfind', alias cat='batcat', alias ls='eza'. Dadurch kannst du vertraute Befehlsnamen verwenden und gleichzeitig von den modernen Tools profitieren.

Text mit ripgrep suchen

ripgrep ist ein zeilenorientiertes Suchwerkzeug, das Verzeichnisse rekursiv nach einem Regex-Muster durchsucht. Es ist deutlich schneller als grep und berücksichtigt standardmäßig Ihre .gitignore-Dateien, was es ideal für die Durchsuchung von Code-Repositories macht.

ripgrep bietet mehrere Vorteile gegenüber dem traditionellen grep. Es überspringt automatisch versteckte Dateien, Binärdateien und Dateien, die in .gitignore aufgeführt sind. Das Tool bietet intelligente Groß-/Kleinschreibung, sucht ohne Beachtung der Groß-/Kleinschreibung, wenn Ihr Muster vollständig klein geschrieben ist, und berücksichtigt die Groß-/Kleinschreibung sonst. Am wichtigsten ist, dass es blitzschnell ist, oft 10-100 Mal schneller als grep in der Praxis.

  1. Muster rekursiv suchen: Durchsuchen Sie das aktuelle Verzeichnis und alle Unterverzeichnisse nach einem Textmuster.

    $ cd /etc
    $ rg config
  2. Mit Kontextzeilen suchen: Zeigen Sie 2 Zeilen vor und nach jeder Übereinstimmung an, um die Ergebnisse besser zu verstehen.

    $ rg -C 2 "error"
  3. Nach bestimmten Dateitypen suchen: Begrenzen Sie die Suche auf nur Python-Dateien, indem Sie den Typfilter verwenden.

    $ sudo rg --type py "import"

PROFI-TIPP
Erstellen Sie in Ihrer Shell-Konfiguration ein Alias alias grep='rg', um ripgrep als Ihr Standard-Suchwerkzeug zu verwenden und gleichzeitig Ihre Muskelgedächtnis beizubehalten.

Dateien mit fd finden

fd ist eine einfache, schnelle und benutzerfreundliche Alternative zu find. Es bietet sinnvolle Standardeinstellungen, farbige Ausgaben und eine intuitive Syntax, bei der Sie sich keine komplexen Flag-Kombinationen merken müssen.

fd verwendet standardmäßig intelligente Groß- und Kleinschreibung, ignoriert versteckte Verzeichnisse und Dateien und respektiert .gitignore. Die Syntax ist unkompliziert, sodass Sie einfach eingeben können, wonach Sie suchen, ohne Flags für grundlegende Suchen zu benötigen. Die Ausgabe ist farbig gestaltet, um das Lesen zu erleichtern.

UBUNTU-HINWEIS
Unter Ubuntu/Debian heißt die Binärdatei fdfind aufgrund eines Namenskonflikts. Erstellen Sie aus Bequemlichkeitsgründen ein Alias mit alias fd='fdfind'.

  1. Finde kürzlich geänderte Dateien: Finde alle Dateien, die innerhalb der letzten Stunde geändert wurden.

    $ fdfind --changed-within 1h
  2. Dateien nach Erweiterung finden: Suchen Sie nach allen Konfigurationsdateien mit der Erweiterung .conf.

    $ fdfind -e conf . /etc
  3. Dateien nach Namensmuster finden: Suchen Sie nach Dateien, die „config“ im Namen enthalten.

    $ fdfind config /etc

Dateien mit bat anzeigen

bat ist ein Cat-Klon mit Syntaxhervorhebung, Git-Integration und automatischer Seitennummerierung. Es macht das Lesen von Dateien im Terminal zu einem viel angenehmeren Erlebnis, insbesondere für Konfigurationsdateien und Quellcode.

bat bietet automatische Syntaxhervorhebung für über 200 Programmier- und Auszeichnungssprachen. Es zeigt Git-Änderungen am Rand, zeigt standardmäßig Zeilennummern an und leitet lange Ausgaben automatisch durch einen Pager. Das Werkzeug zeigt bei Bedarf auch nicht druckbare Zeichen an.

UBUNTU-HINWEIS
Unter Ubuntu/Debian heißt die Binärdatei batcat. Erstellen Sie zur Vereinfachung ein Alias mit alias bat='batcat'.

  1. Eine Datei mit Syntaxhervorhebung anzeigen: Zeigt eine Datei mit automatischer Syntaxerkennung, Zeilennummern und Formatierung an.

    $ batcat /etc/hosts
  2. Sprache für die Hervorhebung angeben: Erzwingt eine bestimmte Sprachsyntax beim Anzeigen von Dateien.

    $ sudo batcat -l yaml /etc/netplan/*.yaml
  3. Pipe-Diff-Ausgabe durch bat: Verbessern Sie die Diff-Ausgabe mit Syntaxhervorhebung und Zeilennummern.

    $ diff /tmp/file1 /tmp/file2 | batcat

HINWEIS
Das --diff-Flag in bat dient zum Hervorheben von Git-Diff-Kontexten und nicht zum Vergleichen von zwei beliebigen Dateien. Verwenden Sie diff file1 file2 | bat, um Dateien zu vergleichen.

Verzeichnisse mit eza auflisten

eza (Fork des inzwischen nicht mehr gewarteten exa) ist ein moderner Ersatz für ls mit mehr Funktionen und besseren Standardeinstellungen. Es bietet Farben, Symbole, Git-Status-Integration und Baumansichten direkt einsatzbereit.

eza färbt die Ausgabe nach Dateityp und Berechtigungen, kann Datei-Icons anzeigen (mit entsprechender Schriftartunterstützung), zeigt den Git-Status für Dateien in Repositories an und unterstützt die Baumansicht zur Visualisierung von Verzeichnisstrukturen. Die menschenlesbaren Dateigrößen werden standardmäßig angezeigt.

  1. Langes Format mit Überschriften: Detaillierte Dateiinformationen mit Spaltenüberschriften und für Menschen lesbaren Größen anzeigen.

    $ eza -lh --header
  2. Baumansicht mit Tiefenbegrenzung: Zeigen Sie die Verzeichnisstruktur als Baum, begrenzt auf 3 Ebenen tief.

    $ eza --tree --level=3 | head
  3. Git-Status anzeigen: Zeigt Dateiauflistungen mit Git-Statusanzeigen für jede Datei an.

    $ eza --git -l

Die Git-Statusspalte zeigt zwei Zeichen an: das erste für gestagte Änderungen, das zweite für ungestagte Änderungen. Übliche Indikatoren sind N (neu), M (geändert) und – (unverändert).

Mit zoxide durch Verzeichnisse navigieren

zoxide ist ein intelligenter Verzeichniswechsler, der Ihre Gewohnheiten lernt und Ihnen ermöglicht, mit minimalen Tastenanschlägen zu häufig verwendeten Verzeichnissen zu navigieren. Es verfolgt, welche Verzeichnisse Sie besuchen und wie oft, sodass Sie mit Teilnamen zu ihnen springen können.

zoxide verwendet einen „Frecency“-Algorithmus, der sowohl die Häufigkeit als auch die Aktualität von Verzeichnisbesuchen berücksichtigt. Sie können zu Verzeichnissen springen, indem Sie nur Teile des Namens verwenden, und es integriert sich nahtlos in Ihre Shell. Das Tool unterstützt auch die interaktive Auswahl, wenn es mit fzf kombiniert wird.

  1. Zoxide in Ihrer Shell initialisieren: Fügen Sie zoxide zu Ihrer aktuellen Shell-Sitzung hinzu. Fügen Sie diese Zeile zur ~/.bashrc hinzu, um die Einrichtung dauerhaft zu machen.

    $ eval "$(zoxide init bash)"
  2. Datenbank initial befüllen: Verzeichnisse manuell in die zoxide-Datenbank einfügen, um sie sofort nutzen zu können.

    $ zoxide add /etc
    $ zoxide add /var/log
    $ zoxide add /home
  3. Mit teilweisen Namen springen: Navigieren Sie zu Verzeichnissen, indem Sie nur einen Teil des Pfads eingeben.

    $ z home
    $ z log
  4. Gesehene Verzeichnisse anzeigen: Alle überwachten Verzeichnisse und ihre Frecency-Werte anzeigen.

    $ zoxide query -ls

TIPP
Für die interaktive Verzeichnisauswahl installieren Sie fzf und verwenden zi anstelle von z. Dies öffnet einen Fuzzy Finder mit allen Ihren verfolgten Verzeichnissen.

Alles mit fzf filtern

fzf ist ein vielseitiger Kommandozeilen-Fuzzy-Finder. Er kann jede Liste filtern, einschließlich Dateien, Befehlsverlauf, Prozesse, Hostnamen, Git-Commits und mehr. Er ist unglaublich vielseitig und integriert sich gut mit anderen Werkzeugen.

fzf bietet sofortige fuzzy-Suche während der Eingabe, funktioniert mit beliebigen Texteingaben über Pipes, unterstützt Vorschaufenster für Dateiinhalte und integriert sich in die Shell-Historie für eine erweiterte Ctrl+R-Funktionalität. Die Benutzeroberfläche ist schnell und reagiert auch bei großen Datensätzen zügig.

  1. Grundlegendes unscharfes Dateifinden: Leite eine Dateiliste an fzf weiter, um interaktiv zu filtern.

    $ ls /etc | fzf
  2. Unscharfe Suche mit Dateivorschau: Zeigen Sie den Inhalt der Datei in einem Vorschaufenster an, während Sie durch die Liste navigieren.

    $ fzf --preview 'batcat --color=always {}'

Das Vorschaufenster zeigt den Inhalt der momentan ausgewählten Datei an und aktualisiert sich in Echtzeit, während Sie die Liste durchgehen. Dies ist besonders nützlich beim Durchsuchen von Konfigurationsdateien oder Code.

SHELL-INTEGRATION
Nach der Installation von fzf aktivieren Sie die Shell-Integration mit source /usr/share/doc/fzf/examples/key-bindings.bash. Dies gibt Ihnen erweitertes Ctrl+R für die Verlaufssuche und Ctrl+T für die Dateisuche.

Überwachungssystem mit btop

btop ist ein Ressourcenmonitor, der CPU, Speicher, Festplatten, Netzwerk und Prozesse anzeigt. Es ist der moderne Nachfolger von htop mit einer schönen TUI-Oberfläche und Mausunterstützung.

btop bietet pro Kern CPU-Nutzungsdiagramme, Speicher- und Swap-Visualisierung mit Nutzungsbalken, Netzwerkübertragungsgeschwindigkeiten mit Diagrammen, Festplatten-I/O-Überwachung, Prozessbaumansicht mit Sortieroptionen und vollständige Mausunterstützung für interaktive Navigation.

  1. Starten Sie den Systemmonitor: Starten Sie die interaktive Systemmonitoroberfläche.

    $ btop

Die Schnittstelle ist in Abschnitte unterteilt: CPU-Auslastung mit Aufschlüsselung pro Kern (oben), Speicher- und Festplattennutzung (links), Netzwerkstatistiken (unten links) und eine detaillierte Prozessliste (rechts). Verwenden Sie die Pfeiltasten oder die Maus zur Navigation und drücken Sie ‚q‘ zum Beenden.

Verwenden von dust zur Analyse der Festplattennutzung

dust ist eine intuitivere Version von du (Festplattennutzung). Es bietet eine Visualisierung, welche Verzeichnisse Speicherplatz verwenden, wodurch es einfach ist, Speicherfresser auf einen Blick zu erkennen.

dust zeigt eine Baumstruktur mit proportionalen Balken, die relative Größen anzeigen, verwendet Farben, um die größten Elemente hervorzuheben, und sortiert automatisch nach Größe. Die Ausgabe ist viel lesbarer als die herkömmliche du-Ausgabe.

  1. Verzeichnis mit Tiefenbegrenzung analysieren: Zeigt die Festplattennutzung für ein Verzeichnis an und begrenzt die Verzeichnistiefe auf 2 Ebenen.

    $ dust -d 2 ~

Die Visualisierung zeigt jedes Verzeichnis mit einem proportionalen Balken, der seine relative Größe anzeigt. Größere Elemente werden in verschiedenen Farben hervorgehoben, wodurch leicht erkennbar ist, welche Verzeichnisse den meisten Speicherplatz beanspruchen.

Schnelle Befehls-Hilfe mit tldr

tldr bietet vereinfachte und gemeinschaftsbasierte Handbuchseiten, die sich auf praktische Beispiele konzentrieren. Anstatt lange Handbuchseiten zu lesen, erhält man prägnante, beispielorientierte Dokumentation für gängige Anwendungsfälle.

tldr-Seiten werden von der Community gepflegt und konzentrieren sich auf die häufigsten Anwendungsfälle. Jeder Befehl zeigt praktische Beispiele mit klaren Erklärungen, was sie perfekt für eine schnelle Referenz macht. Die Seiten sind nach dem ersten Download offline verfügbar.

  1. Vereinfachte Hilfe für einen Befehl erhalten: Praktische Beispiele für den Befehl tar anzeigen.

    $ tldr tar
  2. Lokalen Cache aktualisieren: Die neuesten von der Community beigetragenen Seiten herunterladen.

    $ tldr --update

TIPP
Führen Sie tldr --update regelmäßig aus, um die neuesten von der Community beigetragenen Seiten zu erhalten.

Git-Diffs mit delta anzeigen

delta ist ein Syntax-Highlighting-Pager für Git-, Diff- und Grep-Ausgaben. Es macht Code-Reviews im Terminal mit richtiger Syntaxhervorhebung und verbesserter Diff-Formatierung deutlich lesbarer.

delta bietet Syntaxhervorhebung für Diffs in beliebiger Sprache, die Option zur Anzeige nebeneinander, Zeilennummern in Diffs, Wort-für-Wort-Diff-Hervorhebung und Unterstützung für verschiedene Themes. Es integriert sich nahtlos mit Git als Pager.

  1. Delta als Git-Pager konfigurieren: Legen Sie delta als Standard-Pager für alle Git-Ausgaben fest.

    $ git config --global core.pager delta
  2. Git-Diff mit Delta anzeigen: Anzeige der mit Syntaxhervorhebung versehenen Diff-Ausgabe.

    $ git diff
  3. Diff-Ausgabe durch delta leiten: Leiten Sie manuell jede Diff-Ausgabe durch delta.

    $ git diff | delta
  4. Seiten-an-Seiten-Ansicht aktivieren: Fügen Sie diese Konfiguration zu Ihrer ~/.gitconfig für die geteilte Diff-Ansicht hinzu.

    [delta]
        side-by-side = true

Fazit

Diese modernen CLI-Tools stellen eine bedeutende Weiterentwicklung der Produktivität an der Kommandozeile dar. Sie sind schneller, intuitiver und bieten eine bessere visuelle Rückmeldung als ihre traditionellen Gegenstücke. Während die klassischen Unix-Tools immer ihren Platz haben werden, kann die Integration dieser modernen Alternativen in Ihren Arbeitsablauf Ihr tägliches Erlebnis an der Kommandozeile erheblich verbessern.

Beginnen Sie damit, ein oder zwei Werkzeuge auszuprobieren, die Ihre größten Schmerzpunkte adressieren. ripgrep und fd sind ausgezeichnete Startpunkte für jeden, der viel sucht. bat und eza sind einfache Erfolge, die sofort die Dateiansicht verbessern. Wenn Sie sich wohler fühlen, erkunden Sie die anderen. Sie könnten feststellen, dass zoxides intelligente Navigation oder fzfs fuzzy finding unverzichtbare Teile Ihres Workflows werden.

Für weitere Informationen zu jedem Tool besuchen Sie deren jeweilige GitHub-Repositories oder verwenden Sie tldr für eine schnelle Übersicht über gängige Nutzungsmuster.

Häufig gestellte Fragen

  1. Werden diese Werkzeuge auf allen Linux-Distributionen funktionieren? Ja, alle diese Werkzeuge sind für die gängigen Linux-Distributionen verfügbar. Die Paketnamen können leicht variieren. Zum Beispiel verwendet Ubuntu die Pakete fd-find und bat, die als Binärdateien fdfind und batcat installiert werden. Sie können Aliase erstellen, um die Standardnamen zu verwenden.
  2. Kann ich diese Werkzeuge zusammen mit den traditionellen Befehlen verwenden? Absolut. Diese Werkzeuge ersetzen die ursprünglichen Befehle nicht. Sie werden als separate Binärdateien installiert. Sie können beide abwechselnd verwenden und nur für die Werkzeuge, die Sie bevorzugen, Aliase erstellen. Viele Benutzer halten die Originale für Skripte verfügbar, die von bestimmten Ausgabeformaten abhängen.
  3. Sind diese modernen Werkzeuge mit Shell-Skripten kompatibel? Während diese Werkzeuge interaktiv sehr gut funktionieren, sollten Sie vorsichtig sein, sie in Skripten zu verwenden, die auf Systemen ausgeführt werden könnten, auf denen sie nicht installiert sind. Für maximale Portabilität sollten Sie in Skripten bei traditionellen Werkzeugen bleiben oder sicherstellen, dass die modernen Alternativen in Ihrer Zielumgebung verfügbar sind.
  4. Wie installiere ich all diese Werkzeuge auf einmal? Unter Ubuntu/Debian können Sie die meisten mit folgendem Befehl installieren: sudo apt install ripgrep fd-find bat eza fzf btop tldr git-delta. Für dust und zoxide verwenden Sie cargo (Rust-Paketmanager) oder laden Sie sie von ihren GitHub-Releases herunter.
  5. Warum zeigt zoxide „kein Treffer gefunden“ an, wenn ich es zum ersten Mal benutze? zoxide muss Ihre Verzeichnisgewohnheiten kennenlernen, bevor es Ziele vorschlagen kann. Verwenden Sie zoxide add /pfad/zum/verzeichnis, um die Datenbank zu füttern, oder navigieren Sie einfach normal. zoxide wird beim Benutzen von cd lernen (nachdem die Shell-Integration aktiviert wurde).