Der Shell-Befehl ls und die Alternative eza

Für die Shell stehen zahlreiche Befehle zur Verfügung. Einer dieser Befehle ist ls (list), mit dem sich der Inhalt eines Verzeichnisses anzeigen lässt. Probiert es aus: Öffnet das Programm Terminal, das sich im Verzeichnis Dienstprogramme befindet, das wiederum ein Unterverzeichnis eures Programme-Ordners ist. Hier wollen wir uns zunächst ls genauer ansehen. Wer diesen Befehl bereits kennt und stattdessen etwas über die Alternative eza erfahren möchte, sollte zum entsprechenden Abschnitt weiter unten scrollen.

Die Verwendung von ls

Nach dem Start des Terminals befindet man sich standardmäßig im eigenen Benutzerverzeichnis. Gibt man jetzt den Befehl ls ein, erhält man unter macOS eine Ausgabe ähnlich der folgenden Liste:

Applications             Downloads                OneDrive
Applications (Parallels) Library                  Parallels
Desktop                  Movies                   Pictures
Documents                Music                    Public

Die Verzeichnisse „Applications (Parallels)“, „OneDrive“ und „Parallels“ mögen bei euch nicht vorhanden sein, die übrigen Verzeichnisse sollten aber angezeigt werden, handelt es sich doch um die standardmäßig auf einem Mac eingerichteten Ordner.

Unabhängig davon, welche Sprache auf Eurem Mac als primäre Sprache eingerichtet ist, werden in der Shell die englischen Bezeichnungen angezeigt.

Mehr Informationen zu den Dateien und Verzeichnissen erscheinen bei der Verwendung der Option -l. Um einen Eindruck davon zu bekommen, solltet ihr mit dem Befehl cd (change directory) in das Dokumente-Verzeichnis wechseln:

cd Documents

Da die Anwendung Terminal standardmäßig keinen Zugriff auf jene Verzeichnisse hat, die sich im Benutzerverzeichnis befinden (und dazu gehört auch der Ordner „Dokumente“), erscheint ein Fenster mit einem Dialog, der dazu auffordert, den Zugriff zu erlauben. Dies muss mit einem Klick auf „OK“ bestätigt werden.

Nun gebt ihr ls -l ein. Es erscheint eine Liste, die euch die Datei-/Verzeichnisrechte, den Benutzer, die Gruppe, die Größe und das Datum zuletzt vorgenommener Änderungen anzeigt.

Möchte man die versteckten Dateien angezeigt bekommen, ist die Option -a zu verwenden. Optionen können auch zusammengefaßt werden, so dass die Verwendung von

ls -la

möglich ist.

Falls ihr mehr zur Verwendung der Shell bzw. zu Shell-Befehlen auf einem Mac erfahren wollt, möchte ich euch ein von mir geschriebenes Buch ans Herz legen.

Die Verwendung von eza

Kommen wir nun zu eza. Dieser Befehl erfüllt die gleiche Aufgabe wie ls. Das Programm ist aber neuer und in der Programmiersprache Rust geschrieben, während ls in C geschrieben wurde.

Installation mit cargo

Falls auf eurem Rechner Rust installiert ist, kann eza mithilfe des Paketmanagers cargo hinzugefügt werden:

cargo install eza

Das Programm wird dann im Verzeichnis

$HOME/.local/share/cargo/bin/eza

gespeichert.

macOS

Falls auf eurem Mac der Paketmanager Homebrew installiert ist, kann eza über diesen Weg installiert werden:

brew install eza

Wie ihr Homebrew zu macOS hinzufügen könnt, erfahrt ihr in diesem Artikel.

Arch Linux

Das Programm eza ist im Extra-Repository enthalten. Die Installation erfolg mit folgender Anweisung:

pacman -S eza

Ubuntu Linux

Nutzer von Ubuntu müssen zunächst gpg installieren:

sudo apt update
sudo apt install -y gpg

Anschließend kann eza zum System hinzugefügt werden:

sudo mkdir -p /etc/apt/keyrings
wget -qO- https://raw.githubusercontent.com/eza-community/eza/main/deb.asc | sudo gpg --dearmor -o /etc/apt/keyrings/gierens.gpg
echo "deb [signed-by=/etc/apt/keyrings/gierens.gpg] http://deb.gierens.de stable main" | sudo tee /etc/apt/sources.list.d/gierens.list
sudo chmod 644 /etc/apt/keyrings/gierens.gpg /etc/apt/sources.list.d/gierens.list
sudo apt update
sudo apt install -y eza

openSUSE

Die Installation kann über zypper vorgenommen werden:

zypper ar https://download.opensuse.org/tumbleweed/repo/oss/ factory-oss
zypper in eza

Diese Vorgehensweise habe ich der aktuellen Installationsdokumentation entnommen. Auf meiner openSUSE-Version (Leap 15.5) hat dies aber nicht funktioniert. Wenn dies bei euch auch der Fall sein sollte, empfehle ich die Installation von Rust, um anschließend cargo verwenden zu können (siehe oben).

Hilfe zur Installation

Weitere Information zur Installation sind in der Datei INSTALL.md aufgeführt, die sich im Github-Repository von eza befindet.

eza ausführen

Das Programm eza verhält sich so wie ls; die oben gezeigte Option -l funktioniert auch hier:

eza -l

Angewendet in meinem Benutzerverzeichnis, führt dies zu einer Ausgabe, wie in der folgenden Abbildung gezeigt.

Ausführung von eza -l in der Z-Shell (macOS)

Die Installation von eza ist mit etwas Aufwand verbunden. Vielleicht ist dieses Programm aber ein interessanter Ersatz für ls, zumal eza mehr Optionen kennt. Einen Überblick könnt ihr euch in dieser Datei verschaffen.