Lsd und Eza als Ersatz für Ls?

Aus LinuxUser 02/2024

Lsd und Eza als Ersatz für Ls?

© Pawel Szpytma / 123RF.com

Mehr Übersicht

Hinter Lsd und Eza stecken moderne Umsetzungen des uralten Unix-Befehls Ls in der Programmiersprache Rust.

Vermutlich wissen nur wenige, die Befehle auf der Kommandozeile absetzen, dass manche davon schon 40 oder 50 Jahre auf dem Buckel haben. Häufig stammen sie noch aus Unix-Zeiten oder den Anfängen von GNU. Allerdings liegen zahlreiche der immer wieder genutzten Befehle aus der Unix-Zeit mittlerweile in modernisierten Versionen vor.

Über einige der auf Github gelisteten Alternativen wie Broot oder Ripgrep berichteten wir bereits [1]. Bei vielen dieser Alternativen handelt es sich um Umsetzungen in modernen Programmiersprachen, die oft mehr Geschwindigkeit und erweiterte Informationen bieten, gelegentlich neue Parameter mitbringen und fast immer visuell angepasst daherkommen.

Beim Thema dieses Artikels geht es keinesfalls um eine Luxusvariante von LSD oder um Ecstasy, wie man aus den Namen schließen könnte. Es geht um eine moderne Umsetzung des Unix-Befehls ls aus dem Paket coreutils, der in frühen Versionen seit 1963 existiert und später von Richard Stallman überarbeitet und den GNU-Tools hinzugefügt wurde. Die Abkürzung Ls steht für “list”, denn das Kommando listet Dateien und Verzeichnisse im Terminal auf. Zusammen mit cd zählt ls mit Sicherheit zu den am häufigsten verwendeten Befehlen unter Linux.

Alternativen

Die Bedeutung von Ls unterstreicht der Umstand, dass es mit Exa/Eza [2] und Lsdeluxe [3] gleich zwei moderne Alternativen gibt. Beide stehen in den Repositories der meisten Distributionen zum Abruf bereit. Lsdeluxe finden Sie unter dem Paketnamen lsd. Das seit Kurzem nicht mehr betreute Exa und dessen Fork Eza finden sich ebenso in vielen Distributionen bereit, wobei Exa vermutlich zeitnah verschwindet. In Debian wird ein bereits installiertes Paket exa bei der Installation von eza entfernt. Deshalb beziehen wir uns in diesem Artikel auf Eza.

Lsdeluxe erschien kürzlich in Version 1.0.0, der Großteil der Distributionen führt aber noch ältere Ausgaben. Wir berichteten schon einmal über Lsdeluxe im LinuxUser 02/2020 [4], damals war gerade Version 0.16 aktuell. Auf Github finden Sie Pakete und Archive der jeweils aktuellen Version für Windows, MacOS und Linux für unterschiedliche Architekturen [5]. Auch bei Eza führen die Distributionen nicht immer die derzeit aktuelle Version 0.16.1. Hier stehen auf Github lediglich generische Archive für Linux und Windows zur Verfügung, jedoch keine Binär-Pakete [6]. Die Installation der aktuellen Release erläutert die Installationsanleitung [7].

Icons inklusive

Da Lsd auch Icons abbildet, benötigen Sie dafür einen gepatchten Schriftsatz. Dadurch gestaltet sich die Inbetriebnahme im Vergleich mit Eza etwas aufwendiger. Wie Sie einen Schriftsatz der Nerd Fonts [8] auf Ihrem System integrieren, erfahren Sie im Kasten “Bereitstellen eines Nerd-Fonts”.

Bereitstellen eines Nerd-Fonts

Laden Sie den gewünschten Font von der Webseite herunter [9]. Entpacken Sie das Zip-Archiv und kopieren das resultierende Verzeichnis je nach Distribution nach /usr/share/fonts/ oder /usr/local/share/fonts/. Daraufhin stellen Sie sicher, dass die Fonts die Dateirechte -rw-r-r- besitzen. Anschließend aktualisieren Sie den Font-Cache mit dem Befehl sudo fc-cache -fv. Mit fc-list**|**grep Hack oder der Bezeichnung des gewählten Fonts kontrollieren Sie, ob Ihr Font auf dem System zur Verfügung steht. Abschließend sollte der Befehl echo $'\uf115' ein Ordner-Icon zurückgeben.

