ZIV

  Linux-Einführung

Befehle 1

 

WWU


Das Dateisystem zurück vor Die Bash

Befehle zur Arbeit mit Dateien

Datei-Information anzeigen: »ls«

ls [option ..] [datei ..]
 

Option Bedeutung
--help Gibt eine Liste aller Optionen aus
-l Ausführlich (long)
-d, --directory Gibt bei Verzeichnissen den Eintrag, nicht den Inhalt aus
-a, --all Gibt auch versteckte (.-) Dateien aus
-t Sortiert nach derÄnderungszeit
-R, --recursive Zeigt auch Unterverzeichnisse an
Zum Beispiel ergibt ls -l / auf meiner Workstation:
$ ls -l /
total 37
drwxr-xr-x    2 root     system       2944 Feb 21 15:06 bin
drwxr-xr-x    3 root     system       1024 Feb 20 16:34 boot
lrwxrwxrwx    1 root     system         12 Feb 28 12:47 cdrom -> /media/cdrom
drwxr-xr-x   18 root     system       2016 Feb 28 11:05 dev
drwxr-xr-x    2 root     system        256 Feb 20 14:52 dfs
drwxr-xr-x   43 root     system       6752 Feb 28 11:05 etc
lrwxrwxrwx    1 root     system         13 Feb 28 12:47 floppy -> /media/floppy
drwxr-xr-x    3 root     system        288 Feb 20 15:21 home
drwxr-xr-x    6 root     system       2720 Feb 21 15:11 lib
drwxr-xr-x    2 root     system        256 Feb 20 15:05 lost+found
drwxr-xr-x    5 root     system        352 Feb 20 15:21 media
drwxr-xr-x    2 root     system        256 Sep 22 15:08 mnt
drwxr-xr-x   13 root     system        608 Feb 20 15:17 opt
drwxr-xr-x    2 root     system        256 Feb 20 15:05 proc
drwx------   10 root     system       1088 Feb 28 11:05 root
drwxr-xr-x    4 root     system       7456 Feb 21 15:06 sbin
-rw-r--r--    1 root     system          0 Feb 28 11:05 success
drwxrwxrwt    4 root     system       1376 Feb 28 16:40 tmp
drwxr-xr-x   17 root     system       1024 Feb 25 11:29 usr
drwxr-xr-x   16 root     system        736 Feb 20 15:15 var
lrwxrwxrwx    1 root     system         10 Feb 28 13:05 zip -> /media/zip

Arbeitsverzeichnis wechseln: »cd«

cd [verzeichnis]

Wie schon erwähnt, ändert cd das Arbeitsverzeichnis. Ohne Argument aufgerufen, wird das Home-Verzeichnis zum Arbeitsverzeichnis. cd ist genau wie pwd ein Kommando, das in der Shell eingebaut ist.

Verzeichnis anlegen: »mkdir«

mkdir (make directory) legt ein Verzeichnis an.

mkdir [option] verzeichnis ..


Option Bedeutung
--help Gibt eine Liste aller Optionen aus
-p, --parents Legt falls nötig auch Verzeichnisse auf dem Pfad an

Verzeichnis löschen: »rmdir«

rmdir (remove directory) löscht ein Verzeichnis, wenn es leer ist.
 
rmdir [option] verzeichnis ..

Option Bedeutung
--help Gibt eine Liste aller Optionen aus

Dateien löschen: »rm«

rm (remove) löscht Dateien und Verzeichnisse. Letztere auch dann, wenn sie nicht leer sind.
 
rm [option] datei ..

Option Bedeutung
--help Gibt eine Liste aller Optionen aus
-i, --interactive Fragt vor dem Löschen
-f, --force Löscht ohne Nachfrage 
-r, -R, --recursive Löscht auch Unterverzeichnisse
Ohne Optionen löscht rm keine schreibgeschützten Dateien.

Dateien kopieren: »cp«

cp (copy) kopiert Dateien. Je nach Befehls-Schreibweise oder verwendeter Befehls-Option kann man eine Datei, viele Dateien oder Datei-Teilbäume, also rekursiv, kopieren. Besondere Sorgfalt ist nötig für ungewöhnliche Dateien wie Gerätedateien, symbolische Links, usw.

Ist das letzte Befehlsargument ein Verzeichnis, so wird die Datei (oder: werden die Dateien) in das Verzeichnis kopiert. Ist das letzte Befehlsargument dagegen kein Verzeichnis, so darf der Befehl nur zwei Datei-Namen als Argumente haben. Soll ein Verzeichnis kopiert werden, so ist die Option »-R« anzugeben.
 
 
cp [option] alt neu
cp [option] datei .. verzeichnis

 

Option Bedeutung
--help Gibt eine Liste aller Optionen aus
-R, --recursive Rekursiv
-p, --preserve Attribute wenn möglich erhalten
-d, --no-dereference Verweise erhalten
-a, --archive -dpR

Dateien bewegen/umbenennen: »mv«

mv (move) bewegt Dateien oder benennt sie um. Das "oder" des letzten Satzes ist nicht-exklusiv.

