Titel: EasyLinux - guru-ls.txt
Pfad: http://www.easylinux.de/Artikel/ausgabe/2003/08/073-guru-ls/index.html


Dateien anzeigen mit ls

Mit List und Tücke

von Elisabeth Bauer


Den schlichten Befehl ls kennen viele, doch der souveräne Umgang mit seinen praktischen Optionen will erlernt sein. Hier verraten wir Ihnen, was Sie schon immer über ls wissen wollten, aber nicht zu fragen wagten.

Üblicherweise ist ls, der Befehl, mit dem man Verzeichnisinhalte anzeigt, das zweite Kommando nach cd, das der Linux-Anfänger lernt. Ohne ihn kann man mit der Shell auch wirklich nicht viel anfangen. ls bringt jedoch noch eine Menge nützlicher Optionen mit, die die Arbeit in der Shell erleichtern -- und genau um diese geht es in diesem Guru-Training.

Der einfachste Aufruf ist schlicht ls ohne Argumente. In diesem Fall tut ls das nahe Liegende: Er listet den Inhalt des Verzeichnisses auf, in dem man sich gerade befindet.

Wer sich andere Verzeichnisse anzeigen lassen will, greift am besten zur Tabulatortaste: Mit ls / und ein- oder zweimaligen Druck auf [Tab] präsentiert die Shell die Inhalte des Wurzelverzeichnis /, ein e und ein abermaliger Druck auf [Tab] vervollständigt das Kommando zu

ls /etc

das die Inhalte von /etc, dem zentralen Konfigurationsverzeichnis, auflistet.

Schon öfter erwähnt wurde das Kommando ls -a. Mit dieser Option zeigt ls auch versteckte Dateien an. Wechseln Sie mit der Eingabe von cd in Ihr Home-Verzeichnis und rufen ls -a auf: Das Ergebnis ist beeindruckend. Fast alle benutzten Programme haben dort eine mit Punkt beginnende versteckte Konfigurationsdatei oder wie KDE und Mozilla gleich einen ganzen Ordner angelegt.

Um herauszufinden, was in diesen Ordnern alles steckt, rufen wir ls rekursiv mit der Option -R auf. ls -R .mozilla wirft den kompletten Inhalt des Mozilla-Verzeichnisses samt aller Unterordner aus -- eine Liste, die in der Regel deutlich zu lang für das Terminal-Fenster ist. Statt jetzt mühselig mit Mausklicks auf die Scrollbar hochzublättern, benutzt man einen beliebten Trick unter Shell-Anhängern: Blättern Sie mit der Taste [Pfeil hoch] zum gerade eingegeben Kommando zurück und hängen noch ein | less dahinter, also

ls -R .mozilla | less

Ein beherzter Druck auf [Return] und siehe da: Statt durchzurattern, zeigt die Shell jetzt den Anfang der Liste an. Mit der Leertaste blättern Sie genau eine Seite weiter, und mit q beenden Sie diesen Pager ("Blätterer") wieder. Hier haben wir eines der eingebauten Features der Shell genutzt, eine so genannte Pipe ("Röhre"). Wovon man auf der grafischen Oberfläche nur träumen kann, nämlich dass Programme Ihre Daten und Ergebnisse an andere Anwendungen weiterreichen, ist in der Shell längst Wirklichkeit. Mit einem kurzen Zeichen, dem Pipe-Symbol |, das Sie über [AltGr] mit Kleinerzeichen < erhalten, lassen sich Shell-Programme wie Rohre nach Belieben aneinanderstöpseln. Das, was in diesen Rohren fließt, sind die Daten, mit denen man die Befehle üblicherweise füttert, und die Ausgaben, die ein Befehl zurückgibt -- das können Verzeichnis- oder Dateinamen, Suchbegriffe oder Textschnipsel sein. In unserem Beispiel übergeben wir die Ausgabe des ls-Befehls an das Kommando less, das gemütliches Blättern in einem Text erlaubt.

Wer die Ausgabe nicht in der Shell haben will, sondern sich beispielsweise mit ls -R von seiner Musiksammlung ein Inhaltsverzeichnis anfertigen will, benutzt ein anderes Feature der Shell: die Umleitung, im Fachenglisch Redirection. An den vielfältigen Möglichkeiten, wie man in der Shell Umleitungen bauen kann, hätte jedes Straßenbauamt ein sadistisches Vergnügen; uns genügt für den Anfang jedoch genau eine: Mit dem Größerzeichen > lenken wir das, was ein Befehl normalerweise in die Shell ausgibt, in eine Datei.

ls -R musik > musiksammlung.txt

erzeugt eine Textdatei musiksammlung.txt mit den Inhalten des Ordners musik und dessen Unterordnern. Diese Liste können Sie sich natürlich in der Shell mit less musiksammlung.txt gleich wieder anzeigen lassen.

Röhren, Umleitungen, alles schön und gut, mag jetzt jemand einwenden, aber jeder noch so schlichte grafische Datei-Manager zeigt mehr Infos an als ls -- und sortieren kann man damit auch.

Doch auch dafür hat ls natürlich Optionen parat. Wenn Sie ls mit -l ("long") aufrufen, gibt er seine Liste in einem ausführlichen Format aus (siehe Abbildung 1). Viele Linux-Distributionen setzen dafür ein Alias, so dass Sie anstelle von ls -l auch kurz ll eingeben können.

Abb. 1: Der Aufruf "ls -l" listet die Inhalte eines Verzeichnis in ausführlicher Form auf. So erfährt man Größe, Änderungsdatum, Eigentümer und gesetzte Rechte der Dateien.

Alles klar? Nein? Dann machen wir uns an die Erklärung der einzelnen Bestandteile dieser Liste. Der Buchstabe ganz links in jeder Zeile kennzeichnet den Typ der gelisteten Datei. Im Beispiel in Abbildung 1 kommen drei Typen vor: Ein Bindestrich steht für eine einfache Datei -- ob das jetzt eine HTML-Datei, ein Tar-Archiv oder ein MP3-Stück ist, ist der Shell egal. Das d steht für directory, markiert also Verzeichnisse. Der dritte Typ ist etwas seltener. Hier sieht man, dass sich auch die rechte Spalte dadurch unterscheidet, dass gleich zwei Namen, getrennt von einem Pfeil, angezeigt werden. l bedeutet, dass die Datei ein symbolischer Link ist, der Dateiname nach dem Pfeil ist die reale Datei, auf die der Link zeigt.

Die nächsten neun Zeichen jeder Zeile geben die gesetzten Rechte an. Unter Linux gibt es drei Klassen von Rechteinhabern: den Eigentümer, die Gruppe und den Rest der Welt. Weiter unterscheidet Linux drei Aktionen, die man mit einer Datei anstellen kann: Lesen, Schreiben und Ausführen. Zählt man das zusammen, kommt man auf neun; und genau dafür stehen diese Kürzel. Den Ordner Desktop darf nur der Eigentümer lesen (r für "read"), schreiben (w für "write") und ausführen (x für "execute"), die anderen dürfen nichts (-). Einen Ordner auszuführen ergibt nicht gerade viel Sinn, deshalb steht das x in diesem Fall für das Recht, den Ordner zu öffnen.

Praktischerweise gibt ls -l daneben auch gleich den Eigentümer und die Eigentümergruppe aus, hier hat also eli volle Rechte -- kein Wunder, handelt es doch um ihr Home-Verzeichnis.

Durch einen Zufall ist auch eine Datei (shebang.mac.txt) hierhin geraten, die dem Administrator root gehört. Aus der Rechteanzeige wird klar: eli kann diese Datei zwar lesen, z. B. in einem Text-Editor öffnen, da das Leserecht für "World" im dritten Tripel gesetzt ist, aber weder ändern noch löschen -- beides sind Schreibaktionen.

Die weiteren Spalten sind einfacher zu verstehen. Die Zahlenfolge stellt die Dateigröße dar, dahinter kommt das Änderungsdatum. Wer mit den Byte-Größen nicht klar kommt, ruft ls als ls -lh auf. -h steht für "human readable", menschenlesbar, und gibt die Größe, wenn nötig, in besser verständlichen KB oder MB aus (siehe Abbildung 2).

Abb. 2: "ls -lh" gibt Dateigrößen in menschenlesbarer Form aus.

Sortieren kann ls natürlich auch. ls -lt sortiert in Langformat nach dem Änderungsdatum, mit -r ("reverse") kehrt man die Sortierfolge um. Eine sehr praktische Option ist -X: Damit ordnet ls die Ausgabe nach Dateiendungen, gruppiert also Dateitypen wie .txt oder .mp3 zusammen. Wer öfter viele numerierte Dateien der Form name-1, name-2 bis name-100 auflisten will, freut sich über die Option -v, die nicht alphabetisch, sondern nach Versionsnummern sortiert. name-100 kommt damit nicht hinter name-1, sondern dort, wo es hingehört: am Schluss. (eba)

Der Werkzeugkasten für die Shell

Einige Utensilien sollten Sie beim Arbeiten mit der Shell immer parat haben:

  • [Tabulator]-Taste: vervollständigt Befehle, Datei- und Verzeichnisnamen.
  • [Pfeil-hoch] und [Pfeil-runter]: blättern in der Liste der vorher eingegebenen Kommandos.
  • Anführungszeichen (""): Dateinamen mit Leerzeichen sollten immer von Anführungszeichen umschlossen sein, damit die Shell sie als zusammengehörig erkennt.
  • Backslash (\): Alternativ lässt sich ein Leerzeichen auch mit einem vorangehenden \ maskieren.
  • Wildcards: * interpretiert die Shell als beliebige Zeichen, ? steht für genau ein beliebiges Zeichen.
  • cd verzeichnis wechselt in ein anderes Verzeichnis.
  • ls verzeichnis listet Verzeichnisinhalte.
  • pwd zeigt das aktuelle Verzeichnis an ("print working directory").
  • man kommando zeigt das Handbuch ("manual") zu einem Befehl an.
  • info kommando gibt ausführlichere Informationen als man (nicht zu jedem Kommando vorhanden).

Guru-Training

Es geht auch ohne, aber manchmal eben besser mit der Shell. Nach diesem Motto stellen wir in dieser Rubrik Profi-Tipps zum Umgang mit Linux vor. Mit der gefürchteten DOS-Kommandozeile hat die Linux-Shell nicht viel gemein: Dank automatischer Namensvervollständigung und anderen praktischen Features ist sie das Profiwerkzeug unter Linux, mit dem sich viele alltägliche Aufgaben einfach, elegant und effizient erledigen lassen. Sie müssen dazu nicht tausende von Kommandos auswendig kennen -- oft erzielen ein paar kurze Befehle schon große Wirkung.

Dieser Online-Artikel kann Links enthalten, die auf nicht mehr vorhandene Seiten verweisen. Wir ändern solche "broken links" nur in wenigen Ausnahmefällen. Der Online-Artikel soll möglichst unverändert der gedruckten Fassung entsprechen.


Feedback zu dieser Seite | Datenschutz | © 2017 COMPUTEC MEDIA GmbH | Last modified: 2007-01-25 16:23