Wir haben uns für den gepatchten Font Hack entschieden, da dieser ungepatcht bereits im Terminal zahlreicher Distributionen zum Einsatz kommt und die beste Darstellung der Icons verspricht. Sollten Sie Alpine Linux, Arch Linux oder eines seiner Derivate verwenden, finden Sie die Nerd Fonts dort in den Archiven (Abbildung 1).

Abbildung 1: Um den Nerd Font zu sehen, m&uuml;ssen Sie beim Verwenden des Plasma-Desktops bei der Auswahl des Fonts in der Konsole unten den Haken bei <span class="ui-element">Alle Schriftarten anzeigen</span> setzen.

Abbildung 1: Um den Nerd Font zu sehen, müssen Sie beim Verwenden des Plasma-Desktops bei der Auswahl des Fonts in der Konsole unten den Haken bei Alle Schriftarten anzeigen setzen.

Nach der Installation von Lsd müssen Sie unter Umständen im Profil des verwendeten Terminal-Emulators noch den neuen Schriftsatz auswählen. Damit der Font in der Liste erscheint, müssen Sie als Plasma-Anwender die Konsole neu starten und im Profil unten Alle Schriftarten anzeigen mittels Haken auswählen. Gnome zeigt den Font direkt an.

Wir stellen die Ausgabe der Befehle ls, eza und lsd, jeweils mit den Optionen -lah, in einem von uns für den Test angelegten Verzeichnis mit verschiedenen Dateitypen gegenüber. Die Optionen ergeben eine Auflistung sämtlicher Dateien und Verzeichnisse im Langformat inklusive Berechtigungen, Eigentümer, menschenlesbare Größe und letztem Änderungsdatum (Abbildung 2).

Abbildung 2: Der Vergleich von Ls, Eza und Lsd mit der Option <code>-lah</code> zeigt die Ausrichtung der Kontrahenten in der Standard-Konfiguration. Bei Lsd ist die Option <code>h</code> &uuml;berfl&uuml;ssig, es stellt die Gr&ouml;&szlig;en immer lesbar dar.

Abbildung 2: Der Vergleich von Ls, Eza und Lsd mit der Option -lah zeigt die Ausrichtung der Kontrahenten in der Standard-Konfiguration. Bei Lsd ist die Option h überflüssig, es stellt die Größen immer lesbar dar.

Zum Vergleich

Wie Sie sehen, fallen die Unterschiede zwischen Ls und Eza auf den ersten Blick nicht sonderlich groß aus, während Lsd sich deutlicher absetzt. Eza verbessert die Ausgabe generell mit besseren Standardeinstellungen. Es verwendet Farben zur Unterscheidung von Dateitypen und Metadaten, kennt Symlinks, erweiterte Attribute und Git.

Darüber hinaus beherrscht das Tool eine Baumansicht, deren Tiefe Sie über Level festlegen. Sinn ergibt das ab --level=2, dass eine Ebene tief in Ordner hinabsteigt, --level=3 geht noch eine Ebene tiefer und entspricht vom Informationsgehalt her dem Befehl ls -R, ist ihm aber bei der Darstellung überlegen. Die farblichen Hervorhebungen von Eza lassen sich in Ls genauso konfigurieren. Als Vorteil bleiben somit Symlinks und Git (Abbildung 3).

Abbildung 3: Beide Alternativen bieten neben der herk&ouml;mmlichen Darstellung eine Baumansicht mit verschiedenen Tiefengraden.

Abbildung 3: Beide Alternativen bieten neben der herkömmlichen Darstellung eine Baumansicht mit verschiedenen Tiefengraden.

Bezüglich der Optionen, die Sie jeweils mit --help aufrufen, liegt Ls klar vorn. Während Eza den größten Teil abbildet, konzentriert sich Lsd eher auf die Wichtigsten. Hier müssen Sie selbst entscheiden, was Sie benötigen. Für den überwiegenden Teil der Anwender genügen die reduzierten Optionen der beiden Alternativen jedoch völlig.

Lsd wirkt stark vom Projekt Colorls [10] inspiriert. Allerdings ist es in Rust anstatt in Ruby geschrieben, was Lsd einen Geschwindigkeitsvorteil verschafft. Gegenüber Ls und Eza versieht es die Ausgabe mit mehr Farben und glänzt dementsprechend mit einer ansprechenderen Visualisierung und besserer Übersicht. Den von uns zum Vergleich verwendeten Parameter -h (human readable) braucht es bei Lsd nicht, er ist automatisch gesetzt. Lsd zeigt also immer eine gut lesbare Angabe der Größe von Dateien an.

