[[Vorlage(Getestet, general)]] {{{#!vorlage Wissen [:Terminal:Ein Terminal öffnen] }}} [[Inhaltsverzeichnis(2)]] [[Bild(Wiki/Icons/terminal.png, 48, align=left)]] '''ls''' steht für '''l'''i'''s'''t und zeigt den Inhalt eines Verzeichnisses bzw. Ordners an. Damit ist es einer der am häufigsten verwendeten Befehle auf der Kommandozeile. = Installation = Das Programm '''ls''' ist im essentiellen Paket * '''coreutils''' von Ubuntu enthalten und deshalb auf jedem System installiert. = Syntax = Die allgemeine Syntax von ls ist [1] {{{#!vorlage Befehl ls [OPTION] [VERZEICHNIS] }}} Wird kein Verzeichnis angeben, so wird der Inhalt des aktuellen Verzeichnisses aufgelistet. = Optionen = ls kennt eine Reihe von Optionen: {{{#!vorlage Tabelle Option Beschreibung +++ `-A` oder `--almost-all` listet auch [:Versteckte_Dateien:versteckte Dateien] auf +++ `-a` oder `--all` listet auch [:Versteckte_Dateien:versteckte Dateien] und Verzeichniseinträge wie . und .. auf +++ `-l` Datei-Informationen in Langform ausgeben +++ `-c` Datum der letzten Änderung +++ `-C` Namen nebeneinander ausgeben (Standard) +++ `-d` oder `--directory` Verzeichnisse und keine Inhalte anzeigen +++ `-h` oder `--human-readable` gibt in Kombination mit `-l` die Größe in einem für Menschen besser lesbaren Format aus +++ `-i` Inode-Nummer vor Name ausgeben +++ `-m` Namen in einer Zeile ausgeben +++ `-R` oder `--recursive` Auch in Unterverzeichnisse absteigen }}} Alle Optionen kann man in den [:man:Manpages] von ls nachlesen ([man_de:ls:Online-Version] {de}). = Beispiele = == Allgemeines Beispiel == Eine der häufigsten Options-Kombination ist sicherlich `-la`, da so alle Dateien, auch die versteckten, in Langform ausgegeben werden. Dies kann z.B. so aussehen: {{{#!vorlage Befehl ls -la }}} {{{ drwxr-xr-x 5 eigentümer gruppe 4096 Mär 19 21:30 . drwxr-xr-x 4 eigentümer gruppe 4096 Mär 17 00:05 .. drwxr-xr-- 5 eigentümer gruppe 4096 Mär 17 2010 Artwork-Themes -rw-r--r-- 1 eigentümer gruppe 337 Mär 17 10:36 .bash_aliases -rw------- 1 eigentümer gruppe 284 Mär 17 22:39 .bash_history -rw-r--r-- 1 eigentümer gruppe 414 Mär 17 00:05 .bash_profile -rw-r--r-- 1 eigentümer gruppe 261 Mär 19 10:37 .bashrc -rw-rw-r-- 1 eigentümer gruppe 164926 Mai 18 2010 Dokumentation.pdf }}} Die vorstehende Ausgabe stellt folgende Informationen bereit: {{{#!vorlage Tabelle <-2 cellstyle="white-space:nowrap;">drwxr-xr-x 5 eigentümer gruppe 4096 Mär 19 21:30 . +++ [#Dateitypen Dateityp] [:Rechte:] Anzahl [:ln#Hardlinks:Hardlinks] [:Benutzer und Gruppen:Eigentümer Gruppe] Dateigröße Änderungszeit (bei Dateien älter als 6 Monate wird das Jahr anstelle der Uhrzeit^^(*)^^ angezeigt) Name; Ein Punkt bezeichnet das Verzeichnis selber, zwei Punkte das übergeordnete Verzeichnis. }}} ^^(*)^^ mit der Option `--full-time` kann man auch unabhängig vom Alter die ganz genaue Uhrzeit ausgeben lassen Mit dem folgenden Befehl kann man sich ausschließlich die Unterordner des aktiven Ordners anzeigen lassen: {{{#!vorlage Befehl ls -ld */ }}} {{{ drwxr-xr-x 6 eigentümer gruppe 4096 Sep 23 2020 Bilder/ drwxr-xr-x 6 eigentümer gruppe 4096 Apr 4 09:19 Dokumente/ drwxr-xr-x 2 eigentümer gruppe 4096 Aug 22 08:09 Downloads/ drwxr-xr-x 2 eigentümer gruppe 4096 Mai 19 2018 Musik/ drwxr-xr-x 2 eigentümer gruppe 4096 Mai 19 2018 Öffentlich/ drwxr-xr-x 2 eigentümer gruppe 4096 Jun 28 2018 Schreibtisch/ drwxr-xr-x 2 eigentümer gruppe 4096 Sep 25 2020 Videos/ drwxr-xr-x 2 eigentümer gruppe 4096 Mai 19 2018 Vorlagen/ }}} Man kann das Verzeichnis angeben, dessen Inhalt ausgegeben werden soll: {{{#!vorlage Befehl ls /etc }}} {{{ ... }}} Mit Hilfe von ls und einer [:Shell/Umleitungen:Umleitung] kann man die Ausgabe ausdrucken lassen bzw. daraus eine druckbare Datei erzeugen. Dies funktioniert z.B. so: {{{#!vorlage Befehl cd /pfad/zum/ordner ls > verzeichnis.txt }}} Nun kann man die Datei '''verzeichnis.txt''' z.B. mit einem Textverarbeitungsprogramm oder Editor öffnen und drucken. == Dateitypen == Bei der Ausgabe mit der Option ''-l'' gibt der erste Buchstabe den Dateityp an. Das `d` steht für „Directory“ (= Verzeichnis) und zeigt an, dass man es mit einem Ordner zu tun hat. Neben dem `d` gibt es noch andere Zeichen, die verschiedene Dateitypen kennzeichnen: ||<-4 rowclass=titel> Mögliche Dateitypen|| || Typ||Bezeichnung||Beschreibung|| ||`d` || Directory || Verzeichnis/Ordner || ||`-` || File || Datei (unabhängig davon ob es ein Programm oder z. B. ein Office-Dokument ist) || ||`l` || Link || Verknüpfung (siehe [:ln:]) || ||`c` || Character Device || Dies ist eine Gerätedatei, welche unter '''/dev''' zu finden ist. Es handelt sich dabei um ein zeichenorientiertes Gerät (z.B. ein Modem) || ||`b` || Block Device || Dies ist eine Gerätedatei welche unter '''/dev''' zu finden ist. Es handelt sich dabei um ein blockorientiertes Gerät (z.B. Festplatte oder USB-Stick) || ||`s` || Socket || Dies ist ein sog. Unix Domain Socket, welches von vielen Programmen für die Interprozess-Kommunikation verwendet wird. || ||`p` || Pipe || Dies ist eine Pipe, und alles was ein Programm in diese schreibt, kann von einem anderen Programm ausgelesen werden. Auch die Pipe wird für Interprozesskommunikation verwendet. || == Zusammenspiel mit anderen Programmen == `ls` kann auch wie jedes andere Konsolenprogramm mit anderen Programmen kombiniert werden. Ein Beispiel ist das folgende, welches fast alle verfügbaren Programm auflistet mit einer zusätzlichen Kurzbeschreibung, dies wird dann in [:less:] angezeigt {{{#!vorlage Befehl ls /bin /sbin /usr/bin /usr/sbin /usr/bin/X11 | xargs whatis | less }}} Navigiert werden kann über die [[Vorlage(Tasten, up)]]-, [[Vorlage(Tasten, down)]]-, [[Vorlage(Tasten, left)]]-, [[Vorlage(Tasten, right)]]-Tasten, [[Vorlage(Tasten, Bild-Auf)]]- und [[Vorlage(Tasten, Bild-Ab)]]-Tasten. Verlassen der Befehlsübersicht durch Tippen von [[Vorlage(Tasten, q)]]. Sucht man alle Befehle, die etwas mit einem bestimmten Suchwort zu tun haben, kann man folgenden Befehl verwenden. Als Beispiel für das Suchwort "Kopieren" dient hier der Wortstamm "kopier" und dasselbe auf Englisch, "copy": {{{#!vorlage Befehl ls /bin /sbin /usr/bin /usr/sbin /usr/bin/X11 | xargs whatis | grep -Ei "kopier|copy" }}} Um herauszufinden, wie viele Treffer dies erzeugt (teils doppelt gelistet), kann man ein "` | wc -l`" an das Ende der Befehlszeile anhängen. = Anpassen von ls = Die Ausgabe von ls ist in der Regel farbig, d.h. Programme haben eine andere Farbe als Verzeichnisse usw. Dieses Verhalten kann mit Hilfe von [:dircolors:] eingestellt werden. Außerdem kann man für häufig benutzte `ls`-Befehle mit Optionen gleich einen [:alias:] anlegen, das erleichtert das Arbeiten im Terminal. = Links = * [:exa:] - moderne Alternative zu ls * [http://www.gnu.org/software/coreutils/ GNU Core Utilities] {en} * [:Shell/Befehlsübersicht:] {Übersicht} Übersicht über verschiedene Shell-Befehle # tag: Shell