Prinzipiell werden Dateien im Dateibaum von einer Stelle zur anderen bewegt, indem die Daten unter gleichem Namen kopiert und die Quelle anschließend gelöscht wird. Aus der Besprechung der I-Nodes wissen wir, dass dieses Bild manchmal nicht stimmt.
Dateien können beim Bewegen auch ihren Namen ändern, insbesondere auch dann, wenn sich der Ort im Dateibaum nicht ändert. Und damit ist klar, warum die Aktion "Datei umbenennen" eine Teilmenge der Aktion "Datei bewegen" ist, und warum es keinen eigenen Befehl zum Umbenennen einer Datei gibt.

Wie beim cp-Befehl wird durch die Anzahl und den Typ der Argumente der Verarbeitungs-Modus bestimmt. Bei zwei Argumenten wird die erste Datei mit dem zweitem Namen umbenannt. Bei mehr als zwei Argumenten muss das letzte Argument ein Verzeichnis sein. Die vorher auf der Befehlszeile angegebenen Dateien werden in dieses Verzeichnis bewegt.
 
mv [option] alt neu
mv [option] datei .. verzeichnis


Option Bedeutung
--help Gibt eine Liste aller Optionen aus

Einen Datei-Verweis anlegen: »ln«

ln (link) legt für eine Datei einen weiteren Namen an. Diese Verweise werden Hard-Links genannt und sind nur innerhalb eines Dateisystems und normalerweise nicht für Verzeichnisse möglich. Vergleichen Sie hierzu den Abschnitt über I-Nodes.
Symbolische Verweise dagegen sind spezielle Dateien, die als einzige Aufgabe auf andere Dateien zeigen. Auch Verzeichnisse und Gerätedateien können symbolische Links haben. Aber Vorsicht: Mit symbolischen Links kann man klar strukturierte Dateibäume zu undurchdringlichem Gebüsch verarbeiten, indem man die Zweige zu den Wurzeln hoch-linkt. Deshalb warnen erfahrene System-Adminstratoren: link is a four-letter-word.
 
ln [option] alt neu
ln [option] datei .. verzeichnis

Option Bedeutung
--help Gibt eine Liste aller Optionen aus
-s, --symbolic Legt einen symbolischen Link an

Zugriffsrechte ändern: »chmod«

chmod (change mode bits) ändert die Mode-Bits und damit die Dateizugriffsrechte. Nur der Eigentümer oder der root-User dürfen die Zugriffsrechte ändern.

chmod [option]  MODE  file ...


Option Bedeutung
--help Gibt eine Liste aller Optionen aus
-R, --recursive Ändert Dateien und Unterverzeichnisse rekursiv


Der "OCTAL_MODE" ist schon besprochen worden. "MODE" ist ein Ausdruck der Form:

WERoperRECHT(E)
"WER" bezeichnet die Nutzerkategorie, deren Zugriffsrechte verändert werden soll. Der Operator "oper" sagt, ob das (die) "RECHT(E)" hinzugefügt, entzogen oder exakt wie angegeben gesetzt werden soll(en).
 


WER   oper   RECHT  
u Eigentümer (user) + Fügt ein Recht hinzu. r read
g Gruppe - Entzieht ein Recht. w write
o other (alle anderen) = Weist neue Recht zu und entzieht die alten. x excute
a Alle (=ugo) identisch     s Setzt UID/GID-Bit
        t Sticky Bit
        u, g, o Wie aktuelle u-, g- oder o-Rechte

Beispiele

chmod u=rwx,g=rx,o=x datei
Unabhängig von den vorher geltenden Zugriffrechten bekommt der Datei-Eigentümer alle Rechte, die Gruppe darf lesen und ausführen und alle anderen nur ausführen.
 
chmod g-rwx,o-rwx datei
Die Gruppe und alle anderen Nutzer bekommen alle Rechte entzogen
 
chmod u=rwxs,g=x,o=g datei
Der Eigentümer hat alle Rechte. Zusätzlich wird das SETUID-Bit gesetzt: Während der Programmausführung läuft das Programmm mit den Rechten des Eigentümers. Die Gruppe darf das Programm ausführen. Alle anderen dürfen tun, was auch die Gruppe tun darf.

Dateien (ent)komprimieren: »gzip«

gzip komprimiert eine Datei, die nach der Komprimierung die Namenserweiterung »gz« bekommt. Im Unterschied zu entsprechenden Windows-Programmen werden hier nicht mehrere Dateien in einem Archiv komprimiert gesammelt.
 
gzip [option] [datei]

Option Bedeutung
--help Gibt eine Liste aller Optionen aus
-v, --verbose Ausführliche Ausgaben
-d, --decompress Entkomprimiert (auch gunzip)
-c, --stdout Schreibt auf die Standardausgabe (auch gzcat)

Dateien (ent)komprimieren: »bzip2«

bzip2 komprimiert ebenfalls Dateien. Die Namenserweiterung der komprimierten Dateien ist »bz2«. Verglichen mit gzip komprimiert bzip2 besser und löst deshalb allmählich gzip ab.
 
bzip2 [option] [datei]