Die Ausgabe von lsd --help listet die verfügbaren Optionen auf. Im Gegensatz zu der Baumansicht bei Eza rufen Sie diese bei Lsd mit lsd -tree --depth 2 auf (Abbildung 4). Sie lässt sich nach verschiedenen Kriterien sortieren. Mehr Übersicht in Git-Verzeichnissen bietet die Option --gitsort (Abbildung 5)

Abbildung 4: Bei Lsd legen Sie die Tiefe der Darstellung in der Baumansicht &uuml;ber <code>--depth</code> fest. Die Visualisierung gleicht der von Eza, nur etwas farbiger.

Abbildung 4: Bei Lsd legen Sie die Tiefe der Darstellung in der Baumansicht über --depth fest. Die Visualisierung gleicht der von Eza, nur etwas farbiger.


Abbildung 5: Bei Lsd sortieren Sie bei Verzeichnissen mit Git-Anbindung die Ausgabe mit der Option <code>gitsort</code>. Hier sehen Sie, dass der Eintrag <code>release-kde-plasma6</code> noch nicht mit Git synchronisiert wurde.

Abbildung 5: Bei Lsd sortieren Sie bei Verzeichnissen mit Git-Anbindung die Ausgabe mit der Option gitsort. Hier sehen Sie, dass der Eintrag release-kde-plasma6 noch nicht mit Git synchronisiert wurde.

Farben satt

Die Farben, die Lsd standardmäßig nutzt, lassen sich nach eigenen Wünschen einrichten [11]. Das Tool steuert eine Konfigurationsdatei im Yaml-Format, die Sie geschickterweise als ~/.config/lsd/config.yaml anlegen. Auf der Github-Seite des Projekts [12] finden Sie ein dokumentiertes Beispiel (Abbildung 6).

Abbildung 6: Auf der Github-Projektseite von Lsd finden Sie eine Tabelle mit der Bedeutung der Standardfarben in der Ausgabe.

Abbildung 6: Auf der Github-Projektseite von Lsd finden Sie eine Tabelle mit der Bedeutung der Standardfarben in der Ausgabe.

Wenn Eza oder Lsd Sie überzeugt haben und Sie eine der Alternativen künftig anstelle von Ls nutzen möchten, empfiehlt es sich, einen Alias dafür anzulegen. So können Sie weiterhin den Befehl ls verwenden, während im Hintergrund lsd seinen Dienst verrichtet. Wir haben dazu die nachfolgende Codezeile in unsere Shell-Konfigurationsdatei ~/.bashrc eingetragen.

alias ls='lsd --lA --group-directories-first'

Das A anstelle des üblichen a blendet dabei die Verzeichnisanzeige für . und .. aus, während group-directories-first Verzeichnisse oben anzeigt, gefolgt von Dateien. Tragen Sie dort einfach Ihre bevorzugten Optionen ein. Manche Distributionen tragen in der Bashrc bereits Aliase für Ls ein, die Sie mit einem # auskommentieren sollten. Möchten Sie den Alias systemweit einsetzen, schreiben Sie ihn in die Datei /etc/bash.bashrc.. Wenn Sie Zsh oder eine andere Shell nutzen, muss der Alias in die zugehörige Konfiguration.

Fazit

Wenn Ihnen Ls nicht genügend Übersicht bietet, stehen mit Eza und Lsd zwei Alternativen bereit. Eza bringt nach unserem Dafürhalten jedoch nicht genügend Vorteile gegenüber Ls mit. Deshalb erhält Lsd in diesem Vergleich unseren Zuschlag. Sie können Icon-Themes und Farben anpassen und eine eigene Konfiguration erstellen.

Der zusätzlich nötige Schritt mit der Installation des Nerd-Fonts lohnt sich unserer Ansicht nach, da die angezeigten Icons der besseren Übersicht dienen und nicht nur als optisches Gimmick herhalten. Lsd spart im Endeffekt die benötigte Zeit wieder ein, da der Blick auf die Ausgabe schneller zu dem gesuchten Inhalt führt. (tle)

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDF
LinuxUser 02/2024 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben