TL;DR / Key Takeaways
Warum Ihr Terminal in der Vergangenheit feststeckt
Geben Sie heute im Terminal `ls` ein und Sie reisen effektiv zurück in die 1970er Jahre. Der Befehl macht immer noch das, was er immer getan hat – er gibt eine Verzeichnisauflistung aus – aber moderne Entwicklungs-Workflows verlangen weit mehr als eine monochrome Spalte von Dateinamen. Ihr Editor, Browser und IDE haben sich weiterentwickelt; Ihr Dateilister hingegen größtenteils nicht.
Traditionelles ls weiß nichts über Git, obwohl praktisch jedes ernsthafte Projekt in einem Repository lebt. Sie können nicht einfach in ein Verzeichnis schauen und sehen, welche Dateien modifiziert, ignoriert oder nicht verfolgt sind, ohne separate `git status`-Befehle auszuführen. Das bedeutet ständiges mentales Umschalten: `ls`, um Dateien zu sehen, `git`, um den Status zu prüfen, und Ihr Gehirn, um alles zusammenzufügen.
Visuelles Feedback ist ebenso primitiv. GNU ls kann Ausgaben farblich kennzeichnen, beschränkt sich jedoch auf grundlegende Dateitypen und Berechtigungen, ohne Konzepte für Icons, klickbare Pfade oder Farbverläufe, die große oder aktuelle Dateien hervorheben. Sie erhalten keine: - Git-bewussten Indikatoren - Dateispezifische Icons - Hyperlinks, die Sie in modernen Terminals anklicken können
Die Informationsdichte ist ein weiteres Problem. Ein langer `ls -l`-Dump presst Berechtigungen, Eigentümer, Größen und Zeitstempel in eine Textwand, die schlecht skaliert, sobald ein Verzeichnis Hunderte von Einträgen enthält. Entweder sieht man zu wenig (`ls`) oder viel zu viel (`ls -l`), ohne eine differenzierte Zwischenlösung wie „nur Verzeichnisse“, „Git-ignorierte Dateien ausblenden“ oder „Verzeichnisse zuerst anzeigen“.
Inzwischen ist Ihr Terminal zu Ihrer primären Benutzeroberfläche geworden, da Tools wie Git, Docker und Kubernetes mehr Arbeitsabläufe in die Befehlszeile verlagern. Sie wechseln zwischen Linux und macOS, jonglieren mit Dutzenden von Repositories und sind immer noch auf einen Dateilister angewiesen, der vor der Zeit des verbreiteten Versionsmanagements entwickelt wurde. Warum versteht Ihre Verzeichnisansicht nicht Ihr VCS, Ihre Schriftarten oder Ihr Farbschema?
Wie würde ein Dateiliste-Tool aussehen, wenn es für 2025 und nicht für 1975 entworfen wäre? Was wäre, wenn `ls` den Git-Status direkt anzeigen, automatisch Icons hinzufügen und intelligente Sortier- und Filterflags verwenden könnte, die dem entsprechen, wie Sie tatsächlich arbeiten? Diese Lücke – zwischen dem, was `ls` bietet, und den Erwartungen der Entwickler von heute – ist genau der Bereich, in den eza hineinschreitet.
Treffen Sie Eza: Der Nachfolger einer Legende
Befehlszeilen-Traditionalisten mögen es nicht gerne hören, aber eza ist das Tool, das sich im Jahr 2025 so verhält, wie es die Menschen von `ls` erwarten. Es kommt mit sinnvollen Voreinstellungen, farbiger Ausgabe und einem Layout, das tatsächlich relevante Informationen präsentiert: Dateitypen, Git-Status und menschenlesbare Metadaten, anstatt einer monochromen Textwand. In Rust geschrieben, setzt es auf Speichersicherheit und aggressive Parallelität, um auch in großen Repositories schnell zu bleiben.
Eza erschien nicht aus dem Nichts. Es begann als ein von der Community geführter Fork von exa, dem beliebten Rust `ls`-Ersatz, der von Benjamin Sago (bekannt als „ogham“) erstellt wurde und jahrelang nicht mehr gewartet wurde. Als exa ins Stocken geriet, verlagerten die Mitwirkenden den Code in das eza-community/eza Repository, behebten langanhaltende Probleme und begannen, regelmäßige Releases für Linux und macOS zu veröffentlichen.
Abgesehen von der Herkunft ist die Botschaft von eza einfach: bessere Voreinstellungen, reichhaltigere Informationen und eine Entwickler-zuerst-Erfahrung. Führen Sie `eza -l --git` aus, und Sie sehen sofort git-bewusste Marker wie `M` für geändert, `N` für neu und `I` für ignorierte Dateien im selben Listing wie Berechtigungen und Größen. Fügen Sie `--git-repos` hinzu, und Verzeichnisse verwandeln sich in ein Dashboard von Branches und dem Status „dirty/clean“ über mehrere Repos hinweg.
Die visuelle Signalstärke ist der Punkt, an dem eza sich von `ls` abhebt. Farben sind in der interaktiven Nutzung immer aktiviert, und Flags wie `--colour=always` bewahren sie durch Pipes, während `--colour-scale` Farbverläufe verwendet, um große oder aktuelle Dateien hervorzuheben. Mit einem installierten Nerd Font dekoriert `--icons` jeden Eintrag mit Symbolen für den Dateityp, und `--hyperlink` verwandelt Pfade in klickbare Links in Terminals, die dies unterstützen.
Die Entwicklerergonomie zeigt sich im Sortierungs- und Filtermodell. Anstelle von komplizierten Kombinationen der `ls`-Flags bekommst du klare Optionen wie: - `--sort=size`, `--sort=time` oder `--sort=extension` - `--reverse` für umgekehrte Reihenfolge - `--group-directories-first`, `--only-dirs` oder `--only-files`
Alternativen gibt es, aber eza zielt direkt darauf ab. Das Projekt behauptet ausdrücklich, schneller zu sein als lsd, ein weiterer Rust `ls` Klon, und bietet eine tiefere Git-Integration, Themen über Konfigurationsdateien, Baumansichten mit `--tree` und Kompatibilitätsschichten, sodass Sie `ls` oder sogar `exa` auf eza aliasieren und den Wechsel einfach vergessen können.
Installation und Ihr erster Alias
Moderne macOS-Maschinen machen die Installation von eza nahezu trivial. Mit eingerichtetem Homebrew führen Sie aus: - `brew install eza` Dieser einzelne Befehl zieht ein bereits kompiliertes Rust-Binary, fügt es Ihrem PATH hinzu und gibt Ihnen Updates über `brew upgrade eza`, wann immer das Projekt eine neue Version veröffentlicht.
Linux-Nutzer erhalten eine ähnliche Behandlung. Auf Debian/Ubuntu führen Sie `sudo apt install eza` aus (bei älteren Versionen benötigen Sie möglicherweise die GitHub .deb). Auf Arch und Abkömmlingen installiert `sudo pacman -S eza` aus den Community-Repositories. Andere Distributionen verpacken es entweder unter `eza` oder dokumentieren Anweisungen auf eza – Eine moderne Alternative zu ls (Offizielles GitHub).
Um eza unsichtbar, aber allgegenwärtig zu machen, aliasiere es zu ls. Füge diese Zeile zu deiner Shell-Konfiguration hinzu: - Bash: füge `alias ls='eza'` zu `~/.bashrc` hinzu - Zsh: füge `alias ls='eza'` zu `~/.zshrc` hinzu Nachdem du die Änderungen vorgenommen hast, lade mit `source ~/.bashrc` oder `source ~/.zshrc` neu, oder öffne einfach einen neuen Terminal-Tab.
Zuerst führen Sie `eza` ohne Flags aus. Sie erhalten sofort farbcodierte, spaltenausgerichtete Ausgaben, die die Terminalbreite besser respektieren als `ls`. Verborgene Dateien bleiben standardmäßig verborgen, was die Projektwurzeln lesbarer hält.
Versuche als Nächstes `eza -l`. Die langsame Ansicht fügt Berechtigungen, Eigentümer, Größen und Zeitstempel in einem übersichtlicheren Layout hinzu, wobei Farben Metadaten von Dateinamen trennen. Führe dann `eza -a` aus, um Dotfiles einzuschließen; du erhältst immer noch eine saubere, farblich sortierte Liste anstelle der visuellen Suppe, die `ls -a` normalerweise erzeugt.
Wenn Ihr Alias nichts bewirkt, haben Sie wahrscheinlich die falsche Datei bearbeitet oder Ihre Shell lädt eine andere Konfiguration. Überprüfen Sie `$SHELL`, um zwischen Bash und Zsh zu unterscheiden, stellen Sie sicher, dass die Alias-Zeile keine überflüssigen Leerzeichen oder Anführungszeichen enthält, und führen Sie `type ls` aus, um zu überprüfen, ob es jetzt auf eza verweist. Bei Zweifeln starten Sie das Terminal neu, um eine saubere Umgebung zu erzwingen.
Entfesseln Sie Git direkt in Ihren Dateilisten
Git-bewusste Dateianzeigen verhindern, dass Sie alle 30 Sekunden zu `git status` wechseln müssen. Mit eza ist Git kein separater Schritt; es ist direkt in die Verzeichnisansicht integriert, sodass der Zustand Ihres Arbeitsbaums neben Dateinamen, Größen und Zeitstempeln angezeigt wird.
Führen Sie `eza -l --git` in jedem Repository aus, und Sie erhalten eine zusätzliche Statusspalte direkt von Git. Jede Datei zeigt ein prägnantes Zeichen, das aus `git status --short` entnommen wurde, sodass Sie auf Probleme achten können, ohne einen Textblock durchforsten zu müssen.
Diese kleinen Buchstaben tragen viel Bedeutung. Im Langformat verwendet eza:
- 1`M` auf der linken Seite: modifiziert und vorbereitet
- 2`M` auf der rechten Seite: modifiziert, aber nicht bereitgestellt
- 3`N`: neue, nicht verfolgte Datei
- 4`I`: von `.gitignore` oder `.git/info/exclude` ignoriert
Da diese Marker pro Zeile angezeigt werden, sehen Sie sofort, welche Dateien sicher sind, welche halb eingecheckt sind und welche noch wild sind. Kein Rätselraten mehr, welche `src/`-Änderung Sie vor Ihrem letzten Commit vergessen haben hinzuzufügen.
Große Monorepos vervielfachen diesen Wert. Mit `eza --git --tree --level=2` können Sie einer Projektstruktur folgen und den Git-Status in jeder Tiefe im Blick behalten. Diese Kombination verwandelt eine einfache Baumansicht in eine lebendige Karte unbehandelter Arbeiten.
Repository-Sprawl schafft ein anderes Problem: zu wissen, welches Projekt sauber ist, bevor Sie Ihren Push durchführen. Das `--git-repos`-Flag begegnet genau diesem Problem. Weisen Sie eza auf ein Verzeichnis voller Projekte hin, und es fasst jedes Git-Repo in einer einzigen Zeile zusammen.
Für jedes Unterverzeichnis, das einen `.git`-Ordner enthält, zeigt `eza --git-repos` den aktuellen Branch sowie einen „sauber“ oder „unschuldig“ Indikator an. Sie können gleichzeitig 10 oder 50 Repos überblicken und sofort dasjenige mit ungeschobenen oder uncommitteten Änderungen erkennen.
Geräusche von generierten Assets und Protokollen können das Signal in großen Codebasen überlagern. Fügen Sie `--git-ignore` hinzu und eza blendet alles aus, was Git bereits ignoriert, wodurch Ihre `.gitignore`-Regeln effektiv auf die Dateiansicht selbst angewendet werden. Node `dist/`, Python `.venv/`, `coverage/`-Berichte und Build-Artefakte verschwinden aus der Sicht.
Kombinieren Sie diese Flags und das Terminal wird zu einem Git-Dashboard: `eza -l --git --git-ignore --group-directories-first` für gezieltes Bearbeiten oder `eza --git-repos ~/code` für eine portfolioweite Statusüberprüfung. Das alte `ls` zeigt Dateien; eza zeigt den tatsächlichen Zustand Ihrer Arbeit.
Jenseits von Schwarz und Weiß: Eine Welt der Farben
Farbe ist der Punkt, an dem eza aufhört, so zu tun, als wäre es ein einfacher Ersatz, und stattdessen wie eine moderne Benutzeroberfläche wirkt, die in ein Terminal gepresst wurde. Im Lieferumfang ist eine intelligente Standardpalette enthalten, die Dateitypen, Berechtigungen und Metadaten auf einen Blick darstellt: Verzeichnisse in einem Farbton, ausführbare Dateien in einem anderen, Symlinks in einem dritten, mit zusätzlichen Akzenten für Dinge wie Sticky Bits und überall schreibbare Pfade. Du musst nichts konfigurieren; du führst einfach `eza` aus und dein Dateisystem hat plötzlich eine Legende.
Das traditionelle `ls --color` wirkt im Vergleich grob. Die Voreinstellungen von Eza unterscheiden nicht nur, um welche Art von Datei es sich handelt, sondern auch, wie sicher es ist, sie zu berühren. Verdächtige Berechtigungskombinationen, wie gruppenschreibbare Binärdateien, fallen sofort ins Auge und fungieren jedes Mal, wenn Sie ein Verzeichnis auflisten, als eine unkomplizierte Sicherheitsüberprüfung.
Farbe wird noch wichtiger, sobald Sie mit dem Piping beginnen. Viele Tools entfernen ANSI-Codes, es sei denn, Sie sagen ihnen ausdrücklich, dass sie dies nicht tun sollen. Daher bietet eza die Option `--colour=always`, um eine persistente Farbgebung zu erzwingen. Dieses eine Flag sorgt dafür, dass Ihre Farbtöne durch `grep`, `less -R`, `fzf` oder sogar in Protokolldateien, die Sie später verfolgen, lebendig bleiben.
Zusammen verwendet sieht das Muster so aus: - `eza --colour=always | less -R` - `eza --colour=always | grep Muster` - `eza -l --git --colour=always | fzf`
Wo eza sich wirklich von `ls` abhebt, ist bei `--colour-scale`, einer Funktion, die Rohmetadaten in einen visuellen Gradienten umwandelt. Mit `--colour-scale=size` leuchten große Artefakte – denken Sie an Multi-Gigabyte-VM-Images oder aufgeblähte node_modules – anders als kleine Konfigurationsdateien. Wechseln Sie zu `--colour-scale=age`, und die Änderungen von gestern strahlen vor dem Hintergrund unberührter, veralteter Daten.
Diese Verläufe skalieren besonders gut bei großen Bäumen. Führen Sie `eza --tree --colour-scale=size` für ein Projekt aus und Sie können die 3–4 Dateien, die Speicherplatz beanspruchen, erkennen, ohne eine einzige Zahl zu lesen. Es fühlt sich eher wie eine Heatmap als wie eine einfache Auflistung an.
Wenn Ihnen die Voreinstellungen nicht gefallen, fängt eza Sie nicht ein. Es unterstützt benutzerdefinierte Farbschemata, die aus Konfigurationsdateien geladen werden, die semantische Rollen (Verzeichnis, Symlink, Socket, git-modifiziert) spezifischen Stilen zuordnen. Sie können ein Community-Theme von eza-community/eza herunterladen, in Ihre Konfiguration einfügen oder Ihr eigenes erstellen, damit jedes Terminal, das Sie nutzen, unmissverständlich Ihnen gehört.
Meistere die Ansicht: Von Gittern zu Bäumen
Die Rasteransicht ist der Ausgangspunkt von eza. Standardmäßig packt sie Dateinamen in ein mehrspaltiges Raster, das deine Terminalbreite nutzt, um das unordentliche, einspaltige Durcheinander zu vermeiden, das man oft von ls erhält. In dieser Ansicht erhältst du weiterhin Farben, Icons und Git-Markierungen, sodass ein einfaches `eza` bereits informativer ist als `ls -F`.
Wenn Sie Details benötigen, ist der lange Überblick das Arbeitspferd. `eza -l` wechselt zu einer langen Auflistung mit Berechtigungen, Eigentümern, Gruppen, Größen, Zeitstempeln und optionalem Git-Status in einer sauberen, ausgerichteten Tabelle. Kombinieren Sie `-l` mit `-a`, um versteckte Dateien anzuzeigen, oder mit `--group-directories-first`, um Ordner ganz oben in der Liste zu halten.
Manchmal braucht man Dichte, nicht Dekoration. `eza --oneline` druckt einen Eintrag pro Zeile, ideal für Skripting, das Pipen in `fzf` oder das Überfliegen großer Verzeichnisse ohne horizontales Scrollen. Fügen Sie `--sort=size` oder `--sort=modified` hinzu, um dies in einen schnellen visuellen Bericht über Ihre größten oder neuesten Dateien zu verwandeln.
Entwickler neigen zu `eza --tree`. Die Baumansicht durchläuft rekursiv Verzeichnisse und zeigt eine vollständige Hierarchie mit Zeichen für Kästchen, Symbolen und Farben an, sodass geschachtelte Verzeichnisse wie `src`, `tests` und `migrations` sofort verständlich werden. Führen Sie `eza --tree src` in einem JavaScript- oder Rust-Repo aus, und Sie erhalten eine Projektkarte, die jede `ls -R`-Textwand übertrifft.
Der Baum-Ausgabe kann in realen Monorepos explodieren, daher bringt eza eine scharfe Bremse mit: `--level`. Verwenden Sie `eza --tree --level=2`, um nur die obersten zwei Ebenen eines Node-Arbeitsbereichs zu sehen, oder `--level=4`, um tiefer in `packages/` zu schauen, ohne in `node_modules` zu ertrinken. Diese Tiefenbegrenzung verwandelt `--tree` von einer Spielerei in ein tägliches Werkzeug zum Navigieren durch komplexe Strukturen.
Für mehr Kontrolle bietet eza eine Handvoll gezielter Anzeige-Schalter. `--header` fügt langen Listen eine Kopfzeile hinzu, die Spalten wie Berechtigungen, Größe und Änderungszeit beschriftet, was perfekt ist, wenn Sie Ausgaben für Dokumentationen oder Fehlermeldungen screenshots. `--inode` zeigt Inode-Nummern an, die beim Debuggen von harten Links oder seltsamem Dateisystemverhalten von unschätzbarem Wert sind.
Power-User können diese Flags stapeln. Ein Befehl wie `eza -la --header --inode --tree --level=2` bietet Ihnen in einem Rutsch eine reichhaltig annotierte, zweistufige Projektübersicht. Für tiefere Einblicke in diese Modi und weitere Beispiele erläutert eza: Vereinfachte Dateiansicht mit verbesserter 'ls'-Funktionalität – Linuxiac zusätzliche Kombinationen und Randfälle.
Befehle Deine Daten: Sortieren und Filtern wie ein Profi
Befehlszeilen-Power-User leben und sterben nach Sortierreihenfolgen. Eza behandelt das Sortieren als ein erstklassiges Feature mit einem einzigen, konsistenten `--sort`-Flag anstelle der Mischmasch-Optionen von `ls`. Sie können nach Größe (`--sort=size`), Änderungszeit (`--sort=modified` oder `--sort=mtime`), Erstellungszeit (`--sort=created` oder `--sort=ctime`), Name (`--sort=name`) oder Erweiterung (`--sort=extension`) sortieren.
Während `ls` das Verhalten über Flags wie `-t`, `-S` und `-X verteilt, fasst eza es in lesbare, skriptfreundliche Argumente zusammen. Benötigen Sie die größten Artefakte ganz oben in Ihrem Build-Verzeichnis? `eza --sort=size --reverse target` zeigt die größten Übeltäter sofort an.
Das Umkehren einer Sortierung offenbart einen der wichtigsten Unterschiede zu `ls`. Anstatt separate Umkehr-Varianten wie `-tr` oder `-Sr` zu verwenden, nutzt eza immer dasselbe `--reverse`-Flag. Sie geben an, wonach sortiert werden soll, und kehren es dann um: `eza --sort=modified --reverse` bedeutet „älteste zuerst“, ohne geistige Verrenkungen erforderlich.
Diese Designentscheidung zahlt sich aus, wenn Sie Optionen verketten. Eine lange Git-Ansicht Ihres Repos, mit den neuesten Änderungen oben, wird zu `eza -l --git --sort=modified`. Möchten Sie die gleiche Liste, aber mit dem ältesten überflüssigen Daten, die Sie wahrscheinlich löschen sollten? Fügen Sie `--reverse` hinzu und sonst ändert sich nichts.
Sortierung allein bringt dich nur halbwegs ans Ziel; ernsthafte Projekte benötigen Filterung. Eza liefert `--group-directories-first`, das Ordner an den Anfang der Liste schiebt, ohne seltsame Locale-Tricks oder Shell-Hacks. Kombiniere es mit `--sort=name` für ein sauberes, vorhersehbares Layout in jeder Sprache.
Wenn Sie den Lärm reduzieren müssen, fungieren `--only-dirs` und `--only-files` wie chirurgische Filter. Durchsuchen Sie einfach Ihre Verzeichnisstruktur mit `eza --only-dirs --group-directories-first --tree`, oder inspizieren Sie nur kompilierte Binärdateien und Assets mit `eza --only-files --sort=size`. Keine `find`-Beschwörungen erforderlich.
Diese Flags beginnen, sich wie Abfrageoperatoren anzufühlen, wenn man sie stapelt. Häufige Kombinationen aus der realen Welt sind: - `eza --group-directories-first --sort=extension --only-files src` - `eza -l --sort=created --reverse --only-files dist` - `eza --sort=modified --only-dirs --git`
Dieser letzte Befehl zeigt nur Verzeichnisse an, sortiert nach aktueller Aktivität, mit integriertem Git-Status – eine Live-Hitzekarte, wo Ihre Arbeit tatsächlich stattfindet.
Ihr Terminal, jetzt mit Symbolen und Hyperlinks
Ikonen verwandeln eza von einem intelligenten `ls` in etwas, das tatsächlich modern wirkt. Fügen Sie `--icons` zu einem beliebigen Befehl hinzu, und die Dateilisten erhalten plötzlich winzige, aussagekräftige Glyphen: ein Python-Logo für `.py`, ein Dokumentensymbol für `.md`, ein Zahnrad für ausführbare Dateien, unterschiedliche Symbole für Symlinks und versteckte Dateien. Verzeichnisse erhalten Ordnersymbole, und Git-Repos stechen sofort hervor, wenn sie mit `--git` und `--git-repos` kombiniert werden.
Diese Icons hängen von Nerd Fonts ab, einem beliebten Projekt, das entwicklerfreundliche Schriftarten mit Tausenden von zusätzlichen Glyphen modifiziert. Nerd Fonts bündelt Symbole aus Projekten wie Font Awesome, Devicons und Octicons in über 50 Basis-Schriftarten. Sie installieren kein Plugin für eza; Sie installieren eine Schriftart, die Ihr Terminal rendern kann.
Auf macOS umfasst eine typische Einrichtung drei Schritte. Laden Sie eine Nerd Font wie FiraCode Nerd Font oder JetBrainsMono Nerd Font von nerdfonts.com herunter, installieren Sie sie durch Doppelklicken und Klicken auf „Font installieren“ und richten Sie dann Ihr Terminal darauf ein. Linux-Nutzer können oft über Paketmanager installieren (zum Beispiel `sudo pacman -S nerd-fonts-jetbrains-mono`) und es dann in den Einstellungen ihres Emulators auswählen.
Die Konfiguration von iTerm2 ist unkompliziert. Öffnen Sie die Einstellungen → Profile → Text, klicken Sie auf den Schriftartenwähler und wählen Sie Ihre installierte Nerd Font (sowohl die reguläre als auch die nicht-ligierten Varianten funktionieren). Danach zeigt `eza --icons` sofort Sprachlogos, Archivsymbole für `.zip` und `.tar.gz`, Datenbanksymbole für `.sql` und mehr an.
Kitty-Nutzer bearbeiten `kitty.conf` direkt. Setzen Sie eine Zeile wie `font_family JetBrainsMono Nerd Font` und starten Sie Kitty neu oder laden Sie die Konfiguration neu. Da Kitty modernes Unicode klar unterstützt, werden Icons scharf dargestellt, ohne fehlerhaft ausgerichtete Spalten oder beschädigte Boxzeichen.
Die visuelle Dichte steigt, aber die kognitive Belastung sinkt. Wenn Sie etwas wie `eza -l --git --icons` ausführen, kann Ihr Auge nach Folgendem scannen: - Ordnersymbole, um die Verzeichnisstruktur nachzuvollziehen - Repo-Symbole, um Git-Wurzeln zu erkennen - Sprachsymbole, um `.ts`, `.rs`, `.go` auf einen Blick zu finden
Hyperlinks bringen eza noch weiter in das Gebiet der grafischen Benutzeroberflächen. Mit `--hyperlink` gibt eza OSC 8 Escape-Sequenzen aus, die viele moderne Terminals als anklickbare Links erkennen. Dateinamen werden zu URLs, die auf `file://`-Pfade verweisen, sodass ein Klick darauf den Finder auf macOS, Ihren Dateimanager auf Linux oder einen Editor, der sich als Handler registriert, öffnen kann.
Die Unterstützung variiert je nach Emulator, aber iTerm2, Kitty und aktuelle Builds des GNOME Terminals verarbeiten diese Links zuverlässig. Kombinieren Sie `--hyperlink` mit `--icons --long --git`, und Sie erhalten ein kompaktes, klickbares, visuell codiertes Dashboard Ihres Arbeitsverzeichnisses – alles mit einem einzigen Befehl.
Eza vs. Die Alte Wache: ls, exa und LSD
Der altehrwürdige ls ist nach wie vor auf jedem Unix-ähnlichen System verfügbar, aber sein Funktionsumfang stagniert seit Jahrzehnten. Keine Farben standardmäßig, keine Git-Unterstützung, keine Icons und keine Hyperlinks. Auch wenn Sie Aliase und LS_COLORS hinzufügen können, jonglieren Sie dennoch mit Flags, die zwischen GNU Coreutils, BSD und macOS variieren.
Moderne Ersatzlösungen lassen sich in drei Gruppen unterteilen: exa, lsd und eza. Alle drei streben nach ansprechenderen Voreinstellungen, Farben und besserer Metadaten. Nur eine von ihnen wird jedoch im Jahr 2024 intensiv weiterentwickelt.
Kurzer Überblick über die Funktionen:
- 1ls: C, allgegenwärtig, minimale Funktionen, kein Git, keine Icons
- 2exa: Rust, auf GitHub archiviert, Farbe, grundlegendes Git, einige Baumunterstützung
- 3lsd: Rost, meinungsstarke Symbole und Farben, kein tiefes Git, langsamere Funktionsgeschwindigkeit
- 4eza: Rust, aktive Gemeinschaft, Git-lastig, Icons, Hyperlinks, Bäume, Themen
Kernunterscheidungsmerkmal: exa ist effektiv eingefroren. Das GitHub-Repository ist archiviert, mit offenen Problemen und unmerged PRs, die sich ansammeln. Eza begann als Fork, aber die Maintainer der eza-Community haben es in ein dynamisches Projekt umgebaut, das häufige Releases, moderne Flags und schnell verfügbare Distro-Pakete bietet.
Die Leistung bleibt bei dem Rust-Trio konstant hoch. Benutzerbenchmarks zeigen, dass eza und lsd Verzeichnislisten in wenigen Millisekunden auf mittleren Bäumen durchführen und in der Regel GNU ls übertreffen, sobald vergleichbare Farb- und Klassifizierungsflaggen aktiviert werden. Eza nutzt das asynchron-freundliche Ökosystem von Rust und enge Systemaufrufe, um die Latenz niedrig zu halten, selbst wenn `--git` oder `--tree` ganze Repositories durchlaufen.
Die Funktionstiefe ist der Bereich, in dem eza überlegen ist. Sie erhalten `--git`, `--git-repos`, `--git-ignore`, `--colour-scale`, `--icons`, `--hyperlink`, `--only-dirs` und `--sort` mit Feldern wie `size`, `modified`, `created` und `extension`. Lsd konzentriert sich auf ansprechende Standardeinstellungen und Symbole, überspringt jedoch erweiterte Git-Metadaten; exa bietet einige Git-Informationen, versäumt jedoch neuere Flags und Bugfixes, die eza hinzugefügt hat.
Ecosystem und Dokumentation besiegeln den Deal. Eza ist in Homebrew, großen Linux-Repos verfügbar und bietet ausführliche Man-Seiten sowie Community-Themen und Konfigurationssnippets. Für eine ausführlichere Analyse führt Transform Your Terminal with eza: The Upgrade ls Deserved – DEV Community durch praktische Setups und Aliase.
Insgesamt machen die aktive Entwicklung, die Rust-Leistung und ein Git-erstes Funktionsset eza zur leistungsfähigsten `ls`-Alternative, die Sie 2024 installieren können.
Gestaltung Ihres ultimativen Eza-Workflows
Beginnen Sie mit Aliasen. Die meisten Menschen gewöhnen sich `eza` mit ein paar effektiven Abkürzungen in `~/.zshrc` oder `~/.bashrc` an:
- 1`alias ll="eza -l --gruppenverzeichnisse-zuerst --git --symbole"`
- 2`alias la="eza -la --Gruppendirektorien-zuerst --git --Symbole"`
- 3`alias lt="eza --baum --stufe=2 --lang --git --symbole"`
- 4`alias l1="eza --einzeilig --sort=name"`
- 5`alias lg='eza -l --git --git-ignore --group-directories-first'`
Diese fünf decken 90 % der täglichen Auflistung ab: detaillierte, alle Dateien, Baumansicht, einspaltige Ansicht und Git-bewusste Ansichten.
Als Nächstes erstellen Sie eine persönliche Standardeinstellung und binden Sie diese an `ls` selbst. Viele Entwickler tun dies:
`alias ls="eza --verzeichnisse-zuerst --icons --git --kopfzeile"`
Von dort aus fügen Sie Flags hinzu, die zu Ihrem Arbeitsablauf passen: `--all`, wenn Sie in Dotfiles leben, `--binary`, wenn Ihnen menschenlesbare Größen wichtig sind, oder `--colour-scale=size`, wenn Sie ständig große Artefakte in `dist/` oder `node_modules/` suchen.
Power-User stapeln mehrere Verhaltensweisen in spezialisierten Ansichten. Beispiele:
- 1`alias lcode='eza -l --git --git-ignore --sort=modifiziert --verzeichnisgruppen-zuerst src tests'`
- 2`alias lbig="eza -l --sort=size --reverse --colour-scale=size"`
- 3`alias lrecent='eza -l --sort=modified --reverse --colour-scale=age'`
- 4`alias ldirs="eza --nur-verzeichnisse --gruppenverzeichnisse-zuerst --baum --stufe=3"`
Diese fassen komplexe Absichten wie "zeige mir die aktuellen Codeänderungen" oder "zeige die größten Dateien" in 5–6 Zeichen zusammen.
Die Anpassung endet nicht bei Flaggen. Eza unterstützt Themen, sodass Sie ein Community-Thema in das Konfigurationsverzeichnis einfügen (siehe GitHub) und sofort wechseln können, oder Farben für Berechtigungen, Symlinks und Git-Zustände mithilfe des Themenleitfadens manuell anpassen. Kombinieren Sie das mit Nerd Fonts, `--hyperlink` und `--icons`, um Ihr Terminal in ein kompaktes, navigierbares Dashboard zu verwandeln.
Jetzt bist du dran: Poste deine besten `eza`-Aliase, Themen-Setups und verrückten Einzeiler in die Kommentare. Der Drei-Flaggen-Trick von jemand anderem könnte dein neues Standard-Setup werden.
Häufig gestellte Fragen
Was ist Eza?
Eza ist ein modernes, funktionsreiches Kommandozeilenwerkzeug, das den traditionellen 'ls'-Befehl ersetzt. Geschrieben in Rust, bietet es eine bessere Leistung, farbcodierte Ausgaben, Git-Integration, Dateisymbole, eine Baumansicht und mehr.
Ist eza ein direkter, sofort einsatzbereiter Ersatz für 'ls'?
Hauptsächlich, aber nicht vollständig. Während du 'ls' für den täglichen Gebrauch in 'eza' umwandeln kannst, unterscheiden sich einige Flags und Sortierverhalten. Zum Beispiel erfordert das Umkehren einer Liste nach Zeit eine andere Flag-Kombination in eza im Vergleich zu ls.
Wie installiere ich eza?
Sie können eza mit Paketmanagern wie Homebrew für macOS (`brew install eza`) oder dem Paketmanager Ihrer Distribution für Linux installieren (z. B. `sudo apt install eza`).
Warum benötige ich eine Nerd Font, um Icons mit eza zu verwenden?
Nerd Fonts sind spezielle Schriftarten, die mit einer großen Anzahl von Glyphen und Symbolen versehen sind. Eza verwendet diese Symbole, um verschiedene Dateitypen und Ordner darzustellen. Daher muss eine Nerd Font in Ihrem Terminal installiert und konfiguriert werden, um sie korrekt anzuzeigen.