{"id":10835,"date":"2023-09-03T12:58:07","date_gmt":"2023-09-03T10:58:07","guid":{"rendered":"https:\/\/u-labs.de\/portal\/?p=10835"},"modified":"2023-09-03T13:14:16","modified_gmt":"2023-09-03T11:14:16","slug":"das-bessere-schonere-ls-dateien-mit-exa-im-ueberblick","status":"publish","type":"post","link":"https:\/\/u-labs.de\/portal\/das-bessere-schonere-ls-dateien-mit-exa-im-ueberblick\/","title":{"rendered":"Das bessere, sch\u00f6nere &#8222;ls&#8220;: So beh\u00e4ltst du mit Exa deine Dateien &#038; Ordner im \u00dcberblick"},"content":{"rendered":"<p>Als Einsteiger ist <strong>ls<\/strong> wohl eines der ersten Werkzeuge, die man kennen lernt. <strong>Exa<\/strong> ist ein m\u00e4chtigerer Ersatz f\u00fcr <strong>ls<\/strong>, der einige n\u00fctzliche Zusatzfunktionen bietet. Es kann sowohl auf Raspberry Pis, als auch jedem anderen GNU\/Linux-System verwendet werden. Dieser Beitrag stellt exa vor, zeigt die Installation und Anwendung im Alltag &#8211; inklusive eigenen Aliasen, um es mit wenigen, kurzen Befehlen aufrufen zu k\u00f6nnen.<\/p>\n<h2 class=\"wp-block-heading\">Welche Vorteile bietet exa gegen\u00fcber dem altbew\u00e4hrten ls?<\/h2>\n<p>Die <strong><a href=\"https:\/\/www.gnu.org\/software\/coreutils\/\" data-type=\"link\" data-id=\"https:\/\/www.gnu.org\/software\/coreutils\/\" target=\"_blank\" rel=\"nofollow\">GNU coreutils<\/a><\/strong> geh\u00f6ren &#8211; wie der Name bereits vermuten l\u00e4sst &#8211; zu den grundlegenden Werkzeugen jeder GNU\/Linux-Distribution. Sie enthalten eine ganze Reihe bekannter Befehle wie <strong>cp<\/strong> zum kopieren, <strong>rm<\/strong> l\u00f6scht Dateien\/Ordner sowie auch <strong>ls<\/strong>, um den Inhalt eines Verzeichnisses anzuzeigen: Welche Dateien bzw. Ordner befinden sich darin, wie gro\u00df sind diese, welche Berechtigungen wurden vergeben usw. <\/p>\n<p>Das GNU <strong>ls<\/strong> ist nicht grundlegend schlecht oder kaputt, im Gegenteil: Man kann damit den Inhalt eines Verzeichnisses sehen. In der Hilfe (<strong>ls &#8211;help<\/strong>) sind zudem ein paar n\u00fctzliche Optionen, um damit besser arbeiten zu k\u00f6nnen. Ich nutze beispielsweise meistens die Listansicht (<strong>-l<\/strong>) und f\u00fcr uns Menschen besser lesbare Gr\u00f6\u00dfenangaben (<strong>-h<\/strong> f\u00fcr <em><strong>h<\/strong>uman readable<\/em>). Sp\u00e4testens in gr\u00f6\u00dferen Verzeichnissen gestaltet <strong>-c<\/strong> (<strong><em>c<\/em><\/strong><em>olor<\/em>) die Ausgabe angenehmer, da Ordner und Dateien anhand von verschiedenen Eigenschaften (z.B. Archive oder ausf\u00fchrbare Skripte) dadurch in einer eigenen Farbe dargestellt werden:<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/08\/2023-08-13_19-13.png\"><img loading=\"lazy\" decoding=\"async\" width=\"884\" height=\"357\" src=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/08\/2023-08-13_19-13.png\" alt=\"\" class=\"wp-image-10836\" srcset=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/08\/2023-08-13_19-13.png 884w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/08\/2023-08-13_19-13-300x121.png 300w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/08\/2023-08-13_19-13-768x310.png 768w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/08\/2023-08-13_19-13-730x295.png 730w\" sizes=\"auto, (max-width: 884px) 100vw, 884px\" \/><\/a><\/figure>\n<\/div>\n<p>Exa ist ein quelloffenes Werkzeug, dass hier und bei anderen Funktionen noch weiter geht: Es kennt mehrere Dateitypen und gruppiert diese in verschiedenen Farben. Au\u00dferdem nutzt es die Farben an zus\u00e4tzlichen Stellen, wie etwa den Dateiberechtigungen.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/08\/image-2.png\"><img loading=\"lazy\" decoding=\"async\" width=\"924\" height=\"709\" src=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/08\/image-2.png\" alt=\"\" class=\"wp-image-10839\" srcset=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/08\/image-2.png 924w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/08\/image-2-300x230.png 300w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/08\/image-2-768x589.png 768w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/08\/image-2-469x360.png 469w\" sizes=\"auto, (max-width: 924px) 100vw, 924px\" \/><\/a><\/figure>\n<\/div>\n<p>Interessant finde ich dabei auch die integrierte Baum-Ansicht (<strong>-T<\/strong> f\u00fcr <strong>t<\/strong>ree), wenn man die Inhalte von Unterordnern ebenfalls sehen m\u00f6chte. Das kann <strong>ls<\/strong> nicht, hierf\u00fcr m\u00fcsste man ansonsten auf das Werkzeug <strong>tree<\/strong> zur\u00fcckgreifen. Doch <strong>tree<\/strong> zeigt standardm\u00e4\u00dfig lediglich Ordner- und Dateinamen ohne weitere Informationen an. Zwar kann man \u00fcber Parameter zus\u00e4tzliche Spalten einblenden, das Ergebnis finde ich nicht zufriedenstellend. Au\u00dferdem kennt <strong>tree<\/strong> weniger g\u00e4ngige Dateitypen, wie <strong>ls<\/strong>.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/08\/image-1.png\"><img loading=\"lazy\" decoding=\"async\" width=\"447\" height=\"204\" src=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/08\/image-1.png\" alt=\"\" class=\"wp-image-10838\" srcset=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/08\/image-1.png 447w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/08\/image-1-300x137.png 300w\" sizes=\"auto, (max-width: 447px) 100vw, 447px\" \/><\/a><\/figure>\n<\/div>\n<p>Dar\u00fcber hinaus bietet <strong>exa<\/strong> sinnvollere Standardeinstellungen, wie etwa Gr\u00f6\u00dfenangaben mit Pr\u00e4fix (K f\u00fcr KB, M f\u00fcr MB usw). Das kann <strong>ls<\/strong> zwar auch, aber nur mit dem Schalter <strong>-h<\/strong>. Gerade f\u00fcr Einsteiger, die das nicht wissen, eher verwirrend, wenn man (gr\u00f6\u00dfere) Dateien in Bytes angegeben sieht. Mit <strong>&#8211;icons<\/strong> k\u00f6nnen neuere Versionen zus\u00e4tzlich zu den verschiedenen Farben von Dateitypen auch Symbole anzeigen, wie man sie aus dem grafischen Dateiexplorer kennt. Auch in Git-Repositorys lassen sich durch <strong>&#8211;git <\/strong>zus\u00e4tzliche Informationen \u00fcber den Status von Dateien anzeigen.<\/p>\n<h2 class=\"wp-block-heading\">So installierst du exa auf dem Raspberry Pi und anderen Debian-Systemen<\/h2>\n<p>Es existieren offizielle Pakete f\u00fcr Debian und damit auch das Raspberry Pi OS. <a href=\"https:\/\/the.exa.website\/#installation\" data-type=\"link\" data-id=\"https:\/\/the.exa.website\/#installation\" target=\"_blank\" rel=\"nofollow\">Auch eine Reihe weiterer Distributionen werden unterst\u00fctzt<\/a>: Fendora, Arch Linux, Gentoo und Ubuntu. Dort k\u00f6nnt ihr die Installation mit dem gleichnamigen Paket \u00fcber einen einzigen Befehl durchf\u00fchren. Im Falle von Debian\/Ubuntu und anderen davon abstammenden Distributionen:<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">sudo apt install exa\n$ exa --version\nexa v0.9.0<\/code><\/pre>\n<p>Ein Nachteil ist allerdings, dass ihr &#8211; zumindest bei konservativeren Distributionen wie Debian &#8211; in der Regel eine etwas \u00e4ltere Version erhaltet. So wird Debian\/Raspberry Pi OS 11 Bullseye mit Version 0.9 ausgeliefert. In der bereits seit April 2023 verf\u00fcgbaren Version 0.10.1 <a href=\"https:\/\/the.exa.website\/features\/git\" data-type=\"link\" data-id=\"https:\/\/the.exa.website\/features\/git\" target=\"_blank\" rel=\"nofollow\">wurde zus\u00e4tzlich Git integriert<\/a> sowie mit <strong>&#8211;icons<\/strong> farbige Symbole, welche die Dateien nochmals besser voneinander abheben.<\/p>\n<p>F\u00fcr 32 Bit ARM sowie die X86-Architektur stehen Bin\u00e4rdateien in den <a href=\"https:\/\/github.com\/ogham\/exa\/releases\" data-type=\"link\" data-id=\"https:\/\/github.com\/ogham\/exa\/releases\" target=\"_blank\" rel=\"nofollow\">GitHub-Releases<\/a> bereit. Wer mit einem 64 Bit Betriebssystem unter ARM die aktuellste Version nutzen m\u00f6chte, muss den Quellcode selbst kompilieren. Die kompilierte 32 Bit Version ist n\u00e4mlich gegen entsprechende 32 Bit Bibliotheken gelinkt und daher nicht ohne weiteres lauff\u00e4hig. In beiden F\u00e4llen m\u00fcssen neue Versionen zudem h\u00e4ndisch eingepflegt werden, im Falle des APT-Paketes werden sie dagegen \u00fcber die zentrale APT-Paketverwaltung aktuell gehalten.<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">daniel@pi:~ $ .\/bin\/exa\n-bash: .\/bin\/exa: No such file or directory\ndaniel@pi:~ $ file .\/bin\/exa\n.\/bin\/exa: ELF 32-bit LSB pie executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter \/lib\/ld-linux-armhf.so.3, for GNU\/Linux 3.2.0, BuildID[sha1]=4fdce3100ba7ed705051623777438ffbaa88a589, stripped\ndaniel@pi:~ $ file \/bin\/gzip\n\/bin\/gzip: ELF 64-bit LSB pie executable, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter \/lib\/ld-linux-aarch64.so.1, BuildID[sha1]=56e21ec05e56424ad63fb692b1108934a5052cf5, for GNU\/Linux 3.7.0, stripped\ndaniel@pi:~ $ uname -a\nLinux pi 6.1.21-v8+ #1642 SMP PREEMPT Mon Apr  3 17:24:16 BST 2023 aarch64 GNU\/Linux<\/code><\/pre>\n<h3 class=\"wp-block-heading\">Die aktuellste Version kompilieren und installieren<\/h3>\n<p>Das Kompilieren gestaltet sich aufw\u00e4ndiger, da zuerst einige Abh\u00e4ngigkeiten installiert werden m\u00fcssen. Zudem dauert der Vorgang vor allem auf dem Raspberry Pi (4) aufgrund seiner geringen Leistung relativ lange. Ihr m\u00fcsst zuerst Rust installieren:<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">sudo apt install curl build-essential gcc make\ncurl --proto &#039;=https&#039; --tlsv1.2 -sSf https:\/\/sh.rustup.rs -o install-rust.sh\n# Ihr solltet fremde Skripte immer zuerst mit einem Editor (z.B. nano install-rust.sh) pr\u00fcfen!\nsh install-rust.sh\n# Nachdem die Auswahlliste (Option 1,2,3) erscheint, gebt ihr 1 f\u00fcr &quot;Proceed with installation&quot; ein und dr\u00fcckt Enter\nsource &quot;$HOME\/.cargo\/env&quot;<\/code><\/pre>\n<p>Anschlie\u00dfend noch die von exa ben\u00f6tigten Bibliotheken, den Quellcode vom GitHub-Repository laden und mit dem Rust-Werkzeug <strong>cargo<\/strong> den Buildprozess starten:<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">sudo apt install libgit2-dev cmake\n\ngit clone https:\/\/github.com\/ogham\/exa.git\ncd exa\ncargo build --release<\/code><\/pre>\n<p>Die Bin\u00e4rdatei liegt im Unterpfad <strong>target\/release<\/strong>. Neben der Version erh\u00e4lt sie den Zusatz <strong>+git<\/strong>, woran man erkennen kann, dass dies enthalten ist:<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">daniel@pi:~\/exa-build\/exa $ .\/target\/release\/exa --version\nexa - list files on the command-line\nv0.10.1 [+git]\nhttps:\/\/the.exa.website\/<\/code><\/pre>\n<p>Falls ihr exa bereits \u00fcber das APT-Paket installiert habt, m\u00fcsst ihr dies zuvor mit <strong>apt remove exa<\/strong> entfernen. Da es sich um eine einzelne Bin\u00e4rdatei handelt, w\u00fcrde ich sie in <strong>\/usr\/local\/bin<\/strong> verschieben. Da sich dieser Pfad in <strong>$PATH<\/strong> befindet, k\u00f6nnt ihr sie nun ohne Pfadangabe aus jedem Verzeichnis heraus aufrufen:<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">sudo mv target\/release\/exa \/usr\/local\/bin\nexa --version\nexa - list files on the command-line\nv0.10.1 [+git]\nhttps:\/\/the.exa.website\/<\/code><\/pre>\n<p>Bei einer Installation au\u00dferhalb der APT-Paketquellen m\u00fcsst ihr Aktualisierungen h\u00e4ndisch einspielen! Ich empfehle daher dringend, so etwas zu dokumentieren und regelm\u00e4\u00dfig auf neue Versionen zu pr\u00fcfen.<\/p>\n<h2 class=\"wp-block-heading\">Exa im Alltag nutzen<\/h2>\n<p>Ruft man exa ohne Parameter auf, \u00e4hnelt die Ausgabe <strong>ls<\/strong>. Die standardm\u00e4\u00dfige Grid-Ansicht finde ich eher un\u00fcbersichtlich und nutze daher folgenden Aufruf:<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">exa -l -F -g -h --icons<\/code><\/pre>\n<p><strong>-l<\/strong> aktiviert die Listenansicht, <strong>-F<\/strong> zur Klassifizierung nach Dateitypen (nachgestellter Schr\u00e4gstrich bei Ordnern, Sternchen bei ausf\u00fchrbaren Dateien, @ f\u00fcr symbolische Links usw), <strong>-g<\/strong> zeigt neben des Eigent\u00fcmer-Benutzers zus\u00e4tzlich die Gruppe an, <strong>-h<\/strong> aktiviert die Kopfzeile zur Beschriftung und <strong>&#8211;icons<\/strong> sorgt f\u00fcr farbige Symbole vor den Dateinamen, die zum Typ passen. So erkennt man beispielsweise Skripte auf den ersten Blick. Damit die Icons funktionieren, ben\u00f6tigt ihr eine Schrift, welche diese unterst\u00fctzt. Aus meiner fr\u00fcheren Erfahrung ist das vor allem unter Windows oft nicht der Fall. Ebenfalls n\u00fctzlich ist die Gruppierung von Ordnern, dies funktioniert mit <strong>ls<\/strong> und exa durch den <strong>&#8211;group-directories-first<\/strong> Parameter. Dann <\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/08\/image.png\"><img loading=\"lazy\" decoding=\"async\" width=\"585\" height=\"130\" src=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/08\/image.png\" alt=\"\" class=\"wp-image-10840\" srcset=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/08\/image.png 585w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/08\/image-300x67.png 300w\" sizes=\"auto, (max-width: 585px) 100vw, 585px\" \/><\/a><\/figure>\n<\/div>\n<p>Anfangs hatte ich die praktische M\u00f6glichkeit der Baumansicht angesprochen, die l\u00e4sst sich mit <strong>-T<\/strong> (<strong><em>t<\/em><\/strong><em>ree<\/em>) aktivieren. Hier macht es jedoch Sinn, zus\u00e4tzlich die Tiefe zu begrenzen &#8211; vor allem in tiefen Verzeichnisb\u00e4umen wird die Ausgabe ansonsten sehr lang und damit wiederum un\u00fcbersichtlich. Mit <strong>-L 2<\/strong> begrenze ich die Tiefe auf zwei Ebenen. Der Ordner, dessen Inhalt exa auflistet, ist dabei die erste Ebene. Somit erhalten wir die Inhalte von darin befindlichen Unterordnern, aber keine Unterordner von Unterordnern.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/08\/image-3.png\"><img loading=\"lazy\" decoding=\"async\" width=\"653\" height=\"224\" src=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/08\/image-3.png\" alt=\"\" class=\"wp-image-10841\" srcset=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/08\/image-3.png 653w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/08\/image-3-300x103.png 300w\" sizes=\"auto, (max-width: 653px) 100vw, 653px\" \/><\/a><\/figure>\n<\/div>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">exa -T -l -F -g -h --icons -L 2<\/code><\/pre>\n<p>Nun bringt exa zwar sinnvollere Standard-Einstellungen mit, einiges ist jedoch trotzdem nicht aktiviert. Diesen Befehl mit den zig Parametern m\u00f6chte nat\u00fcrlich keiner jedes mal eintippen, um den Verzeichnisinhalt zu sehen. Bew\u00e4hrt haben sich die K\u00fcrzel <strong>l<\/strong> und <strong>ll<\/strong>, die von manchen Distributionen als Alias f\u00fcr <strong>ls<\/strong> gesetzt werden, um z.B. <strong>-c<\/strong> f\u00fcr die farbige Ausgabe zu aktivieren. Dazu \u00f6ffnet ihr die ~\/.bash_aliases <a href=\"https:\/\/u-labs.de\/portal\/dateien-mit-dem-raspberry-pi-bearbeiten-4-wege-fuer-einsteiger-grafisch-und-mit-nano-vim-auf-der-konsole\/\" data-type=\"post\" data-id=\"7514\">mit einem Texteditor eurer Wahl<\/a> (z.B. vim\/nano &#8211; im Zweifel nano nehmen)<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">vim ~\/.bash_aliases<\/code><\/pre>\n<p>f\u00fcgt folgende beiden Zeilen ein, um die Aliase <strong>l<\/strong> und <strong>ll<\/strong> anzulegen:<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">alias l=&quot;exa -l -F -g -h --icons --group-directories-first&quot;\nalias ll=&quot;l -T -L 2&quot;<\/code><\/pre>\n<p>Anschlie\u00dfend die <strong>.bashrc <\/strong>(darin l\u00e4dt Debian standardm\u00e4\u00dfig die <strong>.bash_aliases<\/strong> automatisch) neu laden:<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">source ~\/.bashrc<\/code><\/pre>\n<p>Nun k\u00f6nnt ihr <strong>l<\/strong> f\u00fcr die einfache Ansicht ohne Unterverzeichnisse nutzen, also vergleichbar mit <strong>ls<\/strong>. M\u00f6chtet ihr Unterordner ebenfalls anzeigen, erledigt dies <strong>ll<\/strong> bis zur zweiten Ebene. Nat\u00fcrlich l\u00e4sst sich das auch bei Bedarf anpassen, etwa <strong>ll -L 3<\/strong> f\u00fcr eine Ebene mehr.<\/p>\n<h3 class=\"wp-block-heading\">Die Git-Integration<\/h3>\n<p>Innerhalb eines Git-Repos kann man mit <strong>-l &#8211;git<\/strong> eine zus\u00e4tzliche Spalte einblenden. Da ich den zuvor angelegten Alias verwende, gen\u00fcgt <strong>&#8211;git<\/strong> zur Aktivierung. Testweise habe ich ein leeres Git-Repository angelegt und die Dateien <strong>test<\/strong> sowie <strong>test2<\/strong> in einem Commit zur Versionsverwaltung hinzugef\u00fcgt. Anschlie\u00dfend wurde <strong>test2<\/strong> ver\u00e4ndert sowie <strong>test3<\/strong> neu hinzugef\u00fcgt, ohne diese \u00c4nderungen mit einem weiteren Commit aufzunehmen. Somit zeigt <strong>git status<\/strong>, dass <strong>test2<\/strong> neue \u00c4nderungen aufweist und <strong>test3<\/strong> noch \u00fcberhaupt nicht verfolgt wird. Mit <strong>l &#8211;git<\/strong> aktiviert ihr die Git-Integration von Exa und erhaltet eine neue Spalte. Sie gibt uns entsprechend <strong>M<\/strong> f\u00fcr modifiziert und <strong>N<\/strong> f\u00fcr neu (<strong><em>n<\/em><\/strong><em>ew<\/em>) aus. Bei <strong>test<\/strong> hingegen nichts, da sie mit allen \u00c4nderungen versioniert ist.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/08\/image-4.png\"><img loading=\"lazy\" decoding=\"async\" width=\"715\" height=\"374\" src=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/08\/image-4.png\" alt=\"\" class=\"wp-image-10843\" srcset=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/08\/image-4.png 715w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/08\/image-4-300x157.png 300w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/08\/image-4-688x360.png 688w\" sizes=\"auto, (max-width: 715px) 100vw, 715px\" \/><\/a><\/figure>\n<\/div>\n<p>Sie zeigt derzeit im ersten Zeichen, ob eine Datei \u00c4nderungen enth\u00e4lt, die bereits gestaged wurden, aber noch in keinem Commit enthalten sind. Das Zweite Zeichen zeigt Anpassungen, die nicht gestaged sind. Sie k\u00f6nnen jeweils (N) f\u00fcr neue oder ver\u00e4nderte (M f\u00fcr <em><strong>m<\/strong>odified<\/em>) Dateien annehmen. Falls nicht zutreffend, steht in einem oder beiden ein Minus. Hierf\u00fcr muss \u00fcbrigens Git nicht installiert sein, da diese Funktion mit einer Bibliothek abgebildet wird. Wobei es viele Distributionen ohnehin bereits vorinstalliert haben.<\/p>\n<p>Die Git-Integration ist standardm\u00e4\u00dfig nicht aktiviert, da das Pr\u00fcfen des Git-Status etwas Leistung kostet. Gerade bei gr\u00f6\u00dferen Verzeichnissen wird es dadurch etwas langsamer. Je nachdem womit ihr arbeitet, k\u00f6nnt ihr sie \u00fcber den Alias auch dauerhaft aktivieren.<\/p>\n<h2 class=\"wp-block-heading\">Fazit: Exa ist das bessere und sch\u00f6nere ls<\/h2>\n<p>Exa hat <strong>ls<\/strong> um ein paar n\u00fctzliche Funktionen erg\u00e4nzt. Die Darstellung wird durch die Farben \u00fcbersichtlicher und zudem optisch ansprechender. Leider fehlt der zur Zeit in Debian 12 enthaltenen Version die Git-Integration sowie Symbol-Anzeige vor den Dateinamen. Unter vielen Architekturen l\u00e4sst sich das mit den bereitgestellten Bin\u00e4rdateien recht einfach h\u00e4ndisch l\u00f6sen. Hat man die 64 Bit Edition des Raspberry Pi OS installiert, bleibt nur selbst kompilieren. Dies braucht vor allem auf dem RPI seine Zeit, funktioniert mit Mehraufwand ebenfalls.<\/p>\n<p>Wer m\u00f6chte, kann exa <a href=\"https:\/\/the.exa.website\/docs\/colour-themes\" data-type=\"link\" data-id=\"https:\/\/the.exa.website\/docs\/colour-themes\" target=\"_blank\" rel=\"nofollow\">\u00fcber Umgebungsvariablen noch tiefergehender anpassen<\/a>. Beispielsweise durch benutzerdefinierte Farben, auch f\u00fcr eigene\/exotische \u00c4nderungen, die das Kommandozeilenwerkzeug noch nicht erkennt. Bei mir geh\u00f6rt es mittlerweile zu den Standard-Werkzeugen unter GNU\/Linux-System, ob X86 Server oder Raspberry Pi.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Als Einsteiger ist ls wohl eines der ersten Werkzeuge, die man kennen lernt. Exa ist ein m\u00e4chtigerer Ersatz f\u00fcr ls, der einige n\u00fctzliche Zusatzfunktionen bietet. Es kann sowohl auf Raspberry Pis, als auch jedem anderen GNU\/Linux-System verwendet werden. Dieser Beitrag stellt exa vor, zeigt die Installation und Anwendung im Alltag &#8211; inklusive eigenen Aliasen, um &#8230;<\/p>\n","protected":false},"author":5,"featured_media":10971,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[74],"tags":[1084],"class_list":["post-10835","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-linux","tag-cli"],"_links":{"self":[{"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/posts\/10835","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/comments?post=10835"}],"version-history":[{"count":10,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/posts\/10835\/revisions"}],"predecessor-version":[{"id":10980,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/posts\/10835\/revisions\/10980"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/media\/10971"}],"wp:attachment":[{"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/media?parent=10835"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/categories?post=10835"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/tags?post=10835"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}