Hans-Werner Heinl: Das Linux-Befehle-Buch

Transcrição

Hans-Werner Heinl: Das Linux-Befehle-Buch
Hans-Werner Heinl: Das Linux-Befehle-Buch
Hans-Werner Heinl
Das Linux-Befehle-Buch
Alle in diesem Buch enthaltenen Programme, Darstellungen und Informationen wurden
nach bestem Wissen erstellt und mit Sorgfalt getestet. Dennoch sind Fehler nicht ganz auszuschließen. Aus diesem Grund ist das in dem vorliegenden Buch enthaltene ProgrammMaterial mit keiner Verpflichtung oder Garantie irgendeiner Art verbunden. Autoren und
Verlag übernehmen infolgedessen keine Verantwortung und werden keine daraus folgende Haftung übernehmen, die auf irgendeine Art aus der Benutzung dieses ProgrammMaterials, oder Teilen davon, oder durch Rechtsverletzungen Dritter entsteht.
Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. in diesem Buch berechtigt auch ohne besondere Kennzeichnung nicht zu der Annahme, dass
solche Namen im Sinne der Warenzeichen- und Markenschutz-Gesetzgebung als frei zu
betrachten wären und daher von jedermann verwendet werden dürften.
Alle Warennamen werden ohne Gewährleistung der freien Verwendbarkeit benutzt und
sind möglicherweise eingetragene Warenzeichen. Der Verlag richtet sich im Wesentlichen
nach den Schreibweisen der Hersteller. Andere hier genannte Produkte können Warenzeichen des jeweiligen Herstellers sein.
Dieses Werk ist urheberrechtlich geschützt.
Alle Rechte, auch die der Übersetzung, des Nachdruckes und der Vervielfältigung des
Buches, oder Teilen daraus, vorbehalten. Kein Teil des Werkes darf ohne schriftliche Genehmigung des Verlages in irgendeiner Form (Druck, Fotokopie, Microfilm oder einem
anderen Verfahren), auch nicht für Zwecke der Unterrichtsgestaltung, reproduziert oder
unter Verwendung elektronischer Systeme verarbeitet, vervielfältigt oder verbreitet werden.
Bibliografische Information Der Deutschen Bibliothek
Die Deutsche Bibliothek verzeichnet diese Publikation in der Deutschen
Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über
http://dnb.ddb.de abrufbar.
ISBN 3-938626-01-1
© 2007 Nicolaus Millin Verlag GmbH, Lohmar (http://www.millin.de)
Umschlaggestaltung: Fritz Design GmbH, Erlangen
Gesamtlektorat: Nicolaus Millin
Fachlektorat:
Satz: LATEX
Druck: Gallus, Berlin
Printed in Germany on acid free paper.
Inhaltsverzeichnis
1
Einleitung
1
2
Die Shell
3
2.1
Einführung
2.2
Die Shell nutzen
2.3
.
.
.
.
.
.
.
.
.
.
3
.
.
.
.
.
.
.
.
.
4
2.2.1
Nach der Anmeldung
.
.
.
.
.
.
.
4
2.2.2
Befehle eingeben
.
.
.
.
.
.
.
.
5
2.2.3
Befehlshistorie
.
.
.
.
.
.
.
.
6
2.2.4
Befehls-Dokumentation
.
.
.
.
.
.
6
2.2.5
Befehls-Ergebnisse umleiten
.
.
.
.
.
8
Besondere bash-Funktionen
.
.
.
.
.
.
.
10
2.3.1
Maskierung und Quoting
.
.
.
.
.
.
10
2.3.2
Dateinamensubstitution
.
.
.
.
.
.
11
2.3.3
Kommandosubstitution
.
.
.
.
.
.
12
2.3.4
Gruppieren und Verknüpfen von Befehlen
.
.
12
2.4
Rechnen mit der bash
.
2.5
Mit Kontrollstrukturen arbeiten
.
.
.
.
.
.
.
.
14
.
.
.
.
.
.
18
2.5.1
Das Kommando test
.
.
.
.
.
.
19
2.5.2
Iteration über eine Liste (for)
.
.
.
.
.
22
2.5.3
Iteration mit einem Zähler (for) .
.
.
.
.
22
2.5.4
Iteration mit einer Laufbedingung (while)
.
.
23
2.5.5
Iteration mit einer Abbruchbedingung (until)
.
24
2.5.6
Bedingte Ausführung von Anweisungen (if)
.
24
.
V
Inhaltsverzeichnis
2.6
2.7
2.5.7
Bedingt Anweisungsgruppen ausführen (case)
2.5.8
Kontrollfluss steuern (break und continue)
Shell-Skripte
.
.
.
.
.
26
.
.
27
.
.
.
.
.
.
28
.
.
.
.
.
.
28
.
.
.
.
.
.
29
.
.
2.6.1
Shell-Skripte ausführen
2.6.2
Shell-Skripte erstellen
2.6.3
Parameter an Skripte übergeben
.
.
.
30
2.6.4
Positions-Parameter in Schleifen verarbeiten
.
.
31
2.6.5
Interaktive Benutzereingabe mit read
.
.
.
32
.
.
.
33
.
Übersicht: interne Shell-Kommandos
.
.
3 Prozesse
35
3.1
Einführung
.
.
.
.
.
.
.
.
35
3.2
Prozesshierarchie und besondere Prozesse
.
.
.
.
37
3.2.1
Der Init-Prozess
3.2.2
verwaiste Prozesse
3.2.3
Daemonprozesse
.
.
.
.
.
.
.
.
37
.
.
.
.
.
.
.
38
.
.
.
.
.
.
.
.
38
3.3
Laufende Prozesse anzeigen
.
.
.
.
.
.
.
39
3.4
Mit Prozessen kommunizieren
.
.
.
.
.
.
40
.
.
.
44
3.4.1
.
.
Signale in Skripten mit trap abfangen
3.5
Mit Jobs arbeiten
.
.
.
3.6
Übersicht: Prozesse und Jobs steuern
.
.
.
.
.
.
45
.
.
.
.
.
46
4 Dateisystem
VI
49
4.1
Die Linux-Verzeichnishierarchie
.
.
.
.
.
.
49
4.2
Dateiarten
.
.
.
.
.
.
51
4.3
Mit Dateien und Verzeichnissen arbeiten
.
.
.
.
52
4.3.1
Wechseln von Verzeichnissen mit cd
.
.
.
.
53
4.3.2
Inhalt von Verzeichnissen anzeigen mit ls
.
.
53
4.3.3
Kopieren mit cp
4.3.4
verschieben mit mv
4.3.5
.
.
.
.
.
.
.
.
.
.
.
.
.
55
.
.
.
.
.
.
.
56
löschen mit rm und rmdir
.
.
.
.
.
.
57
4.3.6
Links erzeugen mit ln
.
.
.
.
.
.
57
4.3.7
Suchen von Dateien mit find
.
.
.
.
.
57
.
Inhaltsverzeichnis
4.3.8
4.4
Übersicht: mit Dateien und Verzeichnissen arbeiten
Datei-Berechtigungen steuern
.
.
60
.
.
.
.
.
61
4.4.1
Rechte verändern mit chmod
.
.
.
.
.
64
4.4.2
Rechtevoreinstellung mit umask .
.
.
.
.
65
4.4.3
Eigentümer festlegen mit chown und chgrp
.
.
67
4.5
Übersicht: Datei-Berechtigungen steuern
4.6
Daten sichern und archivieren
4.6.1
Einführung
.
.
.
.
.
.
.
67
.
.
.
.
.
.
68
.
.
.
.
.
.
68
.
.
.
.
70
4.7
Übersicht: Daten sichern und archivieren
4.8
Mit Dateiinhalten arbeiten
.
.
.
.
.
.
.
70
4.8.1
Reguläre Ausdrücke
.
.
.
.
.
.
.
71
4.8.2
Dateien nach Inhalten durchsuchen mit grep
.
.
73
4.9
Übersicht: mit Dateiinhalten arbeiten
.
.
.
.
.
74
.
.
.
.
.
.
76
.
.
.
.
.
.
77
4.10.1.1 technische Sicht auf das Dateisystem
.
.
77
4.10.1.2 Benutzersicht auf das Dateisystem
.
.
78
.
.
79
4.10 Verwaltung des Dateisystems
.
4.10.1 Linux-Dateisystemstruktur
4.11 Übersicht: Verwaltung des Dateisystems
5
.
.
.
Systemverwaltung
5.1
5.2
5.3
81
Laufzeitumgebung und Sitzungsinformationen verwalten
.
81
5.1.1
Einführung
.
.
.
.
.
.
.
.
.
81
5.1.1.1
Shell-Variablen
.
.
.
.
.
.
81
5.1.1.2
Umgebungsvariablen
.
.
.
.
.
83
5.1.1.3
Befehls-Alias erstellen
.
.
.
.
.
85
5.1.1.4
Shell-Optionen
.
.
.
.
.
86
.
Übersicht: Laufzeitumgebung und Sitzungsinformationen verwalten
.
.
.
.
.
.
.
.
.
.
.
.
89
Benutzerverwaltung
.
.
.
.
.
.
.
.
.
90
.
.
.
.
.
.
.
.
90
.
.
91
5.3.1
Einführung
5.3.2
Benutzer und Gruppen erstellen / löschen
5.3.2.1
Benutzer erstellen / löschen .
.
.
.
91
5.3.2.2
Gruppen erstellen / löschen
.
.
.
93
VII
Inhaltsverzeichnis
5.3.3
Benutzer-Einstellungen ändern
.
.
.
.
.
94
5.3.4
Startskripte und Anmeldetexte
.
.
.
.
.
94
.
.
.
.
.
.
95
.
.
.
.
.
.
97
5.4
Übersicht: Benutzerverwaltung
5.5
Druckumgebung verwalten
5.6
Übersicht: Druckumgebung verwalten
.
.
.
.
.
97
5.7
Netzwerkumgebung verwalten
.
.
.
.
.
.
98
.
5.7.1
Netzwerk
.
.
.
.
.
.
.
.
.
98
5.7.2
Protokolle
.
.
.
.
.
.
.
.
.
98
5.7.3
OSI-Referenzmodell
.
.
.
.
.
.
.
101
5.7.4
IP-Adressierung
.
.
.
.
.
.
.
101
.
5.7.4.1
Adressklassen
.
.
.
.
.
.
103
5.7.4.2
Subnetzmasken
.
.
.
.
.
.
103
5.7.4.3
Beispiel 1
.
.
.
.
.
.
.
104
5.7.4.4
Beispiel 2
.
.
.
.
.
.
.
104
5.7.4.5
Beispiel 3
.
.
.
.
.
.
.
105
5.7.4.6
Beispiel 4
.
.
.
.
.
.
.
105
5.7.4.7
Broadcast
.
.
.
.
.
.
.
105
5.7.4.8
Adressen vergeben
.
.
.
.
.
106
.
.
5.7.5
Routing
.
.
.
.
.
.
.
.
107
5.7.6
Client/Server, Daemonen, Ports und Sockets
.
.
107
5.7.7
DNS (Domain-Name-Services)
.
.
.
.
.
108
5.8
Übersicht: Netzwerkumgebung verwalten
.
.
.
.
109
5.9
Mail-Kommandos
.
.
.
.
.
.
.
.
.
109
5.9.1
.
.
.
.
.
.
.
.
.
109
5.10 Übersicht: Mail-Kommandos
.
.
.
.
.
.
.
111
5.11 Datum- und Zeit-Befehle
.
.
.
.
.
.
.
.
112
5.11.1 Einführung
.
.
.
.
.
.
.
.
112
.
.
.
.
.
113
Einführung
.
5.12 Übersicht: Datum- und Zeit-Befehle
6 Befehlsübersicht a-z
6.1
VIII
115
Hinweise zu Befehlsoptionen
.
.
.
.
.
.
.
115
6.1.1
Erläuterungen zur syntaktischen Beschreibung
.
.
115
6.1.2
Linux-Befehle
.
.
118
.
.
.
.
.
.
Inhaltsverzeichnis
alias (bash-builtin)
apropos (1)
.
.
.
.
.
.
.
.
.
.
118
.
.
.
.
.
.
.
.
118
.
.
.
119
at (1) atq (1) atrm (1) batch (1)
awk (1)
.
.
.
.
.
.
.
.
.
.
.
121
basename (1)
.
.
.
.
.
.
.
.
.
.
121
.
.
.
.
.
.
.
.
.
121
bg (bash-builtin)
cal (1)
.
.
.
.
.
.
.
.
.
.
.
122
cat (1)
.
.
.
.
.
.
.
.
.
.
.
122
.
.
.
.
.
.
.
.
.
123
.
.
.
.
.
.
.
.
.
.
124
.
.
.
.
.
.
.
.
.
.
124
.
.
.
.
.
.
.
.
.
.
126
cd (bash builtin)
cfdisk (8)
chage (1)
.
chattr (1)
chfn (1)
.
.
.
.
.
.
.
.
.
.
.
128
chgrp (1)
.
.
.
.
.
.
.
.
.
.
.
129
chmod (1)
.
.
.
.
.
.
.
.
.
.
.
129
chown (1)
.
.
.
.
.
.
.
.
.
.
.
132
.
.
.
.
.
.
.
.
.
.
133
chroot (1)
chsh (1)
.
.
.
.
.
.
.
.
.
.
.
134
clear (1)
.
.
.
.
.
.
.
.
.
.
.
134
cmp (1)
.
.
.
.
.
.
.
.
.
.
.
135
comm (1)
.
.
.
.
.
.
.
.
.
.
.
135
cp (1) .
.
.
.
.
.
.
.
.
.
.
.
136
cpio (1)
.
.
.
.
.
.
.
.
.
.
.
137
cron (8)
.
.
.
.
.
.
.
.
.
.
.
138
crontab (1)
.
.
.
.
.
.
.
.
.
.
139
csplit (1)
.
.
.
.
.
.
.
.
.
.
141
cut (1)
.
.
.
.
.
.
.
.
.
.
.
143
date (1)
.
.
.
.
.
.
.
.
.
.
.
145
dd (1) .
.
.
.
.
.
.
.
.
.
.
.
147
.
.
.
.
.
.
.
.
148
debugreiserfs (8)
df (1) .
.
.
.
.
.
.
.
.
.
.
.
149
diff (1)
.
.
.
.
.
.
.
.
.
.
.
150
IX
Inhaltsverzeichnis
dig (1)
.
.
.
.
.
.
.
.
.
.
.
152
.
.
.
.
.
.
.
.
.
.
155
.
.
.
.
.
.
.
.
.
.
.
155
dumpe2fs (8)
.
.
.
.
.
.
.
.
.
.
156
e2fsck (8)
.
.
.
.
.
.
.
.
.
.
157
.
.
.
.
.
.
.
.
.
.
158
.
.
.
.
.
.
.
.
.
.
159
.
.
.
.
.
.
.
.
.
.
159
exec (bash-builtin)
.
.
.
.
.
.
.
.
.
160
exit (bash-builtin)
.
.
.
.
.
.
.
.
.
160
expand (1)
.
.
.
.
.
.
.
.
.
161
.
.
.
.
.
.
.
.
161
dirname (1)
du (1) .
echo (1)
.
edquota (8)
env (1)
.
.
export (bash-builtin)
expr (1)
.
.
.
.
.
.
.
.
.
.
.
161
false (1)
.
.
.
.
.
.
.
.
.
.
.
163
fdformat (8)
.
.
.
.
.
.
.
.
.
.
163
fdisk (8)
.
.
.
.
.
.
.
.
.
.
164
.
.
.
.
.
.
.
.
.
165
.
fg (bash-builtin)
file (1)
.
.
.
.
.
.
.
.
.
.
.
166
find (1)
.
.
.
.
.
.
.
.
.
.
.
167
.
.
.
.
.
.
.
.
.
.
170
finger (1)
fmt (1)
.
.
.
.
.
.
.
.
.
.
.
171
fold (1)
.
.
.
.
.
.
.
.
.
.
.
171
fsck (8)
.
.
.
.
.
.
.
.
.
.
.
172
fuser (1)
.
.
.
.
.
.
.
.
.
.
.
173
getopts (bash-builtin)
.
.
.
.
.
.
.
.
174
gpasswd (1)
.
.
.
.
.
.
.
.
.
.
176
.
.
.
.
.
.
.
.
.
.
.
176
groupadd (8)
.
.
.
.
.
.
.
.
.
.
177
groupdel (8)
.
.
.
.
.
.
.
.
.
.
178
groupmod (8)
.
.
.
.
.
.
.
.
.
.
179
groups (1)
.
.
.
.
.
.
.
.
.
.
180
.
.
.
.
.
.
.
.
.
.
180
grep (1)
grpck (8)
X
.
Inhaltsverzeichnis
gunzip (1)
.
.
.
.
.
.
.
.
.
.
181
gzip (1)
.
.
.
.
.
.
.
.
.
.
.
182
halt (8)
.
.
.
.
.
.
.
.
.
.
.
183
hash (bash-builtin)
.
.
.
.
.
.
.
.
.
184
head (1)
.
.
.
.
.
.
.
.
.
185
help (bash-builtin)
.
.
.
.
.
.
.
.
.
185
host (1)
.
.
.
.
.
.
.
.
.
.
186
.
.
.
.
.
.
.
.
.
.
188
.
.
.
.
.
.
.
.
.
.
.
189
ifconfig (8)
.
.
.
.
.
.
.
.
.
.
190
info (1)
.
.
.
.
.
.
.
.
.
.
.
192
init (8)
.
.
.
.
.
.
.
.
.
.
.
194
jobs (bash-builtin)
.
.
.
.
.
.
.
.
.
194
join (1)
.
.
.
.
.
.
.
.
.
.
.
195
kill (1)
.
.
.
.
.
.
.
.
.
.
.
197
.
.
.
.
.
.
.
.
.
.
197
last (1), lastb (1)
.
.
.
.
.
.
.
.
.
198
lastlog (8)
.
.
.
.
.
.
.
.
.
.
200
.
.
hwclock (8)
id (1) .
killall (1)
.
ldd (1)
.
.
.
.
.
.
.
.
.
.
.
200
less (1)
.
.
.
.
.
.
.
.
.
.
.
201
line (1)
.
.
.
.
.
.
.
.
.
.
.
202
ln (1) .
.
.
.
.
.
.
.
.
.
.
.
203
locate (1)
.
.
.
.
.
.
.
.
.
.
204
logname (1)
.
.
.
.
.
.
.
.
.
.
205
.
.
.
.
.
.
.
.
205
logout (bash-builtin)
lpc (1)
.
.
.
.
.
.
.
.
.
.
.
205
lpq (1)
.
.
.
.
.
.
.
.
.
.
.
206
lpr (1)
.
.
.
.
.
.
.
.
.
.
.
207
lprm (1)
.
.
.
.
.
.
.
.
.
.
.
208
ls (1) .
.
.
.
.
.
.
.
.
.
.
.
209
.
.
.
.
.
.
.
.
.
.
210
.
.
.
.
.
.
.
.
.
.
212
lsattr (1)
lsof (8)
.
XI
Inhaltsverzeichnis
mail (1)
.
.
.
.
.
.
.
.
.
.
.
212
man (1)
.
.
.
.
.
.
.
.
.
.
.
215
mesg (1)
.
.
.
.
.
.
.
.
.
.
.
217
mkdir (1)
.
.
.
.
.
.
.
.
.
.
.
217
.
.
.
.
.
.
.
.
.
.
218
mke2fs (8)
mkfs (8)
.
.
.
.
.
.
.
.
.
.
.
219
mknod (1)
.
.
.
.
.
.
.
.
.
.
.
220
.
.
.
.
.
.
.
.
.
220
mkreiserfs (8)
more (1)
.
.
.
.
.
.
.
.
.
.
.
221
mount (8)
.
.
.
.
.
.
.
.
.
.
.
221
mv (1) .
.
.
.
.
.
.
.
.
.
.
.
224
netstat (8)
.
.
.
.
.
.
.
.
.
.
224
newgrp (1)
.
.
.
.
.
.
.
.
.
.
227
nice (1)
.
.
.
.
.
.
.
.
.
.
.
228
nl (1) .
.
.
.
.
.
.
.
.
.
.
.
229
nohup (1)
.
.
.
.
.
.
.
.
.
.
.
231
od (1) .
.
.
.
.
.
.
.
.
.
.
.
231
.
.
.
.
.
.
.
.
.
.
233
passwd (1)
paste (1)
.
.
.
.
.
.
.
.
.
.
.
234
ping (1)
.
.
.
.
.
.
.
.
.
.
.
235
pr (1) .
.
.
.
.
.
.
.
.
.
.
.
237
ps (1) .
.
.
.
.
.
.
.
.
.
.
.
238
.
.
.
.
.
.
.
.
.
.
242
.
.
.
.
.
.
.
.
243
.
.
.
.
.
.
.
.
.
243
.
.
.
.
.
.
.
.
.
244
quotaon/quotaoff (8)
.
.
.
.
.
.
.
.
245
read (bash-builtin)
.
.
.
.
.
.
.
.
246
readonly (bash-builtin)
.
.
.
.
.
.
.
.
246
reboot (8)
.
.
.
.
.
.
.
.
.
247
.
.
.
.
.
.
.
.
.
247
.
.
.
.
.
.
.
.
.
249
pstree (1)
pwd (1) (bash-builtin)
quota (1)
.
.
quotacheck (8)
.
reiserfsck (8)
renice (8)
XII
.
.
Inhaltsverzeichnis
repquota (8)
.
.
return (bash-builtin)
.
.
.
.
.
.
.
.
250
.
.
.
.
.
.
.
.
251
rm (1) .
.
.
.
.
.
.
.
.
.
.
.
251
rmdir (1)
.
.
.
.
.
.
.
.
.
.
.
252
route (8)
.
.
.
.
.
.
.
.
.
.
.
253
rpm (8)
.
.
.
.
.
.
.
.
.
.
.
254
runlevel (8)
.
.
.
.
.
.
.
.
.
.
257
sed (1)
.
.
.
.
.
.
.
.
.
.
258
set (bash-builtin)
.
.
.
.
.
.
.
.
.
260
.
.
.
.
.
.
.
.
262
.
shift (bash-builtin)
shutdown (8)
.
.
.
.
.
.
.
.
.
.
263
sleep (1)
.
.
.
.
.
.
.
.
.
.
.
264
sort (1)
.
.
.
.
.
.
.
.
.
.
.
265
split (1)
.
.
.
.
.
.
.
.
.
.
.
267
su (1) .
.
.
.
.
.
.
.
.
.
.
.
268
sum (1)
.
.
.
.
.
.
.
.
.
.
.
268
sync (1)
.
.
.
.
.
.
.
.
.
.
.
269
tac (1)
.
.
.
.
.
.
.
.
.
.
.
269
tail (1)
.
.
.
.
.
.
.
.
.
.
.
270
tar (1)
.
.
.
.
.
.
.
.
.
.
.
271
tee (1)
.
.
.
.
.
.
.
.
.
.
.
273
test (bash-builtin)
.
.
.
.
.
.
.
.
.
274
time (1)
.
.
.
.
.
.
.
.
.
276
.
.
.
.
.
.
.
.
277
.
.
times (bash-builtin)
top (1)
.
.
.
.
.
.
.
.
.
.
.
277
touch (1)
.
.
.
.
.
.
.
.
.
.
.
280
tr (1) .
.
.
.
.
.
.
.
.
.
.
.
281
traceroute (8)
.
.
.
.
.
.
.
.
.
283
trap (bash-builtin)
.
.
.
.
.
.
.
.
.
284
true (1)
.
.
.
.
.
.
.
.
.
.
.
286
tty (1)
.
.
.
.
.
.
.
.
.
.
.
287
.
.
.
.
.
.
.
.
.
.
287
tune2fs (8)
XIII
Inhaltsverzeichnis
type (bash-builtin)
.
.
.
.
.
.
.
.
.
288
.
.
.
.
.
.
.
.
289
.
.
.
.
.
.
.
.
.
290
unalias (bash-builtin)
.
.
.
.
.
.
.
.
291
uname (1)
.
.
.
.
.
.
.
.
.
.
.
291
uniq (1)
.
.
.
.
.
.
.
.
.
.
.
292
.
.
.
.
.
.
.
.
293
umask (bash-builtin)
umount (8)
.
unset (bash-builtin)
updatedb (1)
.
.
.
.
.
.
.
.
.
.
294
useradd (8)
.
.
.
.
.
.
.
.
.
.
294
userdel (8)
.
.
.
.
.
.
.
.
.
.
296
usermod (8)
.
.
.
.
.
.
.
.
.
.
297
.
.
.
.
.
.
.
.
.
.
299
wait (bash-builtin)
.
.
.
.
.
.
.
.
.
300
wall (1)
.
.
.
.
.
.
.
.
.
.
.
300
wc (1) .
.
.
.
.
.
.
.
.
.
.
.
301
whatis (1)
.
.
.
.
.
.
.
.
.
.
301
whereis (1)
.
.
.
.
.
.
.
.
.
.
303
w (1)
.
.
which (1)
.
.
.
.
.
.
.
.
.
.
.
304
who (1)
.
.
.
.
.
.
.
.
.
.
.
305
.
.
.
.
.
.
.
.
.
.
306
.
.
.
.
.
.
.
.
.
.
306
whoami (1)
write (1)
.
7 Anhang
7.1
awk-Kurzreferenz
.
.
.
.
.
.
.
.
.
309
.
.
.
.
.
.
.
309
7.1.1
Kommando-Syntax
7.1.2
Skriptsyntax
.
.
.
.
.
.
.
.
.
310
7.1.3
Muster
.
.
.
.
.
.
.
.
.
310
.
.
.
.
.
310
7.1.4
XIV
309
.
7.1.3.1
Regulärer Ausdruck
7.1.3.2
Ausdruck für Vergleich
.
.
.
.
310
7.1.3.3
Zusammengesetzter Ausdruck
.
.
.
311
7.1.3.4
Bereiche
7.1.3.5
BEGIN / END
.
Prozedur/Anweisungen
.
.
.
.
.
.
.
311
.
.
.
.
.
.
.
311
.
.
.
.
.
.
311
Inhaltsverzeichnis
7.2
7.1.4.1
Kontrollflussanweisungen
.
.
.
.
311
7.1.4.2
Ausgabeanweisungen
.
.
.
.
312
7.1.4.3
Zuweisungen / Rechenoperationen
.
.
312
7.1.4.4
Funktionsaufrufe
.
.
.
.
.
.
313
7.1.5
String-Literale / Variablen
.
.
.
.
.
.
314
7.1.6
Beispiele
.
.
.
.
.
.
.
.
.
315
vi-Kurzrefernz
.
.
.
.
.
.
.
.
.
316
7.2.1
Aufrufen und Beenden des vi
.
.
.
.
.
317
7.2.2
Befehle im Befehlsmodus
.
.
.
.
.
.
318
7.2.2.1
Cursorpositionierung
.
.
.
.
.
318
7.2.2.2
Umschalten in den Eingabemodus
.
.
319
7.2.2.3
Text löschen
7.2.2.4
7.2.3
7.2.4
7.3
.
.
.
.
320
Zeilen zusammenfügen
.
.
.
.
321
7.2.2.5
Befehle rückgängigmachen
.
.
.
.
321
7.2.2.6
Verschieben und Kopieren
.
.
.
.
321
7.2.2.7
Arbeiten mit eigenen Puffern
.
.
.
322
7.2.2.8
Suchen
.
.
.
.
323
Befehle im Kommandozeilenmodus
.
.
.
.
323
7.2.3.1
Allgemeine Befehle
.
.
.
.
.
323
7.2.3.2
Suchen und Ersetzen
.
.
.
.
.
324
7.2.3.3
vi-Einstellungen verändern
.
.
.
325
.
.
.
326
.
.
.
.
.
.
.
.
Mehrere Dateien gleichzeitig bearbeiten
Wichtige Konfigurationsdateien
.
.
.
.
.
.
326
7.3.1
/etc/passwd
.
.
.
.
.
.
.
.
327
7.3.2
/etc/shadow
.
.
.
.
.
.
.
.
328
7.3.3
/etc/group
.
.
.
.
.
.
.
.
328
7.3.4
/etc/inittab
.
.
.
.
.
.
.
.
329
7.3.4.1
Aufbau
.
.
.
.
.
.
.
.
330
7.3.4.2
Häufig vom init-Prozess aufgerufenen Aktionen
330
7.3.4.3
Auszug aus der Datei /etc/inittab
.
331
7.3.5
/etc/fstab
.
.
.
.
.
.
.
.
332
7.3.6
Initialisierungsdateien für den Benutzer
.
.
.
333
XV
Inhaltsverzeichnis
7.3.7
7.4
Index
XVI
Besondere Dateien
.
.
.
.
.
.
.
333
Literaturverzeichnis / Hinweise
.
.
.
.
.
.
333
335
Kapitel 1
Einleitung
Es ist nicht ganz einfach, den richtigen Einstieg in ein Thema wie Linux-Befehle
zu finden. Die meisten Leser werden schon rudimentäre Kenntnisse über Linux
haben. Dennoch wollte ich auch dem Einsteiger die Chance bieten, etwas Grundlagenwissen über die Shell, Prozesse und das Dateisystem zu erwerben. Daher
beschäftigen sich die ersten drei Kapitel mit diesen Grundlagen. Im vierten Kapitel finden Sie dann eine Befehlsübersicht mit Beispielen, in denen viele Befehle
mit den wichtigsten Parametern vorgestellt werden. Es gibt bestimmt einige Befehle in dieser Übersicht, die Sie nie brauchen werden. Auf der anderen Seite
werden sie ggf. nach dem ein oder anderen Befehl vergeblich suchen. Ein umfassendes Werk aller Befehle zu erstellen und auf einem aktuellen Stand zu halten, dürfte kaum möglich sein. Für spezielle Anforderungen verweise ich deshalb
schon hier auf die entsprechenden Manual-Seiten, die bei jeder Distribution vorhanden sind.
Wie schon erwähnt erhebt dieses Werk keinen Anspruch auf Vollständigkeit. Bei
der Befehlsübersicht wurden zum Teil bewusst Option, die erfahrungsgemäß
nicht oder nur sehr selten benötigt werden, ausgelassen.
Alle hier beschriebenen Befehle sind zum Großteil in der Standardinstallation der
marktüblichen Linux-Distributionen enthalten oder können zumindest nachinstalliert werden. Sollten manche Befehls-Option nicht funktionieren, kann das an
der Version des Kommandos liegen.
Ein paar Hinweise zur Notation und zu Schreibweisen in diesem Buch:
Bei den Beispielen können Sie am dargestellten Prompt erkennen ob der Befehl
von einem normalen Benutzer aufgeführt werden kann, oder root-Rechte erfordert:
user@linux:~ > ist der Prompt des normalen Benutzers.
linux: #
ist der Prompt des Systemverwalters root.
1
1 Einleitung
Befehle, Dateinamen und Bildschirmausgaben werden allgemein in einer anderen Schriftart dargestellt.
echo Hallo ist beispielsweise die Schriftart für Kommandos. Ausgaben der
Programme werden zum Teil, auch aus Platzgründen, in einer kleineren Schrift
dargestellt.
drwxr-xr-x
2 user users
drwxr-xr-x
2 user users
48 2004-08-13 13:01 bin
80 2004-08-13 13:01 Documents
-rw-------
1 user users
1878 2004-08-25 11:19 nohup.out
drwxr-xr-x
2 user users
drwxr-xr-x
3 user users
80 2004-08-13 13:01 public_html
656 2004-08-30 17:16 work
Oben sehen Sie eine Ausgabe des Befehls ls -l.
Bei Syntax-Beschreibungen zu Kommandos bedeuten eckige Klammern, dass die
Optionen oder Werte dazwischen auch weggelassen werden können. Kursiv dargestellte Wörter sind Platzhalter für Werte, die anstelle dieser Wörter angegeben
werden müssen.
Der Begriff Befehl und Kommando wird im gesamten Buch nicht unterschieden
und gleichbedeutend verwendet.
Zu erwähnen ist noch, daß Linux zwischen Groß-/und Kleinschreibung unterscheidet.
2
Kapitel 2
Die Shell
2.1
Einführung
Je nach Anwendungsbereich haben Betriebssysteme Schnittstellen, die es dem
Anwender oder Systemadministrator erlauben, verschiedene Prozesse zu starten.
Ein Videorecorder hat beispielsweise
❏ eine LCD-Anzeige,
❏ das Fernsehgerät als Ausgabegerät,
❏ das Videoband als Datenspeicher und
❏ die Fernbedienung als Eingabegerät.
Jedem Druckknopf der Fernbedienung ist eine bestimmte Anwendung (Prozess)
zugeordnet. Der Benutzer kann durch Drücken der Play-Taste den eingelegten
Film starten, d. h., es wird dem Videorecorder mitgeteilt, er soll das Programm
zum Abspielen des Films starten. Auf der LCD-Anzeige wird der aktuelle Status
des Programms angezeigt (Zeit, Modus) und auf dem Bildschirm der Film. Die
Benutzerschnittstelle dieses Betriebssystems stellt uns die Möglichkeit zur Verfügung, bestimmte Kommandos an den Videorecorder zu schicken.
Bei Computersystemen stehen dem Benutzer mehr Kommandos und Ressourcen
zur Verfügung als bei einem Videorecorder, allerdings ist der Ablauf ähnlich: ein
Kommando wird irgendwie vom Benutzer eingegeben und anschließend vom
Betriebssystem interpretiert und verarbeitet. Die meisten Computerbetriebssysteme stellen zwei verschiedene Schnittstellen für Benutzer zur Verfügung, die
sich durch Darstellung und die Art der Eingabe unterscheiden.
Moderne Systeme sind in der Regel mit einer grafischen Benutzerschnittstelle (GUI
Graphical User Interface) ausgestattet, bieten aber zusätzlich die Möglichkeit,
verschiedene Kommandos über eine sogenannte Shell einzugeben.
3
2 Die Shell
Früher war die Shell das wichtigste Programm auf einem Unix-System und auch
heute ist sie das wichtigste Werkzeug für den Unix-/Linux-Administrator. Im
Laufe der Zeit wurden mehrere Shell-Programme entwickelt. Da wäre die sh
(Bourne Shell), die in älteren Unix-Systemen als Standard Shell eingesetzt wurde
und einfache Funktionen beinhaltet. Die ksh (Korne Shell), die bereits wesentlich
mehr Funktionalität als die Bourne Shell zur Verfügung stellt und immer noch in
vielen Unix-Systemen als Standard eingesetzt wird. Für C-Programmierer gibt
es die csh (C-Shell), die einen der Korne Shell ähnlichen Funktionsumfang bietet.
Die Linux Standard-Shell ist die bash (Bourne Again Shell). Sie verbindet die Einfachheit der Bourne Shell mit der Vielseitigkeit der Korne Shell und wird heute
nicht nur unter Linux gerne verwendet. Im folgenden wird ausschließlich mit der
bash gearbeitet.
Genau genommen ist eine Shell lediglich ein Benutzerprogramm. Sie stellt die
Schnittstelle zwischen dem Benutzer und dem System dar. Sie umfaßt einen Kommandointerpreter, der Benutzereingaben analysiert und die dem Kommando zugeordneten Programme startet und Ausgaben des Kernels an den Benutzer zurückgibt. Sie verfügt aber auch über eine eigene Programmiersprache mit Sonderzeichen, Variablen und Funktionen, die es ermöglicht, sog. Shell-Skripte zu
erstellen, um z. B. bestimmte administrative Aufgaben zu erleichtern. Im folgenden werden die syntaktischen Regeln und Möglichkeiten der bash ins Visier genommen.
2.2 Die Shell nutzen
2.2.1 Nach der Anmeldung
Nach der erfolgreichen Anmeldung wird für jeden Benutzer eine eigene Shell
(Kommandointerpreter) geladen. Während die Shell startet, laufen noch Initialisierungsskripte für spezielle Benutzereinstellungen ab. Als Kennzeichen, dass die
Shell für den Empfang von Kommandos bereit ist, sieht man einen sog. Prompt
(Eingabeaufforderung) am linken Bildschirmrand, falls man sich im Textmodus
angemeldet hat. Hat man sich unter einer grafische Benutzeroberfläche angemeldet, kann mit einem Terminalfenster eine Shell gestartet werden, bei dem der
Prompt ebenfalls am linken Rand zu sehen ist.
Dieser Prompt kann individuell für jeden Benutzer eingestellt werden. Als Standard ist für den normalen Benutzer
Benutzername@Rechnername:aktuelles Verzeichnis >
festgelegt. Für root ist der Standard-Prompt
Rechnername:Verzeichnis #
4
Kapitel 3
Prozesse
3.1
Einführung
Ein Prozess ist ein Programm, das gerade ausgeführt wird. Ein Programm liegt
meist in Form einer Datei auf dem Datenträger (Festplatte) vor und beschreibt eine Folge von Aktionen, die sequentiell durchgeführt werden. Erst durch das Laden des Programms in den Hauptspeicher und dessen Ausführung entsteht ein
Prozess. In modernen Betriebssystemen werden immer mehrere Prozesse gleichzeitig abgearbeitet. Allerdings kann ein Prozessor nur immer einen Befehl zu
einer bestimmten Zeit ausführen. Somit werden Prozesse in Ein-Prozessor-Systemen nie wirklich parallel ausgeführt. Die Zeit, die zwischen dem Umschalten von einem Prozess zum anderen vergeht, ist jedoch so gering, dass man von
Pseudo-Parallelität spricht. Die Aufgabe, zu entscheiden welcher Prozess gerade
Prozessorzeit erhält, übernimmt der sog. Scheduler, der nach folgenden Kriterien
arbeitet:
❏ Fairness
Jeder Prozess erhält einen gerechten Anteil an Prozessorzeit.
❏ Effizienz
Der Prozessor ist immer vollständig ausgelastet.
❏ Kurze Antwortzeit
Die Antwortzeit für die arbeitenden Benutzer wird minimiert.
❏ Großer Durchsatz
Die Anzahl der ausgeführten Aufträge in einem bestimmten Zeitintervall
wird maximiert.
Das Betriebssystem muss zu jeder Zeit wissen, welche Prozesse gerade im Speicher sind, wie der aktuelle Zustand ist, an welcher Stelle der Prozess unterbrochen wurde und welche Speicherbereiche dem Prozess zugeordnet sind. Damit
35
3 Prozesse
wird der Prozessverwaltung und der damit verbundenen Ressourcenverwaltung
eine wichtige Rolle zugeteilt. In verschiedenen Tabellen merkt sich das Betriebssystem alle Informationen, die zu einem bestimmten Prozess gehören. Einige dieser Informationen sind:
❏ Register, Inhalt aller Prozessorregister
Beim Umschalten zwischen den Prozessen müssen die Registerinhalte des
Prozessors wieder hergestellt werden können.
❏ Befehls- bzw. Programmzähler
Erhält ein Prozess wieder Rechenzeit, muss genau an der Stelle weitergearbeitet werden, wo er aufgehört hatte.
❏ Stack-Zeiger
Jeder Prozess hat eine Ablage, wo Daten zwischengespeichert werden. Hier
wird gespeichert, wo die oberste Stelle der Ablage ist.
❏ Prozesszustand
Zu einer bestimmten Zeit befindet sich ein Prozess in einem bestimmten
Zustand. Zustände sind:
➢ Aktiv
Der Prozess wird gerade abgearbeitet.
➢ Wartend
Der Prozess wartet auf das Ende einer Wartebedingung.
➢ Bereit
Der Prozess wartet auf die Zuteilung eines Prozesses.
➢ Nicht existent
Zustand eines Prozesses, der nicht mehr oder noch nicht im System
existiert.
Diese Zustände sind allgemeine Prozesszustände. Mit dem Kommando ps
kann man sich in detaillierter Form anzeigen lassen, wie der aktuelle Zustand eines Prozesses ist.
❏ Prozessnummer
Jedem Prozess ist eine eindeutige Nummer zugeordnet.
❏ Verbrauchte Prozessorzeit
Die Zeit, die ein Prozess bereits an Rechenzeit hatte.
❏ Auftraggeber
Benutzer-Nummer, des Benutzers, der den Prozess gestartet hatte.
❏ Ablaufpriorität
Priorität des Prozesses, die angibt, wieviel Rechenzeit ein Prozess erhält.
❏ Zugriffsrechte
Zugriffsrechte, die der Prozess hat.
❏ Zeiger auf Speichersegmente
Speicherbereiche, die dem Prozess zugeordnet sind.
36
3.2 Prozesshierarchie und besondere Prozesse
❏ Signalstatus
Signale, die der Prozess empfängt.
❏ Elternprozess
Gibt die Nummer des Elternprozesses an, der diesen Prozess erzeugt hat.
❏ Reale und effektive Benutzernummer
Reale und effektive Benutzernummer, mit der dieser Prozess arbeitet.
❏ Reale und effektive Gruppennummer
Reale und effektive Gruppennummer, mit der dieser Prozess arbeitet.
❏ Dateideskriptoren
Referenzen auf die Dateien, die von diesem Prozess benutzt werden.
Für den Benutzer stehen verschieden Kommandos zur Verfügung, um sich die
oben aufgeführten Informationen anzeigen zu lassen, mit Prozessen zu kommunizieren und Prozesse zu erzeugen. In den nachfolgenden Kapiteln werden einige
dieser Kommandos vorgestellt.
3.2
Prozesshierarchie und besondere Prozesse
In Linux-Systemen wird beim Laden des Betriebssystems der Init-Prozess gestartet.
Aufbauend auf diesen Prozess wird eine Hierarchie erstellt. Jeder Prozess kann
Elternprozess eines Kindprozesses sein. Ganz oben in der Hierarchie steht jedoch
immer der Init-Prozess mit der Prozessnummer 1. Diese Hierarchie ist mit einem Stammbaum zu vergleichen, der sich nach unten immer weiter gabelt. Ein
Elternprozess, der Kindprozesse erzeugt, gabelt sich. Vom Betriebssystem wird
zur Erzeugung eines Kindprozesses der Befehl fork (engl. Gabel) verwendet.
Für den Benutzer heißt das, wenn er ein Kommando an der Shell eingibt, entsteht ein neuer Prozess. Dieser neue Prozess ist das Kind der Shell, in der er das
Kommando eingegeben hat. Mit dem Kommando pstree können Sie sich die
Prozesshierarchie ansehen. Der Init-Prozess (init) steht bei der Ausgabe immer
an der linken Seite ganz oben. Wenn Sie der Prozesshierarchie folgen, sehen Sie
auch das eingegebene Kommando pstree als Kindprozess der bash.
3.2.1
Der Init-Prozess
Nachdem der Linux-Kernel gestartet ist, überprüft dieser die Gerätekonfiguration und erzeugt den SWAP-Prozess, der für das Scheduling verantwortlich ist, sowie den Init-Prozess, der in unserer Hierarchie die oberste Stelle
einnimmt. Gesteuert wird dieser Prozess durch die Datei /etc/inittab. In
/etc/inittab befinden sich Informationen zum Start, d. h. welche Startskripte ausgeführt werden und in welchem Run-Level das System startet. Das Programm des Init-Prozesses befindet sich im Verzeichnis /sbin. Init startet das
37
3 Prozesse
[1]+ 8472 Running
user@linux:/home/user >
[1]+ Done
sleep 100 &
sleep 100
Um einen Job wieder in den Vordergrund zu holen oder nachträglich einen Prozess in den Hintergrund zu stellen, werden die Kommandos fg jobnummer
(foreground) und bg jobnummer (background) verwendet. Bevor ein Prozess in
den Hintergrund gestellt werden kann, muss er mit dem Signal SIGTSTP durch
gestoppt werden.
die Tastenkombination Strg Z user@linux:/home/user > sleep 100 &
[1] 8562
user@linux:/home/user > fg 1
sleep 100
Strg z [1]+ Stopped
user@linux:/home/user > bg 1
[1]+ sleep 100 &
user@linux:/home/user > jobs
[1]+ Running
sleep 100
sleep 100 &
3.6 Übersicht: Prozesse und Jobs steuern
Tabelle 3.2: Prozesse und Jobs steuern
Kommando
Kurzbeschreibung
Details
at
Jobs zur einmaligen Ausführung zu einem bestimmten Zeitpunkt in eine Warteschlange stellen
Seite 119
atq
Die at-Jobs in einer Warteschlange anzeigen lassen
Seite 119
atrm
Die at-Jobs aus einer Warteschlange löschen
Seite 119
batch
Jobs zu einem späteren Zeitpunkt (in Abhängigkeit
von der Systemauslastung) ausführen lassen
Seite 119
bg
Angehaltene Programme im Hintergrund fortsetzen
Seite 121
crontab
periodische Aufträge, die durch den cron-Daemon gestartet werden, verwalten
Seite 139
fg
Angehaltene Programme im Vordergrund fortsetzen
Seite 165
fuser
Ausgabe der PID, die angegebene Dateien bzw. Dateisysteme verwenden
Seite 173
46
3.6 Übersicht: Prozesse und Jobs steuern
Tabelle 3.2 – Fortsetzung
Kommando
Kurzbeschreibung
Details
jobs
Aktuelle Hintergrundprozesse der Shell anzeigen
Seite 194
kill
Signale an Prozesse anhand der Prozessnummer senden
Seite 197
killall
Mit Prozessen anhand des Namens Signale senden
Seite 197
ldd
Anzeige der dynamischen Abhängigkeiten eines Programms
Seite 200
nice
Kommando mit einer bestimmten Priorität (einem bestimmten Nice-Wert) ausführen
Seite 228
nohup
Ignorieren der Signale SIGINT, SIGQUIT und SIGHUP
Seite 231
ps
Prozess-Status anzeigen
Seite 238
pstree
Aktive Prozesse in Baumstruktur anzeigen
Seite 242
renice
Priorität eines bereits laufenden Prozesses manipulieren
Seite 249
time
Dauer von Kommandoausführung messen und anzeigen lassen
Seite 276
times
Benutzer- und Systemzeiten für Prozesse der aktiven
Shell anzeigen lassen
Seite 277
top
CPU-intensive Prozesse ausgeben
Seite 277
trap
Signale abfangen
Seite 284
47
Kapitel 4
Dateisystem
4.1
Die Linux-Verzeichnishierarchie
Mit der Installation ihres Linux-Systems werden bereits viele Programme und
Konfigurationsdateien auf Ihren Computer kopiert. Alle diese Dateien sind hierarchisch in Verzeichnissen geordnet. Nachfolgende Tabelle 4.1 enthält die wichtigsten Verzeichnisse, die nach einer Installation vorhanden sind. Die Schrägstriche (/) bei den Verzeichnisnamen haben eine besonderer Bedeutung. Befindet sich der Schrägstrich am Anfang eines Verzeichnisnamens zeigt das an, dass
das Verzeichnis direkt unterhalb des Hauptverzeichnisses (root) ist. Trennt der
Schrägstrich Verzeichnisnamen wie in /usr/bin zeigt das an, dass sich das Verzeichnis mit dem Namen bin in der Hierarchie unter dem Verzeichnis mit dem
Namen usr befindet.
Als Benutzer werden Sie hauptsächlich in ihrem Heimat-Verzeichnis (auch Home-Verzeichnis genannt) /home/<Anmeldename> arbeiten und dort ihre eigene
Verzeichnishierarchie aufbauen, ihre Dateien speichern. Alle anderen Verzeichnisse enthalten Dateien, die vom System benötigt werden.
Tabelle 4.1: Die Linux-Verzeichnishierarchie
Verzeichnis
Inhalt
/
Hauptverzeichnis (sog. root) für alle Benutzer, oberste
Ebene der Hierarchie.
/boot
Enthält die Start-Dateien (Kernel) des Systems.
/bin
(binary) Verzeichnis für häufig benutzte Programme.
/dev
(device) Verzeichnis für Geräte-Dateien.
49
4 Dateisystem
Tabelle 4.1 – Fortsetzung
Verzeichnis
Inhalt
/etc
Verzeichnis für Dateien zur Administration und Konfiguration des Systems.
/home
Enthält die Benutzerverzeichnisse (Heimat-Verzeichnisses), der dem System bekannten Benutzer.
/lib
(library) Verzeichnis für Programmbibliotheken
/media
Enthält Verzeichnisse, die mit bestimmten Datenträgern,
wie Diskettelaufwerk und CD, verbunden sind.
/opt
(option) Verzeichnis für Programmepakete, z. B. KDE,
Gnome, Open-Office, die optional installiert wurden.
/proc
Eigentlich kein wirkliches Verzeichnis, enthält LaufzeitInformationen zum System und zum Speicher.
/tmp
(temporary) Platz für temporäre Dateien, die vom System, verschieden Programmen oder Benutzern erstellt
werden.
/usr
(unix special resource) Platz für Verzeichnisse, die verschiedene Programme, Bibliotheken und Dokumentationen enthalten.
/usr/bin
Programme für alle Benutzer.
/usr/include
Include-Dateien für die C / C++ Programmierung.
/usr/lib
Bibliotheken für verschiedene Programmiersprachen (je
nach Installation).
/usr/share
Verzeichnis für gemeinsam genutzte Dateien und Dokumentationen.
/usr/share/man
(manual) Enthält die Manual-Pages, die mit man aufgerufen werden.
/usr/sbin
(special binary) Enthält Programme zur Administration des Systems, die nicht für alle Benutzer verwendbar
sind.
/usr/src
(source) Quellcode des Systems, falls dieser installiert
wurde.
/sbin
(special binary) Programme zur Administration, die nur
für bestimmte Benutzer (root oder Administratoren) zur
Verfügung stehen.
50
4.2 Dateiarten
Tabelle 4.1 – Fortsetzung
Verzeichnis
Inhalt
/var
(variable) Verzeichnis für variable Daten wie DruckerWarteschlangen, Log-Dateien, Mails und Prozessnummern verschiedener Dienste.
4.2
Dateiarten
In Linux- und Unix-Systemen gibt es verschiedene Arten von Dateien. Im Grunde wird alles als Datei bezeichnet, von dem aus Daten gelesen oder wohin Daten geschrieben werden können. Beispielsweise werden Netzwerkverbindungen
(Stream), Terminals, Pipes, die Tastatur und der Bildschirm aus Sicht des Betriebssystems als Dateien betrachtet. Die Tabelle 4.2 gibt Auskunft über die Dateiarten,
die Linux benutzt.
Tabelle 4.2: Dateiarten unter Linux
Art
Verwendung
Reguläre Datei
Dies ist der gebräuchlichste Dateityp. Dies sind Programmdateien, Datenbankdateien, Bilddateien, Videodateien, Klangdateien, normale Textdateien und
alle Dateien, die ein Benutzer mit Büroanwendungen
erstellt.
Verzeichnisse
Dies sind Dateien, die zur Verwaltung dienen (Ordner) und können beliebige Dateien enthalten.
Zeichenorientierte
Geräte
Dies sind Spezialdateien und repräsentieren serielle
Geräte wie Terminals, Drucker oder das Netzwerk.
Sie erlauben eine eigene Pufferung durch den zugeordneten Treiber.
Blockorientierte Geräte
Spezialdateien für Geräte wie Harddisklaufwerke,
die dem Betriebssystem die Pufferung überlassen.
51
4.4 Datei-Berechtigungen steuern
Tabelle 4.3 – Fortsetzung
Kommando
Kurzbeschreibung
Details
updatedb
Aktualisieren der locate-Datenbank
Seite 294
4.4
Datei-Berechtigungen steuern
In Mehrbenutzersystemen können mehrere Anwender auf das Dateisystem zugreifen. Aus diesem Grund werden Berechtigungen vergeben, die regeln, welche
Dateien von welchen Benutzern gelesen, bearbeitet oder ausgeführt werden dürfen. Linux- und Unix-Systeme kennen drei Rechte:
❏ das Leserecht (r) (engl. read),
❏ das Schreibrecht (w) (engl. write) und
❏ das Ausführrecht (x) (engl. execute).
Die Vergabe dieser Rechte erfolgt jeweils für den
❏ Eigentümer (u) (engl. user),
❏ einer Gruppe (g) (engl. group), der die Datei zugeordnet ist, und
❏ die anderen (o) (engl. others), die nicht Eigentümer oder Mitglied der Gruppe
sind.
Zusätzlich können jeder Datei noch Funktionen zugeteilt werden, die sich auf das
Verhalten von ausführbaren Dateien, auf die Weitergabe von Rechten innerhalb
von Verzeichnissen und auf die Nutzung des Speichers auswirken. Details finden sich in den Befehlsbeschreibungen zu chattr auf Seite 126 und lsattr auf
Seite 210.
All diese Rechte und Sonderfunktionen werden in der I-Node-Tabelle einer Datei
gespeichert. Hiefür stehen 12 Bit zur Verfügung. Ist ein Recht vergeben, ist das
jeweilige Bit wie ein Schalter auf 1 (an) gesetzt.
Die Tabelle 4.4 beschreibt die einzelnen Rechte und Funktionen.
Tabelle 4.4: Rechte und Funktionen
Kürzel
Beschreibung
r
read (Lese-Recht)
Dieses Bit ermöglicht das Lesen einer Datei. Für Verzeichnisse bewirkt es, dass
der Inhalt des Verzeichnisses mit ls gelesen werden kann.
w
write (Schreib-Recht)
Dieses Bit ermöglicht das Schreiben in eine Datei. Bei Verzeichnissen ist das
Umbenennen, Erstellen oder Löschen von Dateien nur über die Kombination
aus den Rechten w und x möglich.
61
4 Dateisystem
Tabelle 4.4 – Fortsetzung
Kürzel
Beschreibung
x
execute (Ausführ-Recht)
Dieses Bit ermöglicht das Ausführen einer Datei. Allerdings muss auch das
Lese-Recht (r) vorhanden sein, um die Datei auszuführen. Nur wenn dieses
Recht für ein Verzeichnis vergeben ist, kann in das Verzeichnis mit cd gewechselt werden. Außerdem können Dateien und Unterverzeichnisse in einem Verzeichnis nur angelegt oder gelöscht werden, wenn außer dem Schreib-Recht
auch dieses Recht vorhanden ist.
s
SUID-Bit (set user ID)
Ist diese Bit für eine ausführbare Datei gesetzt, wird der Prozess nicht mit
der Benutzer-ID des aufrufenden Benutzers, sondern mit der Benutzer-ID des
Datei-Eigentümers gestartet. Beispielsweise ist das Programm /bin/passwd
mit diesem Bit ausgestattet. Erst dadurch ist es möglich, dass jeder Benutzer
sein eigenes Passwort ändern kann, denn nur root hat die Rechte, in die Dateien
zur Benutzerverwaltung, /etc/passwd und /etc/shadow, zu schreiben. Es
versteht sich von selbst, dass diese Funktion nur mit äußerster Vorsichtig eingesetzt werden soll.
g
SGID-Bit (set group ID)
Für Dateien ist die Funktionsweise dieselbe wie bei SUID, nur auf Gruppen bezogen. Ist es für ein Verzeichnis gesetzt, werden alle in diesem Verzeichnis angelegten Dateien nicht der Gruppe des Ersteller (owner) zugeordnet, sondern
erhalten die gleiche Gruppenzugehörigkeit wie das Verzeichnis selbst. Interessanterweise wirkt sich das SGID-Bit auch die Unterverzeichnisse aus. Wird ein
Unterverzeichnis in einem Verzeichnis mit SGID-Bit erstellt, so wird bei diesem
das SGID-Bit automatisch gesetzt.
t
Sticky-Bit
Der ursprüngliche Einsatzbereich dieses Bits lag darin, die Ladezeit von Programmen zu verringern. Ein Programm mit gesetzten Sticky-Bit (Klebe-Bit)
wurde nach dem ersten Start im Speicher gehalten, um es bei erneutem Starten
nicht mehr vom Datenträger holen zu müssen. Auch heute ist diese Funktionsweise noch vorhanden, wird allerdings wegen der inzwischen performanteren
Hardware kaum noch eingesetzt. Wird dieses Bit auf ein Verzeichnis angewendet, so kann ein Benutzer nur die Dateien in diesem Verzeichnis löschen, deren
Eigentümer er ist. Ausgenommen ist der Benutzer root, der alle Dateien löschen
kann. Dieses Verhalten wird insbesondere bei Verzeichnissen für temporäre Dateien /tmp genutzt. Jeder Benutzer darf in dieses Verzeichnis Dateien stellen,
allerdings darf sie nur der Eigentümer der Datei umbenennen oder löschen.
62
4.4 Datei-Berechtigungen steuern
Folgende Darstellung zeigt die 12 Rechte-Bits und ihre Zuordnung:
Zuordnung
Kürzel
Oktalwert
Bitposition
Funktion
s
g
t
4
2
1
12 11 10
Eigentümer
r
w
x
4
2
1
9
8
7
Gruppe
r
w
4
2
6
5
Andere
r
w
4
2
3
2
x
1
4
x
1
1
Alle Rechte, Funktionen und die Zuordnung einer Datei zum Eigentümer und
zur Gruppe dürfen vom Eigentümer der Datei und vom Benuzter root verändert
werden. Bei der Vergabe von Rechten wird in Linux oft auf die oktale Schreibweise zurückgegriffen. Dies ergibt sich aus der Konstellation, dass jeweils 3 Rechte
oder Funktionen zur Verfügung stehen. Zur Darstellung der größten Ziffer des
oktalen Zahlensystems (7) benötigt man auch 3 Bit ( 1 + 2 + 4 = 7).
Hierzu ein paar Beispiele:
Die Rechte ---rwxrw-r-- bedeuten Oktal 0754:
Kürzel
Bits
Oktalwert
addiert
0
-
Funktion
0
0
0
r
1
4
Eigentümer
w
x
1
1
2
1
7
Gruppe
r
x
1
0
1
4
1
5
r
1
4
Andere
0
0
4
Für eine Datei bedeutet diese Rechte-Konstellation, dass der Eigentümer alles
darf, die Gruppe nur lesen und ausführen, alle anderen nur lesen dürfen. Für
ein Verzeichnis bedeuten diese Rechte, dass der Eigentümer alles, die Gruppe
nur das Verzeichnis mit ls lesen (r) und mit cd in das Verzeichnis wecheln (x)
darf. Für alle anderen bedeuten diese Rechte, dass sie zwar das Verzeichnis lesen
dürfen jedoch nicht in das Verzeichnis wechseln.
Die Rechte ---rw-rw---- bedeuten oktal 0640:
Kürzel
Bits
Oktalwert
addiert
Funktion
0
0
0
0
Eigentümer
r
w
1
1
0
4
2
6
Gruppe
r
1
0
4
4
0
-
Andere
0
0
0
0
-
Für eine Datei bedeuten diese Rechte, dass der Eigentümer nur lesen und schreiben darf (allerdings darf der Eigentümer die Rechte seiner Dateien jederzeit verändern, er darf ihnen also selbst fehlende Rechte geben). Die Gruppe darf die Datei nur lesen. Alle anderen sehen zwar die Datei mit ls, wenn die entprechenden
Verzeichnisrechte vergeben wurden, können aber weder lesend noch schreibend
auf diese Datei zugreifen. Auf ein Verzeichnis bezogen bedeuten diese Rechte,
dass der Eigentümer das Verzeichnis lesen darf, allerdings nicht in das Verzeichnis wechseln darf (fehlendes x). Das Schreibrecht ist demzufolge überflüssig, da
nur die Kombination von Schreib- und Ausführ-Recht das Schreiben, Löschen
63
4 Dateisystem
und Erstellen innerhalb des Verzeichnisses erlauben. Die Gruppe und alle anderen haben hier somit effektiv die gleichen Rechte wie der Eigentümer.
Das Rechte -gtrwxrwxr-x bedeuten oktal 3775:
Kürzel
Bits
Oktalwert
addiert
Funktion
g
t
0
1
1
2
1
3
Eigentümer
r
w
x
1
1
1
4
2
1
7
Gruppe
r
w
1
1
4
2
7
x
1
1
Andere
r
1
0
4
5
x
1
1
Das letzte Beispiel bedeutet für eine Datei, dass der Eigentümer und die Gruppenmitglieder alles dürfen. Alle anderen dürfen die Datei nur lesen und ausführen. Die Datei wird nach dem ersten Starten im Speicher gehalten (t) und
muss nicht neu vom Datenträger geladen werden. Diese Datei wird mit den Rechten der ihr zugeordneten Gruppe ausgeführt (g) und nicht mit den Rechten der
Gruppe der ein ausführender Benutzer angehört.
Für ein Verzeichnis bedeuten diese Rechte, dass alle Dateien, die im Verzeichnis erstellt werden, die Gruppenzugehörigkeit des Verzeichnisses erhalten, nicht
die des erstellenden Benutzers (g). Außerdem darf ein Benutzer nur die Dateien
löschen und umbenennen, die er selbst erstellt hat (t). Alle dürfen in das Verzeichnis wechseln (x) und den Inhalt des Verzeichnisses mit ls ansehen (r). Nur
der Eigentümer und die Gruppe dürfen Dateien im Verzeichnis erstellen (w).
4.4.1 Rechte verändern mit chmod
Der Eigentümer eine Datei und der Benutzer root können die Rechte mit dem
Kommando chmod verändern.
chmod [Optionen] Rechte Dateien
Das Kommando chmod erlaubt die Angabe von Rechten in der oktalen Schreibweise und mit Kürzeln. Die oktale Schreibweise bietet den Vorteil, dass die ursprünglichen Rechte durch die neuen Rechte überschrieben werden, ist also immer eindeutig.
Folgende Beispiele zeigen die oktale Rechtevergabe mit chmod:
chmod 4754 d
Setzt für die Datei d die Rechte s--rwxr-xr--, d. h. es wird das SGID-Bit gesetzt, für den Eigentümer werden alle Rechte gesetzt, für die Gruppe werden die
Rechte Lesen und Ausführen gesetzt, für die anderen wird nur das Lese-Recht
gesetzt.
chmod 644 d
Setzt für die Datei d die Rechte ---rw-r--r--, d. h. für den Eigentümer werden die Rechte lesen und ausführen gesetzt, für die Gruppe und alle anderen
wird nur das Recht lesen gesetzt.
Will man nur bestimmte Rechte entziehen oder vergeben, ohne andere Rechte zu
64
Kapitel 5
Systemverwaltung
Im diesem Kapitel werden wichtige Linux-Befehle zur Syystemmverwaltung mit
Optionen und kleinen Beispielen beschrieben. Zunächst erfolgt eine Übersicht
der Befehle nach Themen. Da eine genaue Zuordnung eines Befehls nicht immer
machbar ist tauchen manche Kommandos in mehreren der folgenden Tabellen
auf. Danach werden kurz ein paar Erläuterungen zur syntaktischen Darstellung
in den Befehls-Beschreibungen gegeben.
5.1
5.1.1
Laufzeitumgebung und Sitzungsinformationen
verwalten
Einführung
Die Shell ist über Variablen konfigurierbar. Eine Variable ist ein kurzer Name für
einen Wert. Ein Wert ist eine Zahl, ein Audruck, ein Text oder ein Kommando.
Variablen sind flüchtig, d.h. bei jedem Neustart der Shell werden die Variablen
neu initialisiert. Veränderungen oder neu erstellte Variablen gehen also verloren,
wenn sie nicht permanent in einer Datei gespeichert werden. Meist erfolgt das
Speichern von Variablen in den dafür vorgesehenen Startskripten. Diese Startskripte setzen die Variablen für das System, die Benutzerumgebung und für Programme. Unterschieden werden sog. Shell-Variablen und Umgebungsvariablen
(Environment-Variable).
5.1.1.1
Shell-Variablen
Variablen, die nur innerhalb der aktuellen Shell gültig sind, werden als ShellVariable bezeichnet. Erstellt wird eine Shell-Variable, indem man einem Variablennamen durch das Gleichheitszeichen (=), einen Wert zuweist. Das Komman-
81
5 Systemverwaltung
do summe=0 weist der Variablen summe den Wert 0 zu. Bei der Zuweisung darf
kein Leerzeichen zwischen dem Variablennamen und dem Wert stehen. Enthält
der Wert Leerzeichen, muss er mit Hilfe von Quoting-Zeichen zugewiesen werden (text=’a b c d’). Der Zugriff auf den Inhalt einer Variablen erfolgt durch
das $-Zeichen, das dem Variablennamen vorangestellt wird.
Um den Inhalt der Variablen summe auszugeben oder zu verwenden, gibt man
demnach $summe ein. Die Variable hinter dem $-Zeichen wird durch Ihren Wert
ersetzt (Variablensubstitution). Die folgenden Beispiele verdeutlichen den Umgang mit Variablen.
Zunächst werden den Variablen vorname und nachname die Werte Felix und
Krull zugewiesen und anschließend mit dem Kommando echo ausgegeben. Es
findet eine Ersetzung der Variablen durch die Werte statt:
user@linux:/home/user > vorname=Felix
user@linux:/home/user > nachname=Krull
user@linux:/home/user > echo $vorname $nachname
Felix Krull
Fehlt das $-Zeichen, wird nur der Variablenname ausgegeben:
vorname
Gibt man nur $vorname ohne die Verwendung des Kommandos echo ein, wird
die Variable ersetzt und die Shell versucht, den Wert zu interpretieren. Die Kommandos wer=who und echo $wer verdeutlichen dieses Verhalten.
user@linux:/home/user > $vorname
bash: Felix: command not found
user@linux:/home/user > wer=who
user@linux:/home/user > $wer
user
:0
Jul 28 07:29 (console)
Die Variablen vorname und nachname werden im folgenden einer Variablen
name zugewiesen. Da zwischen den beiden substituierten Werten ein Leerzeichen stehen soll, müssen die Variablen zusammen mit dem Leerzeichen in Quoting-Zeichen eingeschlossen werden. Verwendet man anstelle der doppelten Anführungszeichen (“ “) nur einfache Anführungszeichen (’ ’)1 , verliert das $Zeichen seine besondere Bedeutung und die Variablen werden nicht durch ihre
Werte ersetzt:
user@linux:/home/user
user@linux:/home/user
user@linux:/home/user
user@linux:/home/user
1 bei
82
>
>
>
>
vorname=Felix
nachname=Krull
name="$vorname $nachname"
echo $name
Shift +
#
eingeben kann
vielen Tastaturen das Zeichen, das man mit 5.1 Laufzeitumgebung und Sitzungsinformationen verwalten
Felix Krull
user@linux:/home/user > name=’$vorname $nachname’
user@linux:/home/user > echo $name
$vorname $nachname
Wird der Wert einer Variablen als Bestandteil einer Zeichenfolge benötigt, so
muss der Variablenname in geschweifte Klammern gesetzt werden, da sonst kein
Trennzeichen (Leerzeichen) zwischen Variablenname und Text vorhanden ist und
die Shell beide zusammen als einen Variablennamen sieht.
user@linux:/home/user > verz1=/home/user/
user@linux:/home/user > echo ${verz1}privat
/home/user/privat
Wenn Sie das Ergebnis eines Kommandos einer Variablen zuweisen wollen, müssen Sie die Quoting-Zeichen für Kommandosubstitution verwenden. Der Variablen datum wird das Ergebnis des Kommandos date zugewiesen und nicht das
Kommando date. Während sich die Uhrzeit bei der Eingabe von date verändert, bleibt der Inhalt der Variablen datum unverändert:
user@linux:/home/user >
user@linux:/home/user >
Mi Jul 28 11:05:14 CEST
user@linux:/home/user >
Mi Jul 28 11:13:22 CEST
user@linux:/home/user >
Mi Jul 28 11:05:14 CEST
datum=‘date‘
echo $datum
2008
date
2008
echo $datum
2008
Mit dem Kommando set wird eine Liste aller definierten Variablen auf der Konsole angezeigt. Löschen kann man eine Variable mit dem Kommando unset.
user@linux:/home/user
user@linux:/home/user
Felix
user@linux:/home/user
user@linux:/home/user
> vorname=Felix
> echo $vorname
> unset vorname
> echo $vorname
user@linux:/home/user >
5.1.1.2
Umgebungsvariablen
Mit Umgebungsvariablen oder Environment-Variablen wird die Umgebung der
Shell gesteuert. Diese Variablen werden in Startdateien, die beim Starten der bash
ausgeführt werden, mit Werten initialisiert. Zur besseren Übersicht sind die Variablennamen meist in Großbuchstaben geschrieben. Eine Umgebungsvariable
zeichnet sich dadurch aus, dass sie an Kind-Prozesse weitergegeben wird. Mit
83
Kapitel 6
Befehlsübersicht a-z
6.1
Hinweise zu Befehlsoptionen
Allgemein haben Linux--Befehle das Format:
Kommando [Option[Arugment]][...]
Optionen beginnen meist mit einem vorangestelltem Minus-Zeichen (-) und können ggf. Argumente besitzen. Folgende Optionen gibt es bei vielen Befehlen.
Tabelle 6.1: Allgemeine Optionen
Option
Beschreibung
-h, --help
Mit dieser Option werden eine kurze Syntaxbeschreibung
und die möglichen Optionen des Befehls ausgegeben
-v, --verbose
Mit dieser Option wird der Befehl meist veranlaßt, eine sog.
wortreiche Ausgabe durchzuführe. Man kann auch sagen,
der Befehl ist mit dieser Option „geschwätziger“.
-r, -R
steht für rekursiv und weist den Befehl an, auch Unterverzeichnisse in seine Aktivitäten einzubeziehen. Befehle, die
mit Dateien und Verzeichnissen arbeiten, besitzen diese Option.
6.1.1
Erläuterungen zur syntaktischen Beschreibung
Die Überschrift zu jedem Befehl enthält den Namen und die Sektionsnummer
der man-Pages. Jede Befehlsbeschreibung enthält folgende Bereiche:
115
6 Befehlsübersicht a-z
❏ ❙ Einsatz:
ob es sich um ein Anwender- , Administratoren-Kommando oder einen Dienst
handelt
❏ ❙ Anwendung:
eine kurze Erklärung, was der Befehl macht
❏ ❙ Syntax:
eine syntaktische Beschreibung des Befehls
❏ Tabelle mit Optionen:
eine Beschreibung der Optionen, sofern vorhanden
❏ ❙ Beispiel:
ein oder mehrer Beispiele zur Anwendung des Befehls
❏ ❙ Besonderheiten:
beschreibt Besonderheiten des Befehls und Hinweise zur Ausführung (nicht
bei jedem Befehl vorhanden)
❏ Ausgabebeschreibung:
beschreibt die Ausgabe des Befehls (nicht bei jedem Befehl vorhanden)
❏ Dateien:
beschreibt Dateien die der Befehl nutzt oder verändert (nicht bei jedem Befehl vorhanden)
❏ ❙ Siehe auch:
enthält eine Liste von Kommandos, die im gleichen Kontext verwendet werden.
Folgende Tabelle 6.2 beschreibt die im weitern verwendeten Notationen bei der
syntaktischen Beschreibung eines Kommandos.
Tabelle 6.2: Eingesetzte Notation
Notation
Bedeutung
[A]
Angaben in eckigen Klammern [ ]
Klammern sind nicht einzugeben).
[A[B]]
A und B sind optional. A kann ohne B angegeben werden oder
beide zusammen. B alleine ist jedoch nicht erlaubt.
[...]
Mehrere Angaben des vorangehenden Typs können optional
wiederholt werden.
A | B [A | B]
Bei Angaben, die durch einen Strich | (ODER) getrennt sind,
darf wahlweise nur eine Angabe gemacht werden. (ODERZeichen sind nicht einzugeben)
116
sind optional (Die
6.1 Hinweise zu Befehlsoptionen
Tabelle 6.2 – Fortsetzung
Notation
Bedeutung
ABC +x
Begriffe, Zeichen und Buchstaben in Fettschrift sind Schlüsselwörter und exakt wie dargestellt einzugeben.
Wort N
Begriffe und Buchstaben in Kursivschrift sind durch die jeweils möglichen Angaben zu ersetzen.
DEL Return Tastenbezeichnung in Versalien sind Sondertasten oder Tastenkombinationen, z. B. Delete-Taste, Enter-Taste.
Tastenkombination (Taste CTRL gedrückt halten und Taste v betätigen).
Tastenfolge (zuerst Taste t betätigen, anschließend Taste z ).
+v CTRL t z Die Reihenfolge der Angaben ist in den meisten Fällen zwingend einzuhalten. Linux unterscheidet zwischen Groß- und Kleinschreibung. Die Begriffe Befehl und
Kommando werden in dieser Referenz gleichwertig im Sinne von BetriebssystemKommando verwendet. Der Begriff Kommando wird auch für Steueranweisungen in interaktiven Programmen verwendet.
Bei den Beispielen unterscheidet sich der Prompt je nach dem, ob es sich um ein
Kommando handelt das jeder Benutzer starten darf (user@linux:~ > ) oder
ob das Kommando vom Benutzer root auszuführen ist (linux: # ).
Beispiel:
shutdown
-h|-r [Optionen]
[-t sec] time
[warning-message]
Mit dem Befehl shutdown muss entweder die Option -h (halt) oder -r (reboot)
angegeben werden. Weitere Optionen sind optional. Die Option -t braucht jedoch die Angabe einer Sekundenanzahl (es ist die Anzahl der Sekunden, die zwischen dem Versenden des SIGTERM-Signals und dem darauffolgenden SIGKILLSignals verstreichen soll). Wird diese Option samt Sekundenangabe weggelassen, so greift der voreingestellte Standardwert. Die Angabe time muss unbedingt gemacht werden, um den Zeitpunkt des eigentlichen Herunterfahrens des
Systems zu spezifizieren. Die warning-message ist wiederum optional zu der
ohnehin erfolgenden Ausgabe, dass das System heruntergefahren wird. Mit den
Optionen können damit den Benutzern ergänzende Informationen geliefert werden. Ein tatsächlich abgesetzter Befehl kann wie folgt aussehen:
shutdown -h +10 Dringende Wartungsarbeiten
Das Herunterfahren des Systems soll in 10 Minuten durchgeführt werden. Als
warning-message erscheint „Dringende Wartungsarbeiten“.
shutdown -rf now
117
6 Befehlsübersicht a-z
Das Herunterfahren des Systems soll sofort (statt now kann auch +0 angegeben
werden) und als reboot durchgeführt werden (-r), wobei jedoch ein sog. fast
reboot (-f) durchgeführt wird, d. h. beim Hochfahren des Systems wird die Überprüfung des Dateisystems ausgelassen. Es ist keine warning-message angegeben.
6.1.2 Linux-Befehle
alias (bash-builtin)
❙ Einsatz: Anwender
❙ Anwendung: alias ist eine interne Shell-Funktion (kein eigener Prozess). Abkürzungen für Befehle
definieren. Die Shell gestattet es, für Befehle und deren Parameter Alias-Namen zu definieren. Vor
allem bei häufig gebrauchten bzw. komplexen Befehlen ist dies sinnvoll. Mit Alias-Namen kann man
nicht nur bestehende Kommandos verändern, man kann auch neue Kommandos definieren.
❙ Syntax: alias neuerBefehl="alter Befehl"
❙ Besonderheiten: Die Shell wertet zuerst die Alias-Namen aus. Wird der eingegebene Befehl nicht unter den Alias-Namen gefunden, so wird nach dem passenden Kommando im Dateisystem gesucht.
Alias-Namen haben damit auch Vorrang vor gleichnamigen Befehlen. Wenn man ein Alias mit dem
Befehl alias definiert, so gilt dieser Alias nur solange, bis die Shell beendet oder die Definition mit
dem Befehl unalias wieder rückgängig gemacht wird. Soll ein Alias-Name für einen Benutzer dauerhaft definieren werden, so muss die Alias-Anweisung in eine der Benutzerstartdateien (.profile)
im Heimatverzeichnis des Benutzers eingetragen werden. Wird die Alias-Anweisung in die Datei
.bashrc im Heimatverzeichnis des Benutzers eingetragen, so gilt der Alias auch in jeder Sub-Shell
der Login-Shell.
❙ Beispiel:
user@linux:~ > alias rm="rm -i"
Mit dieser Eingabe wird festgelegt, dass beim Ausführen des Löschbefehls rm der Befehl rm -i ausgeführt wird. Es wird also vor dem Löschen erst noch einmal nachgefragt.
❙ Siehe auch:: unalias auf Seite 291.
apropos (1)
❙ Einsatz: Anwender
❙ Anwendung: Erleichtert das Durchsuchen von man-pages zu einem bestimmten Thema. Das Kommando apropos durchsucht die Titel der man-pages und die in den man-pages entaltenen Kurzbeschreibungen nach dem angegebenen Stichwort. Wird eine Übereinstimmung gefunden, so wird
der Name der man-Page, die Sektion und eine Kurzbeschreibung des Befehls ausgegeben. Standardmäßig wird der Suchbegriff als regulärer Ausdruck behandelt. Das Stichwort kann auch Wildcards
enthalten (-w). Man kann die Suche auch auf das exakte Stichwort beschränken (-e).
❙ Syntax: apropos [-e|-w|-r] Stichwort
Tabelle 6.3: Optionen zu apropos
Option
Beschreibung
-r, --regex
Jedes Stichwort wird als regulärer Ausdruck verstanden, was auch dem Standardverhalten entspricht.
118
6 Befehlsübersicht a-z
user@linux:~ > cd ..
Das Verzeichnis /etc wird zum neuen Arbeitsverzeichnis:
user@linux:~ > cd /etc
Es wird ins vorherige Arbeitsverzeichnis zurückgewechselt:
user@linux:~ > cd -
cfdisk (8)
❙ Einsatz: root
❙ Anwendung: Partitionierung der Festplatte. Der Befehl cfdisk erfüllt die gleiche Funktion wie der
Befehl fdisk, nur ist er übersichtlicher und komfortabler, da er über die Pfeil-Tasten und ein Menü
bedient werden kann. Wird cfdisk aufgerufen, so liefert er zunächst eine Übersicht über die aktuelle Partitionierung der Festplatte (gefundenen Partitionen und jeweilige Größe). Mit den Pfeil-nachoben/unten Tasten kann die Partition ausgewählt werden, mit den Pfeil-nach-rechts/links Tasten
können aus dem vorhandenen Menü die Befehle ausgewählt werden.
❙ Syntax: cfdisk [Optionen] [Gerät]
Tabelle 6.8: Optionen zu cfdisk
Option
Beschreibung
-a
Als Cursor wird ein Pfeil, anstelle einer invertierten Zeile dargestellt.
-g
Verwendet nicht die Plattengemoetrie des Festplatten-Treibers
-z
Startet das Programm mit einer leeren Partitionstabelle, Partitionen auf der Festplatte
bleiben zunächst erhalten
-c cyl
überschreibt BIOS-Zylinder mit cyl
-h hd
überschreibt BIOS-Köpfe mit hd
-s sec
überschreibt BIOS-Sektoren pro track sec
-P opt
Gibt die Paritionstabelle im angegebenen Format opt aus. Formate sind: „r“ (rawDaten-Format), „s“ (sector-order-Format),“t“ (partion-table-raw-format)
❙ Besonderheiten: Sollte der Befehl cfdisk auf einem System nicht zur Verfügung stehen, so verwenden Sie das dialogorientierte nicht ganz so komfortable fdisk. Es versteht sich, dass dieses Kommando mit äußerster Vorsicht verwendet werden muss!
❙ Beispiel:
linux:~ # cfdisk
Es wird die aktuelle Partitionierung von /dev/hda ausgegeben (Standard).
❙ Siehe auch: fdisk auf Seite 164.
chage (1)
❙ Einsatz: root
❙ Anwendung: Einstellungen zu Benutzerpasswörtern vornehmen, (chage = change age). Dies betrifft vor allem Passwort-Lebensdauer und Passwort-Verfallsdatum. Sämtliche Zeiteinstellungen zu
den Passwörtern werden in der Datei /etc/shadow gespeichert. Die Einstellungen in der Datei
124
6.1 Hinweise zu Befehlsoptionen
/etc/shadow haben Vorrang vor den Einstellungen in der Datei /etc/passwd, d. h. ist ein Passwort
tatsächlich abgelaufen, so schafft auch das Ausschalten der Passwortabfrage in der /etc/passwd
(das „x“ im Passwort-Feld (2. Feld) entfernen) keine Abhilfe.
❙ Syntax: chage [-m min_days] [-M max_days] [-d last_day] [-I inactive]
[-E expire_date] [-W warn_days] Benutzer
chage -l Benutzer
Tabelle 6.9: Optionen zu chage
Option
Beschreibung
-m min_days
Der als min_days angegebene Wert gibt die Mindestanzahl an Tagen an,
die das Passwort nicht geändert werden darf. Setzt man hier den Wert 0
ein, so darf der Benutzer sein Paßwort jederzeit ändern. (4. Feld der Datei
/etc/shadow).
-M max_days
Der mit max_days angegebene Wert bezeichnet die maximale Anzahl an Tagen die das Passwort, gerechnet ab der letzten Passwort-Änderung, gültig
ist. Der Benutzer muss sein Passwort vor Ablauf dieser Frist ändern, will er
das Ablaufen seines Passworts und das anschließende Sperren seines Kontos verhindern. (5. Feld der Datei /etc/shadow). Sinnvollerweise wird ein
„Warn-Countdown“ (Option -W) und eine Gnadenfrist (Option -I) eingestellt.
-d last_day
Der Wert last_day bezeichnet das Datum der letzten Passwort-Änderung.
Er kann entweder als Anzahl der Tage seit dem 1.1.1970 oder als Datum mit dem Format JJJJ-MM-TT angegeben werden (3. Feld der Datei
/etc/shadow).
-E expire_date
Dies ist das absolute Verfallsdatum des Benutzerkontos. An dem hier angegebenen Datum wird das Konto unabhängig aller anderen Einstellungen gesperrt. Der Wert expire_date kann entweder als Anzahl der Tage seit dem
1.1.1970 oder als Datum im Format JJJJ-MM-TT angegeben werden (8. Feld
der Datei /etc/shadow).
-I inactive
Der Wert inactive bezeichnet die Anzahl der Tage, die das Passwort nach Ablauf der maximalen Passwort-Gültigkeitsdauer immer noch gültig ist. Wird
hier der Wert 0 eingesetzt, so kann kein regelmäßiges Ändern des Passworts
durch den Benutzer erzwungen werden (7. Feld der Datei /etc/shadow).
-W warn_days
Der Wert warn_days bezeichnet die Anzahl der Tage, ab denen der ”WarnCountdown” läuft. Beim Einloggen erhält der Benutzer ab diesem Tag bei
jeder Anmeldung einen Hinweis, in wie vielen Tagen sein Passwort abläuft
(6. Feld der Datei /etc/shadow).
-l Benutzer
(list) die Abfrageoption ermöglicht allen Usern, ihre Passwort-Einstellungen
abzufragen.
❙ Besonderheiten: Ohne Angabe einer Option wird ein interaktives Programm gestartet, welches ermöglicht, die aktuellen Werte aller Felder der Datei /etc/shadow der Reihe nach zu bearbeiten. Die
aktuellen Werte sind in eckigen Klammern angegeben. Gibt man einen neuen Wert ein, so wird er
übernommen, gibt man nichts ein, so gilt weiterhin der aktuelle Wert.
Statt mit dem Kommando chage können sämtliche Passwort-Einstellungen durch Editieren der Datei /etc/shadow vorgenommen werden. Zum Aufbau der /etc/shadow (siehe man 5 shadow).
Feldangaben in den folgenden Ausführungen beziehen sich immer auf die Datei /etc/shadow.
125
6 Befehlsübersicht a-z
Soll aus Sicherheitsgründen ein regelmäßiges Ändern des Passwortes erzwungen werden, muss neben der Mindest-Lebensdauer und der maximalen Lebensdauer unbedingt auch eine Angabe gemacht werden, wie lange das Passwort nach Ablauf der maximalen Lebensdauer noch gültig ist, es
muss ein Wert >=1 angegeben werden!
Will man verhindern, dass ein Benutzer sein Passwort selbst verändern kann, so genügt es, die Mindest-Passwort-Lebensdauer höher einzustellen als die maximale Passwort-Lebensdauer.
❙ Beispiel:
linux:~ # chage -M 20 peter
Die Maximale Passwort-Lebensdauer für den Benutzer peter wird auf 20 Tage festgelegt.
linux:~ # chage -E 2008-07-31 peter
Das absolute Verfallsdatum für das Konto des Benutzers peter wird auf den 31. Juli 2008 festgelegt.
linux:~ # chage peter
Ändere Shadow-Informationen für peter.
Minimales Passwortalter [0]: 20
Maximales Passwortalter [99999]: 50
Password Expiration Warning [7]:
Passwort Inaktive [-1]: 2
Letzte Passwortänderung (JJJJ-MM-TT) [2004-08-14]:
Account Expiration Date (YYYY-MM-DD) [1969-12-31]: 2004-09-30
Aging-Informationen geändert.
Hier wurde das interaktive Programm zur Bearbeitung der Passwort-Einstellungen gestartet. Bei den
ersten beiden und beim letzten Eintrag wurden die aktuellen Werte überschrieben, der Rest wurde durch Drücken der Enter-Taste beibehalten. Die neuen Einstellungen können wie folgt abgefragt
werden:
linux:~ # chage -l peter
Minimum:
20
Maximum:
50
Warning:
7
Inactive:
2
Last Change:
Aug
Passwort verfällt:
Okt
Passwort Inaktive:
Okt
Account verfällt:
Sep
14,
03,
05,
30,
2004
2004
2004
2004
chattr (1)
❙ Einsatz: Anwender
❙ Anwendung: Änderung von Dateiattributen (chattr = change attributes) in einem Linux-Dateisystem
vom Typ ext2 oder ext3. Sämtliche Verwaltungsinformation zu Dateien wird im jeweiligen Inode
gespeichert, so auch die Dateiattribute, die meist nicht näher erläutert werden. Man sollte jedoch
zumindest ihr Konzept verstanden haben, selbst wenn man nicht so oft in die Verlegenheit kommen
wird, sie anzuwenden. Die Attribute stellen sozusagen eine tiefergehende Ebene der Dateirechte dar.
Vor allem für einige wichtige Systemdateien ist das Setzen dieser Attribute sinnvoll. Mit dem Befehl
lsattr (= list attributes) kann überprüft werden ob und welche Attribute für eine Datei gesetzt sind
(siehe Eintrag zu lsattr auf Seite 210).
126
Index
abmelden, 205
Alias löschen, 291
Anmeldezeiten ausgeben, 200
Archiv, 137
Archiv erstellen, 271
archivieren, 137
Attribute, 210
Attribute anzeigen, 210
Ausdruch auswerten, 274
Ausdruck (awk), 311
Ausdruck auswerten, 162
Ausführrecht, 61
Ausführungszeit anzeigen,
276
Ausgabe, 158
Ausgabeanweisung
(awk),
312
Benutzer erstellen, 91
Benutzer löschen, 296
Benutzereinstellungen
ändern, 297
Benutzeridentität wechseln,
268
Benutzerinformationen ausgeben, 170
Benutzerinformationen ändern, 128
Benutzerinformationen anzeigen, 189
Benutzerkonfigurationsdateien,
333
Benutzerliste anzeigen (angemeldet), 299
Benutzerverwaltung, 90
Berechnungen durchführen,
162
Berechtigung, 61
Bereich (awk), 311
Betriebssystem Informationen, 291
bg, 46
Bildschirm löschen, 134
Blockorientiertes Gerät, 51
break Anweisung, 27
Builtin-Variablen (awk), 314
bash, 4
Befehle abkürzen, 118
Befehle (vi), 318
Befehle gruppieren, 12
Befehlshistorie, 6
Befehlsinformationen anzeigen, 303
Befehlsvervollständigung, 5
Benutzer anlegen, 294
case Anweisung, 26
cd, 53
chgrp, 67
chmod, 64
chown, 67
chroot-Umgebung, 133
continue Anweisung, 27
cp, 55
/etc/fstab, 332
/etc/group, 91, 93, 328
/etc/inittab, 329
/etc/issue, 333
/etc/motd, 333
/etc/nologin, 333
/etc/passwd, 91, 92, 327
/etc/profile, 333
/etc/shadow, 91, 92, 328
Bourne Again Shell, 4
Cursorpositionierung
318
(vi),
Daemon, 108
Daemon Prozess, 38
Datei dekomprimieren, 181
Datei komprimieren, 182
Datei konvertieren, 147
Datei sortieren, 265
Datei umbenennen, 224
Datei aufteilen, 141, 267
Datei drucken, 207
Datei durchsuchen, 73
Datei Eigentümer, 67
Datei Gruppe, 67
Datei kopieren, 55, 136
Datei löschen, 57, 251
Datei nach Datum suchen, 58
Datei nach Größe suchen, 59
Datei rückwärts ausgeben,
269
Datei Rechte, 130
Datei suchen, 204
Datei umbenennen, 56
Datei verschieben, 56, 224
Dateianfang ausgeben, 185
Dateiart bestimmen, 166
Dateiarten, 51
Dateiattribute ändern, 126
Dateideskriptor, 5, 9
Dateieigentümer ändern, 132
Dateien
versteckte, 54
Dateien durchsuchen, 176
Dateien seitenweise ausgeben, 237
Dateien mischen, 265
Dateien suchen, 57, 167
335
Index
Dateien vergleichen, 135
Dateien verknüpfen, 195
Dateien zeilenweise verglichen, 136
Dateien
zusammenfügen,
123, 234
Dateiende ausgeben, 270
Dateiliste anzeigen, 209
Dateiname extrahieren, 155
Dateinamensubstitution, 11
Dateisystem, 77
Dateisystem
überprüfen/reparieren, 172
Dateisystem synchronisieren,
269
Dateisystem aushängen, 290
Dateisystem einhängen, 222
Dateisystem erstellen, 219
Dateisystem kopieren, 147
Dateisystem-Baums, 148
Dateisystemrechte, 61
Dateisystemstruktur, 77
Dateiunterschiede feststellen,
150
Dateiverarbeitung, 76
Dateizeit verändern, 280
Datenaustausch, 147
Datenblock, 76
Datensicherung, 68
Datum setzen, 145
Datum-Befehle, 112
Datumsformat, 145
Dekomprimierung, 181
DHCP, 107
Disketten formatieren, 163
DNS, 152
DNS Informationen ausgeben, 186
DNS Abfrage, 152
Dokumentation, 6
Domänen-Suchliste, 153
Druckauftrag, 206
Druckauftrag löschen, 208
drucken, 207
Drucker verwalten, 205
Druckerstatus, 205
Druckerwarteschlange anzeigen, 206
dump, 231
Dynamic Host Configuration
Protocol, 107
dynamische Bibliotheken, 200
336
effektive
Benutzeridentität
ausgeben, 306
Eingabemodus (vi), 319
Eingaben in Skripten, 32
Einstellungen änderen (vi),
325
Elternprozess, 38
Entpacken, 181
env, 84
Environment Variablen, 83
Environment-Variable, 81
Ergebnisse umlenken, 8
Exit-Code, 160
export, 84
ext-Dateisystem, 77
ext2 Dateisystem erzeugen,
218
ext2 Dateisysteminformationen, 156
ext2/3 Dateisystem überprüfen, 157
ext2/3 Dateisystem reparieren, 157
ext2/3 Parameter, 287
ext3 Dateisysteminformationen, 156
Fehlerausgabe umleiten, 9
fehlerhaftes Dateisystem, 148
Felder ausschneiden, 143
fg, 46
FIFO, 52
find, 57
finger print, 128
Finger-Information, 128
Finger-Informationen ausgeben, 170
for Anweisung über Liste, 22
for Anweisung mit Zähler, 22
fork, 37
Formatdeskriptor, 145
Formatstring (awk), 312
freier Speicherplatz, 149
Funktion, 13
Funktion beenden, 251
Funktion löschen, 293
Funktionen (awk), 313
Funktiosaufrufe (awk), 313
Gerätedatei anlegen, 220
GMT, 145
GNU info, 8
Greewich Mean Time, 145
grep, 73
group Datei überprüfen, 180
Gruppe erstellen, 177
Gruppe löschen, 178
Gruppen erstellen, 93
Gruppen-Einstellungen ändern, 179
Gruppen-Passwort zuweisen,
176
Gruppenidentifikation
ändern, 227
Gruppenmitgliedschaft anzeigen, 180
Gruppenzuordnung ändern,
129
gshadow Datei überprüfen,
180
Hardware-Uhr stellen, 188
Hardwareuhr, 112
Hash-Tabelle bearbeiten, 184
hexadezimal, 231
Hilfe ausgeben, 186
Hintergrundprozess, 45
Hintergrundprozesse, 194
Hintergrunprozess Beendigung abwarten, 300
History-Mechanismus, 6
I-Node, 78
if Anweisung, 24
Info-Dokumente anzeigen,
192
init Prozess, 37
Init-Prozeß, 37
init-Prozess, 194
inittab, 37
Internet Namensauflösung,
152
IPv6-Adresse, 191
job, 45
job-control, 194
Jobs, 165
jobs, 45
Journal, 148
Kalender, 122
Kanäle, 8
kill, 43
Kindprozess, 38
Kommando-Pfad ermitteln,
304
Kommandoausführung verzögern, 264
Index
Kommandos ausführen, 160
Kommandosubstitution, 12
Kommandosubstitutionszeichen,
12
Kommandotyp, 289
Kommandozeilenmodus (vi),
323
Konfigurations-Dateien, 326
Kontrollfluss (awk), 311
Kontrollstrukturen, 18
Konvertierungen, 147
kopieren (vi), 321
Kurzbeschreibung anzeigen,
301
Leserecht, 61
let, 14
Link, 52
Link erzeugen, 57
Link hart, 52
Link symbolisch, 52
links erstelln, 203
Literale (awk), 314
ln, 57
Login-Name ausgeben, 205
Login-Shell ändern, 134
Login-Shell beenden, 205
ls, 53
Magnetband, 137
man, 6
man durchsuchen, 118
man page, 215
Manual, 6
Manual-Seiten, 215
maskieren, 10
Maximum Transfer Unit, 190
Metazeichen, 10
Mustervergleich durchführen, 162
mv, 56
Nachricht versenden, 306
Nachricht senden (an alle),
300
Nachrichten
versenden/empfangen, 212
Nachrichtenempfang
abschalten/einschalten, 217
NAT, 106
Network Address Translation, 106
Netzwerk konfigurieren, 190
Netzwerkstatistik, 224
Netzwerkstatus, 224
Netzwerkverbindungen anzeigen, 224
Neustart, 247
Online-Handbücher, 215
Operatoren für reguläre Ausdrücke, 71
Optionen auswerten, 175
OSI-Referenzmodell, 101
Package Manager, 255
Packen, 182
pager, 201
Paketverwaltung, 255
Parameterübergabe an Skripte, 30
Partition, 77
Partitionierung, 124, 164
Partitionsinformationen anzeigen, 164
Passwort ändern, 233
Passwort-Lebensdauer, 124
Passworteinstellungen, 124
PATH Variable, 28
periodische Aufträge, 138
periodische Aufträge verwalten, 139
Pfad, 53
Pfad absolut, 53
Pfad relativ, 53
Pipe, 9, 52
Pipes erstellen, 220
Pipes sichern, 273
Plattenplatz-Verbrauch überprüfen, 244
Plattenplatzbeschränkung
ein-/ausschalten, 245
Plattenplatzbeschränkung
anzeigen, 244
Plattenplatzbeschränkung
einrichten, 159
POP3, 212
Positions-Parameter, 30
Positionsparameter verschieben, 262
Prüfsumme berechnen, 268
Priorität, 228
promiscuous Modus, 190
Prompt, 4
Prozedur (awk), 311
Prozedur beenden, 251
Prozess, 35
Prozess anzeigen, 39
Prozess beenden, 40, 197
Prozess im Hintergrund, 121
Prozess im Vordergrund, 165
Prozess-Monitor, 277
Prozess-Priorität, 228
Prozess-Priorität verändern,
249
Prozess-Status anzeigen, 239
Prozesse anzeigen, 239
Prozesshierarchie, 37
Prozesshierarchie ausgeben,
242
Prozessnummer ermitteln, 43
Prozessnummer für Dateien
ermitteln, 173
Prozessverwaltung, 36
Prozesszustand, 36
ps, 39
pstree, 37
Psuedo-Parallelität, 35
Puffer (vi), 322
pwd, 53
Quota
Zusammenfassung,
250
Quota-System, 159
Quotas überprüfen, 244
Quoting, 10
read Kommando, 32
Rechenoperationen
(awk),
312
Rechenoperatoren, 15
rechnen, 14
Rechnerinformationen, 291
Rechte, 61
Rechte ändern, 64, 129
Rechte oktal vergeben, 64
Rechte symbolisch vegeben,
65
Rechte Voreinstellung, 65
Reguläre Datei, 51
regulärer Ausdruck, 71
reise Dateisystem Probleme
lösen, 148
reiser, 78
reiser Dateisystem, 148
reiser Dateisystem überprüfen, 247
reiser Dateisystem erstellen,
221
rm, 57
rmdir, 57
root, 133
337
Index
root-Verzeichnis, 133
root-Verzeichnis ändern, 133
Route verfolgen, 283
Routing-Tabelle, 253
Routing-Tabelle
anzeigen/ändern, 253
Routinginformationen anzeigen, 224
Run-Level, 38, 194
Runlevel anzeigen, 257
Scheduler, 35
Schreibrecht, 61
Schreibschutz für Variablen,
246
Seiten formatieren, 237
Server, 38
set, 83, 86
SGID-Bit, 62
Shell, 4
Shell beenden, 160
Shell Optionen, 86
Shell Skripte, 28
Shell Variable, 81
Shell-Optionen, 260
Shell-Variablen, 81
Shell-Variablen anzeigen, 260
Signal, 197
Signal abfangen, 284
Signal an Prozess mit Name
senden, 198
Signal an Prozess mit Nummer senden, 197
Signale abfangen, 44
Signale ignorieren, 231
Signalliste, 285
Singal senden, 40
Skripte, 28
Skripte ausführen, 28
Skripte erstellen, 29
SMTP, 212
Socket, 52, 108
Spalten ausschneiden, 143
Speicherverbrauch anzeigen,
155
Standardausgabe, 8
Standardeingabe, 8
Standardfehlerausgabe, 9
Startinformationen anzeigen,
198
Startskripte, 38
Stellungsparameter überprüfen, 174
338
Sticky-Bit, 62
Stream Editor, 258
suchen (vi), 323
suchen / ersetzen (vi), 324
Suchmuster, 71
Suchpfad, 28
Suffix entfernen, 121
SUID-Bit, 62
Superblock-Informationen,
148
Superuser, 133
Swap Prozess, 37
synchronisieren, 269
System initialisieren, 194
System anhalten, 183, 263
Systemadministrator, 133
Systemauslastung anzeigen,
277
Systembenutzer
ausgeben,
305
Systemuhr, 112
Systemzeit, 145
Systemzeit anzeigen (abgelaufene), 277
Tabulatorzeichen umwandlen, 161
Terminalname ausgeben, 287
Terminalnutzung anzeigen,
198
test, 19
test Operatoren, 19
Text löschen (vi), 320
Textdateien anzeigen, 201,
221
Textformatierung, 171
trap, 44
Uhr stellen, 188
Uhrzeit setzen, 145
umask, 65
Umgebungs Variablen, 83
Umgebungs-Variable, 81
Umgebungsvarieblen abfragen / setzen, 159
Umlenkzeichen, 9
undo (vi), 321
Universal Time Convention,
145
unset, 83
until Anweisung, 24
UTC, 145
Variable, 81
Variable löschen, 293
Variable (awk), 314
Variablen exportieren, 161
Variablen vordefinierte, 84
Variablensubstitution, 82
Vergleich (awk), 310
Vergleiche durchführen, 19
Verknüpfungszeichen, 13
verschieben (vi), 321
versteckte Dateien, 54
verwaiste Prozess, 38
Verzeichnis, 51
Verzeichnis erstellen, 217
Verzeichnis kopieren, 56
Verzeichnis löschen, 57, 252
Verzeichnis wechseln, 53, 123
Verzeichnishierarchie, 49
Verzeichnisinhalt anzeigen,
209
vi (visual editor), 316
vi Einstellungen, 325
Visual Modus, 323
Wörter zählen, 301
while Anweisung, 23
wildcard, 11
xtrace-Modus, 89
Zeichen zählen, 301
Zeichen ersetzen, 281
Zeichenorientiertes Gerät, 51
Zeile einlesen, 246
Zeilen auffüllen, 171
Zeilen löschen (doppelte], 292
Zeilen lesen, 202
Zeilen numerieren, 229
Zeilen zählen, 301
Zeilen zusammenfügen (vi),
321
Zeilenumbruch einfügen, 172
Zeit-Befehle, 112
Zeitgesteuerte Aufträge, 138
zeitgesteuerte Ausführung,
119
Zeitstempel verändern, 280
Zombie, 38
Zugriffsrechte ändern, 129
Zugriffsrechte
Voreinstellung, 289

Documentos relacionados