
|
|
Linux-Einführung
Befehle 1
|
|

|
| Das
Dateisystem |
 |
 |
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:
- Legen Sie ein Verzeichnis an.
- 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 ?
- Ändern Sie die Zugriffsrechte der Datei so, dass nur Sie
selbst die Datei lesen dürfen.
- Legen Sie Kopien und Verweise dieser Datei an. Welche
inode-Nummern haben diese und wie wirken sich Änderungen an den
Zugriffsrechten aus ?
- Erzeugen Sie ein Unterverzeichnis und kopieren, verschieben und
verlinken Sie Dateien in dieses Unterverzeichnis.
- Ändern Sie die Zugriffsrechte des Unterverzeichnisses und
der darin enthaltenen Dateien so, dass Sie diese Dateien nicht mehr
löschen können.
- Archivieren Sie Ihr Übungsverzeichnis und komprimieren Sie
das Archiv.
- Entpacken Sie das Archiv in ein anderes Verzeichnis.
| Vorlesungsübersicht |
 |
 |
Die Bash |
Zentrum für
Informationsverarbeitung
/ © Stefan Ost, Mathias Grote /
Letzte Änderung: 18. August 2004