[[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 +++ `--hyperlink` Dateinamen sind im Terminal klickbar und können schnell geöffnet werden +++ `-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 [[BR]] (bei Dateien älter als 6 Monate wird das Jahr anstelle der Uhrzeit angezeigt. Mit der Option `--full-time` kann man auch unabhängig vom Alter die ganz genaue Uhrzeit ausgeben lassen) Name; Ein Punkt bezeichnet das Verzeichnis selber, zwei Punkte das übergeordnete Verzeichnis. }}} 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 tableclass="zebra_start3" 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. Im Folgenden ein Beispiel, welches fast alle verfügbaren Programm mit einer zusätzlichen Kurzbeschreibung auflistet. Dies wird dann in [:less:] angezeigt: {{{#!vorlage Befehl ls /bin /sbin /usr/bin /usr/sbin /usr/bin/X11 | xargs whatis | less }}} Navigiert 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 mit einem bestimmten Suchwort, 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