Linux/Dateien und Verzeichnisse

Aus SELFHTML-Wiki
Wechseln zu: Navigation, Suche

Navigieren durch die Verzeichnisstruktur

Einige der hier vorgestellten Befehle werden Ihnen vielleicht von MS-DOS und ähnlichen Betriebssystemen her bekannt vorkommen. Das liegt daran, dass MS-DOS ursprünglich auch mal als eine Art Unix-Derivat – ähnlich wie Linux – gedacht war. Was die damalige (1981) Garagenfirma Microsoft dann jedoch aus der Idee eines „abgespeckten Unix für PCs“ machte, hatte mit Unix nicht mehr allzu viel zu tun.

Kommando Abkürzung Erläuterung
pwd print working directory aktuelles Arbeitsverzeichnis ausgeben
cd change directory Arbeitsverzeichnis wechseln
ls list Inhalt des Arbeitsverzeichnisses ausgeben
Beispiel
you@dort:~/featureartikel$ pwd<ENTER>
/home/speedesign/featureartikel

you@dort:~/featureartikel$ ls -l<ENTER>
total 48
-rw-r--r--    1 you wwwusr      136 Feb  2 19:48 index.html
drwxr-sr-x    2 you wwwusr     4096 Feb  2 19:52 meinverzeichnis
-rw-r--r--    1 you wwwusr     3893 Feb  2 19:48 test.html
-rw-r--r--    1 you wwwusr    10310 Feb  2 19:48 titelleiste_mitte.gif
-rw-r--r--    1 you wwwusr     8678 Feb  2 19:48 titelleiste_oben.gif
-rw-r--r--    1 you wwwusr    10611 Feb  2 19:48 titelleiste_unten.gif

you@dort:~/featureartikel$ cd meinverzeichnis/<ENTER>
you@dort:~/featureartikel/meinverzeichnis$ cd ..<ENTER>
you@dort:~/featureartikel$
Die meisten er hier verwendeten Kommandos sind selbsterklärend. Auf den ls -l-Aufruf möchte ich noch etwas näher eingehen. Würde ls ohne weitere Parameter aufgerufen werden, so erhält man eine Liste der Dateien des aktuellen Verzeichnisses, in der die Namen der Dateien nebeneinander stehen und keine weiteren Angaben ausgegeben werden. Dies kann für manche Anwendungen (z.B. Shellskripten) wichtig sein. Der -l-Schalter bewirkt die "long"-Ausgabe und ist der am häufigsten verwendete.
Beim cd-Kommando ist es wichtig zu wissen, dass Pfadangaben unter Linux stets durch einfache Schrägstriche getrennt werden, nicht wie unter DOS durch umgekehrte Schrägstriche (Backslashes). Richtig sind also Angaben wie cd /usr/home/web oder cd ../imgages. Wie unter DOS stehen zwei Punkte (..) für das "Mutterverzeichnis" des aktuellen Verzeichnisses, und ein Punkt (.) für das aktuelle Verzeichnis.

Dateien und Verzeichnisse

Für das Kopieren, Verschieben oder Umbenennen von Dateien und Verzeichnissen gibt es einen kleinen Satz von Standardkommandos.

Kommando Abkürzung Erläuterung
cp copy Datei oder Verzeichnis kopieren
mv move Datei oder Verzeichnis verschieben oder umbenennen
mkdir make directory Verzeichnis erstellen
rm remove Datei oder Verzeichnis entfernen
Beispiel
you@dort:~/featureartikel$ mkdir neuesverzeichnis<ENTER>
you@dort:~/featureartikel$ ls<ENTER>
index.html  meinverzeichnis  neuesverzeichnis  test.html  titelleiste_mitte.gif
titelleiste_oben.gif  titelleiste_unten.gif

you@dort:~/featureartikel$ mv *.html neuesverzeichnis/<ENTER>
you@dort:~/featureartikel$ cp *.gif neuesverzeichnis/<ENTER>
you@dort:~/featureartikel$ cd neuesverzeichnis/<ENTER>
you@dort:~/featureartikel/neuesverzeichnis$ ls<ENTER>
index.html  test.html  titelleiste_mitte.gif  titelleiste_oben.gif  titelleiste_unten.gif

you@dort:~/featureartikel/neuesverzeichnis$ rm titelleiste_*<ENTER>
you@dort:~/featureartikel/neuesverzeichnis$ ls<ENTER>
index.html  test.html

