Linux/Dateien und Verzeichnisse
Einige der hier vorgestellten Befehle werden den Älteren von Ihnen vielleicht von MS-DOS[1] 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.
Inhaltsverzeichnis
Kommando | Abkürzung | Erläuterung |
---|---|---|
pwd | print working directory | aktuelles Arbeitsverzeichnis ausgeben |
cd | change directory | Arbeitsverzeichnis wechseln |
ls | list | Inhalt des Arbeitsverzeichnisses ausgeben |
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 der 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 |
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.
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.
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
).