Option Bedeutung
--help Gibt eine Liste aller Optionen aus
-v, --verbose Ausführliche Ausgaben
-d, --decompress Entkomprimiert (auch bunzip2)
-c, --stdout Schreibt auf die Standardausgabe (auch bzcat)

Dateien (ent)komprimieren: »compress«

compress komprimiert Dateien in einer dritten Variante. Die Namenserweiterung der komprimierten Dateien ist »Z«. Historisch der älteste und von den dreien der schlechteste Komprimierer. Sein Alter erkennen Sie schon daran, dass compress die erweiterten Optionen nicht kennt.
 
compress [option] [datei]

Option Bedeutung
-v Ausführliche Ausgaben
-d Entkomprimiert (auch uncompress)
-c Schreibt auf die Standardausgabe (auch zcat)

Dateien archivieren: »tar«

Der Name tar (tape archive) kommt noch aus einer Zeit, als man ausschließlich auf Magnetbänder archivierte. Auch heute archiviert man noch auf Magnetbänder, aber nicht mehr mit diesem Kommando. Heute dient tar hauptsächlich dazu, aus einem Teilbaum eine sequentielle, häufig auch komprimierte Datei zu erzeugen. Genutzt wird dies zur Software-Verteilung im Internet. Der Empfänger eines solchen tar-Archivs entpackt den Teilbaum wieder und installiert aus diesem die Software. Die Kombination "tar + Komprimierer" entspricht funktional den Windows-"Zippern".

Obwohl tar sehr viele Optionen hat, braucht man im täglichen Umgang nur sehr wenige. Häufig will man eim komprimiertes tar-Archiv einfach nur auspacken und anschließend den Inhalt, wenn es sich etwa um Software handelt, installieren. Das »Auspacken« erfolgt in zwei Schritten:

Schritt 1: Man lässt sich das Inhaltsverzeichnis (Option: »t«) des Archivs anzeigen um festzustellen, ob das Archiv ein Top-Level-Verzeichnis bereits enthält. Das ist häufig, aber nicht immer der Fall. Dann wird nämlich das gesamte Archiv in dieses Verzeichnis entpackt und in das aktuelle Verzeichnis kopiert. Fehlt dieses Verzeichnis, so legt man es an und wechsle mit dem Arbeitsverzeichnis dorthin. Anhand des Archiv-Namens kann man die Komprimierungsmethode erkennen: Ein »tgz« steht für gzip-te und ein ein »tbz2« steht für bzip2-te Dateien. Das Kommando etwa für das Archiv »xawtv.tgz« lautet:

tar -ztf xawtv.tgz
Schritt 2: Nun wird das Archiv ausgepackt (Option: »x«):
tar -zxvf xawtv.tgz
Die Option »v« sorgt für Fortschrittsmeldungen auf dem Bildschirm.
 
tar [option] [datei ..]

Option Bedeutung
--help Gibt eine Liste aller Optionen aus
-v, --verbose Ausführliche Ausgaben
-c, --create Archiv erzeugen
-t, --list Inhalt anzeigen
-x, --extract Archiv auspacken 
-f file , --file=file file ist der Name der Archivdatei ( - bedeutet Standardausgabe)
-z, --gzip, --gunzip Archiv mit gzip (ent)komprimieren
-j, --bzip2, --bunzip2 Archiv mit bzip2 (ent)komprimieren

zip-Archive erstellen und lesen: »zip/unzip«

Die von Windows her bekannten zip-Archive kann man auch unter Linux erstellen:

zip [optionen] zipfile files


Option Bedeutung
-h Gibt eine Liste aller Optionen aus
-r Rekursiv (auch Unterverzeichnisse)
Zum Entpacken eines zip-Archivs dient

unzip [optionen] zipfile [files]


Option Bedeutung
-h Gibt eine Liste aller Optionen aus
-l Gibt ein Inhaltsverzeichnis des zipfiles aus

Übungen

Probieren Sie die Datei-Befehle aus:
  1. Legen Sie ein Verzeichnis an.
  2. Legen Sie in diesem Verzeichnis eine Datei an.  Dies können Sie z.B. dadurch  tun, dass  Sie eine beliebige Datei kopieren. Welche inode-Nummer hat die neue Datei ?
  3. Ändern Sie die Zugriffsrechte der Datei so, dass nur Sie selbst die Datei lesen dürfen.
  4. Legen Sie Kopien und Verweise dieser Datei an. Welche inode-Nummern haben diese und wie wirken sich Änderungen an den Zugriffsrechten aus ?
  5. Erzeugen Sie ein Unterverzeichnis und kopieren, verschieben und verlinken Sie Dateien in dieses Unterverzeichnis.
  6. Ändern Sie die Zugriffsrechte des Unterverzeichnisses und der darin enthaltenen Dateien so, dass Sie diese Dateien nicht mehr löschen können.
  7. Archivieren Sie Ihr Übungsverzeichnis und komprimieren Sie das Archiv.
  8. Entpacken Sie das Archiv in ein anderes Verzeichnis.


Vorlesungsübersicht zurück vor Die Bash

Zentrum für Informationsverarbeitung / © Stefan Ost, Mathias Grote / Letzte Änderung: 18. August 2004