you@dort:~/featureartikel/neuesverzeichnis$ rm *.html<ENTER>
you@dort:~/featureartikel/neuesverzeichnis$ cd ..<ENTER>
you@dort:~/featureartikel$ rm -r neuesverzeichnis/<ENTER>
you@dort:~/featureartikel$
Das erste Kommando mkdir legt ein neues Verzeichnis an. Den Erfolg dieser Aktion lassen wir uns gleich durch die Eingabe von ls bestätigen. Als nächstes bewegen wir alle html-Dateien im Arbeitsverzeichnis mit dem mv-Kommando nach neuesverzeichnis. mv verlangt als Parameter die Quell- und Zieldateien getrennt durch ein Leerzeichen. Wenn Sie einen Dateinamen mit Leerzeichen angeben müssen, können sie dieses durch ein Backslash (\) escapen: mv Datei\ mit\ Leerzeichen.txt foo.txt. Danach werden im Beispiel alle gif-Dateien in das neue Verzeichnis mittels cp kopiert.
Der Stern (*) in den Dateinamen ist auch unter Linux ein Wildcardzeichen, das auf beliebige Zeichenkombinationen passt. Es gibt auch das Fragezeichen (?), welches nur auf genau ein Zeichen passt.
Als nächstes wird mit cd in das neue Verzeichnis gewechselt und mit ls wieder der Inhalt ausgegeben. Daran sehen wir, dass unsere Aktionen erfolgreich waren. Anschließend löscht das rm-Kommando alle Dateien, die mit titelleiste_ beginnen. Danach sind alle HTML-Dateien dran. Mit cd .. kann in das nächsthöhere, oder auch "Mutterverzeichnis" gewechselt werden. Achten Sie auf die Eingabe des Leerzeichens zwischen cd und .., denn das nimmt Ihnen Linux übler als MS-DOS. Zum Schluss wird das gerade erstellte Verzeichnis mit Hilfe von rm -r komplett gelöscht. Der r-Schalter steht für "rekursiv" und würde auch evtl. vorhandene Dateien und Unterverzeichnisse mit löschen. Alternativ können Sie auch das Kommando rmdir Verzeichnis verwenden, dazu müsste das Verzeichnis aber komplett leer sein.
Hinweis:
Möchten Sie eine Datei von irgendwoher in das aktuelle Verzeichnis kopieren oder verschieben, so verwenden Sie für die Zielangaben einfach einen Punkt (.).
Beispiel
you@dort:~/featureartikel$ cp ../index.html .<ENTER>
you@dort:~/featureartikel$ mv texte/aktuell/foo.html .<ENTER>
Das erste Kommando kopiert die Datei index.html aus dem Mutterverzeichnis in das aktuelle. Das zweite Kommando verschiebt die Datei foo.html aus den Verzeichnissen innerhalb des Arbeitsverzeichnisses in das aktuelle.

Dateiinhalte anzeigen und durchsuchen

Oft möchte man beim Turnen durch den Verzeichnisbaum den Inhalt der einen oder anderen Datei sehen. Auch dafür gibt es einige Standardkommandos.

Kommando Abkürzung Erläuterung
cat concatenate Inhalt einer oder mehrerer Dateien ausgeben
more (Pager) file perusal filter for crt viewing Programm zum Scrollen durch große Ausgaben
less (Pager) opposite of more Wie more, nur besser
grep get regular expression Ausgabe mit regulären Ausdrücken durchsuchen

Die grundlegende Verwendungsweise ist bei den Kommandos cat, more und less gleich. Hinter dem Kommando fügen Sie einfach den Namen der Datei an, die Sie anzeigen möchten (gegebenenfalls mit Pfadnamen).

cat gibt den Inhalt der Datei einfach aus, egal wie lang dieser ist. Sie können dem cat-Kommando auch mehrere Dateien durch Leerzeichen getrennt angeben, oder Wildcards benutzen. Die Dateiinhalte werden dann einfach hintereinander ausgegeben.

more zeigt nur soviel Inhalt an, wie auf die Bildschirmseite passt. Durch Drücken der Leertaste kommen Sie dann eine Seite weiter. Am Dateiende wird more einfach beendet. Durch Drücken von q (quit) können Sie die Anzeige auch vorzeitig selbst beenden.

Der Pager less bietet Ihnen da schon mehr Möglichkeiten. Sie können den Inhalt mit den Cursortasten oder <Bild-Auf> bzw. <Bild-Ab> durchblättern. Wenn Sie einen Slash (/) gefolgt von einem Suchbegriff eingeben, werden die Treffer hell hinterlegt. Nach einer Suche können Sie mit den Tasten n zum nächsten bzw. N zum vorigen Treffer blättern. Auch hier beendet q die Anzeige.

grep
you@dort:~/featureartikel$ grep -n title test.html<ENTER>
5:      <title>speedtest</title>

you@dort:~/featureartikel$ grep -n body test.html index.html<ENTER>
test.html:14:<body bgcolor="Silver">
test.html:89:</body>
index.html:7:<body>
index.html:9:</body>
grep nimmt als Argumente einen Suchausdruck, der wie ein regulärer Ausdruck behandelt wird und einen oder mehrere Dateinamen (auch mit Wildcards) an. Die Dateien werden zeilenweise durchsucht und die Zeilen, in denen das Muster passt, werden ausgegeben. Der Schalter -n bewirkt die Ausgabe der Zeilennummern. Hinweise zu regulären Ausdrücken, die grep verarbeitet, finden Sie in der Hilfe zu grep (am Shellprompt eingeben: man grep).