Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
Vorwort
Einleitung
1 Was ist Ubuntu?
2 Die Versionen im Detail
3 Die Shell
4 Migration und Synchronisation
5 Die Installation
6 Erste Schritte
7 Ubuntu mobil
8 Derivate
9 Internet und E-Mail
10 Office
11 Grafik und Bildbearbeitung
12 Multimedia und Spiele
13 Programmierung und Design
14 Hardware-Konfiguration
15 Software- und Paketverwaltung
16 Architektur
17 Backup und Sicherheit
18 Server-Installation
19 Datei- und FTP-Server
20 Weitere Server-Dienste
21 Kontrolle und Monitoring
22 Desktop-Virtualisierung
23 Server-Virtualisierung mit KVM
24 Server-Virtualisierung mit Xen
25 Hilfe
26 Befehlsreferenz Ubuntu Linux
A Übersicht: Software für (K)Ubuntu
B Mark Shuttleworth
C Glossar
D Häufig gestellte Fragen
Stichwort
Download: - ZIP, ca. 36,6 MB
Buch bestellen
Ihre Meinung?
<< zurück | Galileo Computing / <openbook> / Ubuntu | vor >>
Ubuntu GNU/Linux von Marcus Fischer Das umfassende Handbuch, aktuell zu Ubuntu 9.04 - Jaunty Jackalope
Ubuntu GNU/Linux 4., aktualisierte und erweiterte Auflage, geb. 1.120 S., 39,90 Euro Galileo Computing ISBN 978-3-8362-1439-1 |
| 26 Befehlsreferenz Ubuntu Linux
|  | 26.1 Dateiorientierte Kommandos
|  |  | 26.1.1 bzcat – Ausgabe von bzip2-komprimierten Dateien
|  |  | 26.1.2 cat – Datei(en) nacheinander ausgeben
|  |  | 26.1.3 chgrp – Gruppe ändern
|  |  | 26.1.4 cksum/md5sum/sum – Prüfsummen ermitteln
|  |  | 26.1.5 chmod – Zugriffsrechte ändern
|  |  | 26.1.6 chown – Eigentümer ändern
|  |  | 26.1.7 cmp – Dateien miteinander vergleichen
|  |  | 26.1.8 comm – zwei sortierte Textdateien vergleichen
|  |  | 26.1.9 cp – Dateien kopieren
|  |  | 26.1.10 csplit – Zerteilen von Dateien
|  |  | 26.1.11 cut – Zeichen oder Felder aus Dateien schneiden
|  |  | 26.1.12 diff – Vergleichen zweier Dateien
|  |  | 26.1.13 diff3 – Vergleich von drei Dateien
|  |  | 26.1.14 dos2unix – Dateien umwandeln
|  |  | 26.1.15 expand – Tabulatoren in Leerzeichen umwandeln
|  |  | 26.1.16 file – den Inhalt von Dateien analysieren
|  |  | 26.1.17 find – Suche nach Dateien
|  |  | 26.1.18 fold – einfaches Formatieren von Dateien
|  |  | 26.1.19 head – Anfang einer Datei ausgeben
|  |  | 26.1.20 less – Datei(en) seitenweise ausgeben
|  |  | 26.1.21 ln – Links auf eine Datei erzeugen
|  |  | 26.1.22 ls – Verzeichnisinhalt auflisten
|  |  | 26.1.23 more – Datei(en) seitenweise ausgeben
|  |  | 26.1.24 mv – Datei(en) verschieben oder umbenennen
|  |  | 26.1.25 nl – Datei mit Zeilennummer ausgeben
|  |  | 26.1.26 od – Datei(en) hexadezimal bzw. oktal ausgeben
|  |  | 26.1.27 rm – Dateien und Verzeichnisse löschen
|  |  | 26.1.28 sort – Dateien sortieren
|  |  | 26.1.29 split – Dateien in mehrere Teile zerlegen
|  |  | 26.1.30 tac – Dateien rückwärts ausgeben
|  |  | 26.1.31 tail – Ende einer Datei ausgeben
|  |  | 26.1.32 tee – Ausgabe duplizieren
|  |  | 26.1.33 touch – Zeitstempel verändern
|  |  | 26.1.34 tr – Zeichen ersetzen
|  |  | 26.1.35 type – Kommandos klassifizieren
|  |  | 26.1.36 umask – Datei-Erstellungsmaske ändern
|  |  | 26.1.37 uniq – doppelte Zeilen nur einmal ausgeben
|  |  | 26.1.38 wc – Zeilen, Wörter und Zeichen zählen
|  |  | 26.1.39 whereis – Suche nach Dateien
|  |  | 26.1.40 zcat, zless, zmore – Ausgabe von zip-Dateien
|  | 26.2 Verzeichnisorientierte Kommandos
|  |  | 26.2.1 basename – Dateianteil eines Pfadnamens
|  |  | 26.2.2 cd – Verzeichnis wechseln
|  |  | 26.2.3 dirname – Verzeichnisanteil eines Pfadnamens
|  |  | 26.2.4 mkdir – ein Verzeichnis anlegen
|  |  | 26.2.5 pwd – aktuelles Arbeitsverzeichnis ausgeben
|  |  | 26.2.6 rmdir – ein leeres Verzeichnis löschen
|  | 26.3 Verwaltung von Benutzern und Gruppen
|  |  | 26.3.1 exit, logout – eine Session oder Sitzung beenden
|  |  | 26.3.2 finger – Informationen zu Benutzern abfragen
|  |  | 26.3.3 groupadd etc. – Gruppenverwaltung
|  |  | 26.3.4 groups – Gruppenzugehörigkeit ausgeben
|  |  | 26.3.5 id – eigene Benutzer- und Gruppen-ID ermitteln
|  |  | 26.3.6 last – An- und Abmeldezeit eines Benutzers
|  |  | 26.3.7 logname – Name des aktuellen Benutzers
|  |  | 26.3.8 newgrp – Gruppenzugehörigkeit wechseln
|  |  | 26.3.9 passwd – Passwort ändern bzw. vergeben
|  |  | 26.3.10 useradd/adduser etc. – Benutzerverwaltung
|  |  | 26.3.11 who – eingeloggte Benutzer anzeigen
|  |  | 26.3.12 whoami – Namen des aktuellen Benutzers anzeigen
|  | 26.4 Programm- und Prozessverwaltung
|  |  | 26.4.1 at – Zeitpunkt für ein Kommando festlegen
|  |  | 26.4.2 batch – ein Kommando später ausführen lassen
|  |  | 26.4.3 bg – einen Prozess im Hintergrund fortsetzen
|  |  | 26.4.4 cron/crontab – Programme zeitgesteuert ausführen
|  |  | 26.4.5 fg – Prozesse im Vordergrund fortsetzen
|  |  | 26.4.6 jobs – Anzeigen von im Hintergrund laufenden Prozessen
|  |  | 26.4.7 kill – Signale an Prozesse mit Nummer senden
|  |  | 26.4.8 killall – Signale an Prozesse mit Namen senden
|  |  | 26.4.9 nice – Prozesse mit anderer Priorität ausführen
|  |  | 26.4.10 nohup – Prozesse nach dem Abmelden fortsetzen
|  |  | 26.4.11 ps – Prozessinformationen anzeigen
|  |  | 26.4.12 pgrep – Prozesse über ihren Namen finden
|  |  | 26.4.13 pstree – Prozesshierarchie in Baumform ausgeben
|  |  | 26.4.14 renice – Priorität laufender Prozesse verändern
|  |  | 26.4.15 sleep – Prozesse schlafen legen
|  |  | 26.4.16 su – Ändern der Benutzerkennung
|  |  | 26.4.17 sudo – Programme als anderer Benutzer ausführen
|  |  | 26.4.18 time – Zeitmessung für Prozesse
|  |  | 26.4.19 top – Prozesse nach CPU-Auslastung anzeigen
|  | 26.5 Speicherplatzinformationen
|  |  | 26.5.1 df – Abfrage des Speicherplatzes für Dateisysteme
|  |  | 26.5.2 du – Größe eines Verzeichnisbaums ermitteln
|  |  | 26.5.3 free – verfügbaren Speicherplatz anzeigen
|  | 26.6 Dateisystem-Kommandos
|  |  | 26.6.1 badblocks – überprüft defekte Sektoren
|  |  | 26.6.2 cfdisk – Partitionieren von Festplatten
|  |  | 26.6.3 dd – Datenblöcke zwischen Devices kopieren
|  |  | 26.6.4 dd_rescue – fehlertolerantes Kopieren
|  |  | 26.6.5 dumpe2fs – Analyse von ext2/ext3-Systemen
|  |  | 26.6.6 e2fsck – ein ext2/ext3-Dateisystem reparieren
|  |  | 26.6.7 fdformat – eine Diskette formatieren
|  |  | 26.6.8 fdisk – Partitionieren von Speichermedien
|  |  | 26.6.9 fsck – Reparieren und Überprüfen
|  |  | 26.6.10 mkfs – Dateisystem einrichten
|  |  | 26.6.11 mkswap – eine Swap-Partition einrichten
|  |  | 26.6.12 mount, umount – Dateisysteme an- bzw. abhängen
|  |  | 26.6.13 parted – Partitionen anlegen etc.
|  |  | 26.6.14 swapon, swapoff – Swap-Speicher (de)aktivieren
|  |  | 26.6.15 sync – gepufferte Schreiboperationen ausführen
|  | 26.7 Archivierung und Backup
|  |  | 26.7.1 bzip2/bunzip2 – (De-)Komprimieren von Dateien
|  |  | 26.7.2 cpio, afio – Dateien archivieren
|  |  | 26.7.3 copy out
|  |  | 26.7.4 copy in
|  |  | 26.7.5 copy pass
|  |  | 26.7.6 afio
|  |  | 26.7.7 ccrypt – Dateien verschlüsseln
|  |  | 26.7.8 gzip/gunzip – (De-)Komprimieren von Dateien
|  |  | 26.7.9 mt – Streamer steuern
|  |  | 26.7.10 tar – Dateien und Verzeichnisse archivieren
|  |  | 26.7.11 Übersicht zu den Packprogrammen
|  | 26.8 Systeminformationen
|  |  | 26.8.1 cal – zeigt einen Kalender an
|  |  | 26.8.2 date – Datum und Uhrzeit
|  |  | 26.8.3 uname – Rechnername, Architektur und OS
|  |  | 26.8.4 uptime – Laufzeit des Rechners
|  | 26.9 Systemkommandos
|  |  | 26.9.1 dmesg – letzte Kernel-Boot-Meldungen
|  |  | 26.9.2 halt – alle laufenden Prozesse beenden
|  |  | 26.9.3 reboot – System neu starten
|  |  | 26.9.4 shutdown – System herunterfahren
|  | 26.10 Druckeradministration und Netzwerkbefehle
|  |  | 26.10.1 arp – Ausgeben von MAC-Adressen
|  |  | 26.10.2 ftp – Dateien übertragen
|  |  | 26.10.3 hostname – Rechnername ermitteln
|  |  | 26.10.4 ifconfig – Netzwerkzugang konfigurieren
|  |  | 26.10.5 mail/mailx – E-Mails schreiben und empfangen
|  |  | 26.10.6 netstat – Statusinformationen über das Netzwerk
|  |  | 26.10.7 nslookup (host/dig) – DNS-Server abfragen
|  |  | 26.10.8 ping – Verbindung zu anderem Rechner testen
|  |  | 26.10.9 Die r-Kommandos (rcp, rlogin, rsh)
|  |  | 26.10.10 ssh – sichere Shell auf anderem Rechner starten
|  |  | 26.10.11 scp – Dateien per ssh kopieren
|  |  | 26.10.12 rsync – Replizieren von Dateien und Verzeichnissen
|  |  | 26.10.13 traceroute – Route zu einem Rechner verfolgen
|  | 26.11 Benutzerkommunikation
|  |  | 26.11.1 wall – Nachrichten an alle Benutzer verschicken
|  |  | 26.11.2 write – Nachrichten an Benutzer verschicken
|  |  | 26.11.3 mesg – Nachrichten zulassen oder unterbinden
|  | 26.12 Bildschirm- und Terminalkommandos
|  |  | 26.12.1 clear – Löschen des Bildschirms
|  |  | 26.12.2 reset – Zeichensatz wiederherstellen
|  |  | 26.12.3 setterm – Terminaleinstellung verändern
|  |  | 26.12.4 stty – Terminaleinstellung abfragen oder setzen
|  |  | 26.12.5 tty – Terminalnamen erfragen
|  |  | 26.12.6 apropos – nach Schlüsselwörtern suchen
|  |  | 26.12.7 info – GNU-Online-Manual
|  |  | 26.12.8 man – die traditionelle Onlinehilfe
|  |  | 26.12.9 whatis – Kurzbeschreibung zu einem Kommando
|  | 26.13 Sonstige Kommandos
|  |  | 26.13.1 alias/unalias – Kurznamen für Kommandos
|  |  | 26.13.2 bc – Taschenrechner
|  |  | 26.13.3 printenv/env – Umgebungsvariablen anzeigen
»Es ist des Lernens kein Ende.« Robert Schumann (08.06.1810–29.07.1856), Komponist # 26 Befehlsreferenz Ubuntu Linux
Was Sie in diesem Kapitel erwartet:
Die vorliegende Übersicht wurde dem Buch »Shell-Programmierung« von Jürgen Wolf, erschienen bei Galileo Computing, entnommen. Wer sich tiefer in die Materie einarbeiten möchte, dem sei die Lektüre dieses Buchs ans Herz gelegt. Dieses Referenzkapitel beginnt mit einer Übersicht aller Kommandos in alphabetischer Reihenfolge, die dann im Folgenden beschrieben werden. Dabei handelt es sich im Allgemeinen um Befehle, die in einem Ubuntu-Standardsystem zur Verfügung stehen.
Benötigtes Vorwissen
Es sind grundlegende Kenntnisse im Umgang mit der Shell nötig.
Kommando | Bedeutung
accept | Druckerwarteschlange auf »empfangsbereit« setzen
alias | Kurznamen für Kommandos vergeben
apropos | nach Schlüsselwörtern in man-Seiten suchen
arp | Ausgeben von MAC-Adressen
at | Kommando zu einem bestimmten Zeitpunkt ausführen lassen
badblocks | Überprüft, ob ein Datenträger defekte Sektoren beinhaltet.
basename | Gibt den Dateianteil eines Pfadnamens zurück.
batch | Kommando zu einem späteren Zeitpunkt ausführen lassen
bc | Taschenrechner
bg | einen angehaltenen Prozess im Hintergrund fortsetzen
bzcat | Ausgabe von bzip2-komprimierten Dateien
bzip2, bunzip2 | (De-)Komprimieren von Dateien
cal | Zeigt einen Kalender an.
cancel | Druckaufträge stornieren
cat | Datei(en) nacheinander ausgeben
cdrecord | Daten auf eine CD brennen
cd | Verzeichnis wechseln
cfdisk | Partitionieren von Festplatten
chgrp | Gruppe von Dateien oder Verzeichnissen ändern
cksum, sum | eine Prüfsumme für eine Datei ermitteln
chmod | Zugriffsrechte von Dateien oder Verzeichnissen ändern
chown | Eigentümer von Dateien oder Verzeichnissen ändern
clear | Löschen des Bildschirms
cmp | Dateien miteinander vergleichen
comm | zwei sortierte Textdateien miteinander vergleichen
(un)compress | (De-)Komprimieren von Dateien
cp | Dateien kopieren
cpio | Dateien und Verzeichnisse archivieren
cron, crontab | Programme in bestimmten Zeitintervallen ausführen lassen
csplit | Zerteilen von Dateien (kontextabhängig)
cut | Zeichen oder Felder aus Dateien herausschneiden
date | Datum und Uhrzeit
dd | Datenblöcke zwischen Devices kopieren (Low Level)
df | Erfragen, wie viel Speicherplatz die Filesysteme benötigen
diff | Vergleicht zwei Dateien.
diff3 | Vergleicht drei Dateien.
dig | DNS-Server abfragen
dirname | Verzeichnisanteil eines Pfadnamens zurückgeben
disable | Drucker deaktivieren
dos2unix | Dateien vom DOS- ins UNIX-Format umwandeln
du | Größe eines Verzeichnisbaums ermitteln
dumpe2fs | Zeigt Informationen über ein ext2/ext3-Dateisystem an.
dvips | DVI-Dateien umwandeln nach Postscript
e2fsck | Repariert ein ext2/ext3-Dateisystem.
enable | Drucker aktivieren
enscript | Textdatei umwandeln nach Postscript
exit | eine Session (Sitzung) beenden
expand | Tabulatoren in Leerzeichen umwandeln
fdformat | Formatiert eine Diskette.
fdisk | Partitionieren von Festplatten
fg | einen angehaltenen Prozess im Vordergrund fortsetzen
file | den Dateityp ermitteln
find | Suchen nach Dateien und Verzeichnissen
finger | Informationen zu anderen Benutzern abfragen
fold | einfaches Formatieren von Dateien
free | verfügbaren Speicherplatz (RAM und Swap) anzeigen
fsck | Reparieren und Überprüfen von Dateisystemen
ftp | Dateien von und zu einem anderen Rechner übertragen
groupadd | eine neue Gruppe anlegen
groupdel | Löschen einer Gruppe
groupmod | Group-ID und/oder Namen ändern
groups | Gruppenzugehörigkeit ausgeben
growisofs | Frontend für mkisofs zum Brennen von DVDs
gs | PostScript- und PDF-Dateien konvertieren
gzip, gunzip | (De-)Komprimieren von Dateien
halt | alle laufenden Prozesse beenden
hd | Datei hexadezimal bzw. oktal ausgeben
head | Anfang einer Datei ausgeben
hostname | Namen des Rechners ausgeben
id | eigene Benutzer- und Gruppen-ID ermitteln
ifconfig | Netzwerkzugang konfigurieren
info | GNU-Online-Manual
jobs | Anzeigen angehaltener bzw. im Hintergrund laufender Prozesse
killall | Signale an Prozesse mit einem Prozessnamen senden
kill | Signale an Prozesse mit einer Prozessnummer senden
last | An- und Abmeldezeit eines Benutzers ermitteln
less | Datei(en) seitenweise ausgeben
line | eine Zeile von der Standardeingabe einlesen
ln | Links auf eine Datei erzeugen
logname | Namen des aktuellen Benutzers anzeigen
logout | Beenden einer Session (Sitzung)
lpadmin | Verwaltungsprogramm für das CUPS-Print-Spooler-System
lp | Ausgabe auf dem Drucker mit dem Print-Spooler
lpc | Steuerung von Druckern
lphelp | Optionen eines Druckers ausgeben
lpmove | Druckerauftrag zu einem anderen Drucker verschieben
lpq | Druckerwarteschlange anzeigen
lpr | Dateien auf den Drucker ausgeben
lprm | Druckaufträge in der Warteschlange stornieren
lpstat | Status der Aufträge anzeigen
ls | Verzeichnisinhalt auflisten
mail | E-Mails schreiben und empfangen
man | die traditionelle Online-Hilfe für Linux
md5sum | eine Prüfsumme für eine Datei ermitteln
mesg | Nachrichten auf die Dialogstation zulassen oder unterbinden
mkdir | ein Verzeichnis anlegen
mkfs | Dateisystem einrichten
mkisofs | Erzeugt ein ISO9660/JOLIET/HFS-Dateisystem.
mkreiserfs, mkreiser4 | ein ReiserFS(4)-Dateisystem anlegen
mkswap | eine Swap-Partition einrichten
more | Datei(en) seitenweise ausgeben
mount | Einbinden eines Dateisystems
mt | Streamer steuern
mv | Datei(en) und Verzeichnisse verschieben oder umbenennen
netstat | Statusinformationen über das Netzwerk
newgrp | Gruppenzugehörigkeit kurzzeitig wechseln
nice | Prozesse mit anderer Priorität ausführen lassen
nl | Datei mit Zeilennummer ausgeben
nohup | Prozesse beim Beenden einer Sitzung weiterlaufen lassen
nslookup | DNS-Server abfragen (künftig ist dig zu verwenden)
od | Datei(en) hexadezimal bzw. oktal ausgeben
parted | Partitionen anlegen, verschieben, vergrößern oder verkleinern
passwd | Passwort ändern bzw. vergeben
paste | Dateien spaltenweise verknüpfen
patch | Pakete upgraden
pdf2ps | Umwandeln von PDF nach PostScript
ping | Verbindung zu anderem Rechner testen
printenv | Umgebungsvariablen anzeigen
ps2ascii | Umwandeln von PostScript nach ASCII
ps2pdf | Umwandeln von PostScript nach PDF
ps | Prozessinformationen anzeigen
pstree | Prozesshierarchie in Baumform ausgeben
pwd | Ausgeben des aktuellen Arbeitsverzeichnisses
rcp | Dateien im Netz kopieren
rdev | Kernel-Datei verändern
reboot | alle laufenden Prozesse beenden und System neu starten
reiserfsck | Reparieren und Überprüfen von Dateisystemen
reject | Warteschlange für weitere Aufträge sperren
renice | Priorität laufender Prozesse verändern
reset | Zeichensatz für ein Terminal wiederherstellen
rlogin | auf anderem Netzrechner einloggen
rm | Dateien und Verzeichnisse löschen
rmdir | ein leeres Verzeichnis löschen
rsh | Programme auf entferntem Rechner ausführen
rsync | Replizieren von Dateien und Verzeichnissen
init | Runlevel wechseln
setterm | Terminaleinstellung verändern
shutdown | System herunterfahren
sleep | Prozesse suspendieren (schlafen legen)
sort | Dateien sortieren
split | Dateien in mehrere Teile zerlegen
ssh | eine sichere Shell auf einem anderen Rechner starten
stty | Terminaleinstellung abfragen oder setzen
su | Ändern der Benutzerkennung (ohne Neuanmeldung)
sudo | ein Programm als anderer Benutzer ausführen
swapoff | Swap-Datei oder -partition deaktivieren
swapon | Swap-Datei oder -partition aktivieren
swap | Swap-Space anzeigen
sync | alle gepufferten Schreiboperationen ausführen
tac | Dateien rückwärts ausgeben
tail | Ende einer Datei ausgeben
tar | Dateien und Verzeichnisse archivieren
tee | Ausgabe duplizieren
time | Zeitmessung für Prozesse
top | Prozesse nach CPU-Auslastung anzeigen
touch | Zeitstempel verändern
tput | Terminal- und Cursorsteuerung
traceroute | Route zu einem Rechner verfolgen
tr | Zeichen ersetzen bzw. Umformen von Dateien
tsort | Dateien topologisch sortieren
tty | Terminalname erfragen
type | Kommandos bzw. Dateien klassifizieren
umask | Dateierstellungsmaske ändern bzw. ausgeben
umount | Ausbinden eines Dateisystems
unalias | einen Kurznamen löschen
uname | Rechnernamen, Architektur und OS ausgeben
uniq | doppelte Zeilen einmal ausgeben
unix2dos | Dateien vom UNIX- ins DOS-Format umwandeln
uptime | Laufzeit des Rechners
useradd, adduser | einen neuen Benutzer anlegen
userdel | einen Benutzer löschen
usermod | Eigenschaften eines Benutzers ändern
wall | Nachrichten an alle Benutzer verschicken
wc | Zeichen, Wörter und Zeichen einer Datei zählen
whatis | Kurzbeschreibung zu einem Kommando
whereis | Suchen nach Dateien innerhalb von PATH
whoami | Namen des aktuellen Benutzers anzeigen
who | eingeloggte Benutzer anzeigen
write | Nachrichten an andere Benutzer verschicken
zcat | Ausgabe von gunzip-komprimierten Dateien
zip, unzip | (De-)Komprimieren von Dateien
zmore | gunzip-komprimierte Dateien seitenweise ausgeben
zless | leistungsfähigere Alternative zu zmore
Die Befehle werden im Folgenden nach Themenschwerpunkten geordnet besprochen: dateiorientierte Kommandos Verwaltung von Benutzern und Gruppen Programm- und Prozessverwaltung Dateisystem-Kommandos Archivierung und Backup Systemkommandos Netzwerkbefehle Benutzerkommunikation ## 26.1 Dateiorientierte Kommandos ### 26.1.1 bzcat – Ausgabe von bzip2-komprimierten Dateien Mit bzcat können Sie die Inhalte von bzip2-komprimierten Dateien ausgeben, ohne dass Sie hierbei die komprimierte Datei dekomprimieren müssen. Dies ist z. B. auch ein Grund, warum Sie mit einem Dateibrowser wie z. B. Nautilus den Inhalt einer komprimierten Datei sehen und sogar lesen können, obwohl Sie diese noch gar nicht dekomprimiert haben. Ansonsten funktioniert \mbox{bzcat} wie cat. ### 26.1.2 cat – Datei(en) nacheinander ausgeben Mit diesem Kommando werden gewöhnlich Dateien ausgegeben. Wenn Sie cat beim Aufruf keine Dateien zum Lesen als Argument mitgeben, liest cat so lange aus der Standardeingabe, bis + (End of File) betätigt wurde.
Verwendung | Bedeutung
cat file | Gibt den Inhalt von file aus.
cat file | kommando | Gibt den Inhalt von file via Pipe an die Standardeingabe von kommando weiter.
cat file1 file2 > file_all | Dateien aneinanderhängen
cat > file | Schreibt alle Zeilen, die von der Tastatur eingegeben wurden, in die Datei file, bis + betätigt wurde.
### 26.1.3 chgrp – Gruppe ändern Mit chgrp ändern Sie die Gruppenzugehörigkeit einer Datei oder eines Verzeichnisses. Dieses Kommando bleibt somit nur dem Eigentümer einer Datei, eines Verzeichnisses oder dem Superuser vorbehalten. Als Eigentümer können Sie außerdem nur diejenigen Dateien oder Verzeichnisse einer bestimmten Gruppe zuordnen, der Sie selbst auch angehören. Wollen Sie die Gruppenzugehörigkeit aller Dateien in einem Verzeichnis mit allen Unterverzeichnissen ändern, dann bietet sich hierzu die Option -R (für rekursiv) an. ### 26.1.4 cksum/md5sum/sum – Prüfsummen ermitteln Mit diesen Funktionen errechnet man die CRC-Prüfsumme (Cyclic Redundancy Check) und die Anzahl der Bytes (nur mit cksum) für eine Datei. Wird keine Datei angegeben, liest cksum diejenige aus der Standardeingabe, bis + betätigt wurde, und berechnet hieraus die Prüfsumme. Diese Kommandos werden häufig eingesetzt, um festzustellen, ob zwei Dateien identisch sind. So kann z. B. überprüft werden, ob eine Datei, die Sie aus dem Internet geladen haben, auch korrekt übertragen wurde. Voraussetzung hierfür ist natürlich, dass Sie die Prüfsumme der Quelle kennen. MD5-Prüfsummen werden häufig beim Herunterladen von Ubuntu-ISO-Abbildern eingesetzt. Ein anderer Anwendungsfall wäre das Überprüfen auf Virenbefall. Hiermit kann ermittelt werden, ob sich jemand an einer Datei zu schaffen gemacht hat:
    user$ cksum data.conf
    2935371588 51 data.conf
    user$ cksum data.conf
    2935371588 51 data.conf
    user$ echo Hallo >> data.conf
    user$ cksum data.conf
    966396470 57 data.conf
Im obigen Beispiel sehen Sie eine Konfigurationsdatei data.conf, bei der zweimal mit cksum derselbe Wert (nur zur Demonstration) berechnet wurde. Kurz darauf wurde am Ende dieser Datei ein Text angehängt und erneut cksum ausgeführt. Jetzt erhalten Sie eine andere Prüfsumme. Voraussetzung dafür, dass dieses Prinzip funktioniert, ist natürlich auch eine Datei oder Datenbank, die solche Prüfsummen zu den entsprechenden Dateien speichert. Dabei können Sie auch zwei Dateien auf einmal eingeben, um die Prüfsummen zu vergleichen:
    user$ cksum data.conf data.conf~bak
    966396470 57 data.conf
    2131264154 10240 data.conf~bak
cksum ist gegenüber sum zu bevorzugen, da diese Version neuer ist und auch dem POSIX.2-Standard entspricht. Beachten Sie allerdings, dass alle drei Versionen zum Berechnen von Prüfsummen (sum, cksum und md5sum) untereinander inkompatibel sind und andere Prüfsummen als Ergebnis berechnen:
    user$ sum data.conf
    20121     1
    user$ cksum data.conf
    966396470 57 data.conf
    user$ md5sum data.conf
    5a04a9d083bc0b0982002a2c8894e406  data.conf
Noch ein beliebter Anwendungsfall von md5sum:
    user$ cd /bin; md5 'ls -R /bin' | md5
Wenn sich jetzt jemand am Verzeichnis /bin zu schaffen gemacht hat, merken Sie dies relativ schnell. Am besten lassen Sie hierbei einen cron-Job laufen und sich gegebenenfalls täglich per E-Mail benachrichtigen. ### 26.1.5 chmod – Zugriffsrechte ändern Mit chmod setzen oder verändern Sie die Zugriffsrechte auf Dateien oder Verzeichnisse. Die Benutzung von chmod ist selbstverständlich nur dem Dateieigentümer und dem Superuser gestattet. Die Bedienung von chmod dürfte jedem Systemadministrator geläufig sein, weil es ein sehr häufig verwendetes Kommando ist. chmod kann sehr flexibel eingesetzt werden. Man kann z. B. einen numerischen Wert verwenden. Gegebenenfalls müssen Sie dem jeweiligen Befehl ein sudo voranstellen, da Sie für die Veränderung von Systemdateirechten als Administrator operieren müssen.
    user$ chmod 755 file
oder:
    user$ chmod 0755 file
Einfacher anzuwenden ist chmod über eine symbolische Angabe wie:
    user$ chmode u+x file
Mit dem oben genannten Befehl bekommt der User (u; Eigentümer) der Datei file das Ausführrecht (+x) erteilt.
    user$ chmod g-x file
Damit wurde der Gruppe (g) das Ausführrecht entzogen (-x). Wollen Sie hingegen allen Teilnehmern (a) ein Ausführrecht erteilen, dann funktioniert dies so:
    user$ chmod a+x file
Mit chmod können Sie auch die Spezialbits setzen (SUID, SGUID oder Sticky). Wollen Sie z. B. für eine Datei das setuid-Bit (Set-User-ID) setzen, funktioniert dies folgendermaßen:
    user$ chmod 4744 file
Das setgid-Bit (Set Group ID) hingegen setzen Sie mit »2xxx«. Zu erwähnen ist auch die Option -R, mit der Sie ein Verzeichnis rekursiv durchlaufen und alle Dateien, die sich darin befinden, entsprechend den neu angegebenen Rechten ändern. ### 26.1.6 chown – Eigentümer ändern Mit chown können Sie den Eigentümer von Dateien oder Verzeichnissen ändern. Als neuen Eigentümer kann man entweder den Loginnamen oder die User-ID angeben. Name oder Zahl müssen selbstverständlich in der Datei /etc/passwd vorhanden sein. Dieses Kommando kann wiederum nur vom Eigentümer selbst oder vom Superuser aufgerufen und auf Dateien bzw. Verzeichnisse angewendet werden.
    user$ chown john file1 file2
Hier wird der User »john« Eigentümer der Dateien file1 und file2. Wollen Sie auch hier ein komplettes Verzeichnis mitsamt den Unterverzeichnissen erfassen, so können Sie wieder die Option -R verwenden. Wollen Sie sowohl den Eigentümer als auch die Gruppe einer Datei ändern, nutzen Sie folgende Syntax:
    user$ chown john:user file1 file2
### 26.1.7 cmp – Dateien miteinander vergleichen Mit der Funktion cmp vergleichen Sie zwei Dateien Byte für Byte miteinander und erhalten die dezimale Position und Zeilennummer vom ersten Byte zurück, bei dem sich beide Dateien unterscheiden. cmp vergleicht auch Binärdateien. Sind beide Dateien identisch, erfolgt keine Ausgabe.
    user$ cmp out.txt textfile.txt
    out.txt textfile.txt differieren: Byte 52, Zeile 3.
### 26.1.8 comm – zwei sortierte Textdateien vergleichen Mit comm vergleichen Sie zwei sortierte Dateien und geben die gemeinsamen und die unterschiedlichen Zeilen jeweils in Spalten aus, wobei die zweite und dritte Spalte von einem bzw. zwei Tabulatorvorschüben angeführt werden.
    user$ comm [-123] file1 file2
Die erste Spalte enthält die Zeilen, die nur in der Datei file1 enthalten sind. Die zweite Spalte hingegen beinhaltet die Zeilen, die in der zweiten Datei file2 enthalten sind, und die dritte Spalte enthält die Zeilen, die in beiden Dateien enthalten sind.
    user$ cat file1.txt
    # wichtige Initialisierungsdatei
    # noch eine Zeile
    Hallo
    user$ cat file2.txt
    # wichtige Initialisierungsdatei
    # noch eine Zeile
    Hallo
    user$ comm file1.txt file2.txt
                    # wichtige Initialisierungsdatei
                    # noch eine Zeile
                    Hallo
    user$ echo "Neue Zeile" >> file2.txt
    user$ comm file1.txt file2.txt
                    # wichtige Initialisierungsdatei
                    # noch eine Zeile
                    Hallo
            Neue Zeile
    user$ comm –3 file1.txt file2.txt
            Neue Zeile
In der letzten Zeile ist außerdem zu sehen, wie Sie mit dem Schalter –3 die Ausgabe der dritten Spalte ganz abschalten, um nur die Differenzen beider Dateien zu erkennen. comm arbeitet zeilenweise, weshalb hier keine Vergleiche mit binären Dateien möglich sind. Weitere Schalterstellungen und ihre Bedeutung sind:
Verwendung | Bedeutung
–23 file1 file2 | Es werden nur Zeilen ausgegeben, die in file1 vorkommen.
–123 file1 file2 | Es wird keine Ausgabe erzeugt.
### 26.1.9 cp – Dateien kopieren Den Befehl cp zum Kopieren von Dateien und Verzeichnissen haben Sie schon des Öfteren verwendet, daher folgt hier nur noch eine Auflistung der gängigsten Verwendungen.
Verwendung | Bedeutung
cp file newfile | Es wird mit newfile eine Kopie von file erzeugt.
cp -p file newfile | newfile erhält dieselben Zugriffsrechte, denselben Eigentümer und Zeitstempel.
cp -r dir newdir | Es wird ein komplettes Verzeichnis rekursiv (-r) kopiert.
cp file1 file2 file3 dir | Es werden mehrere Dateien in ein Verzeichnis dir kopiert.
### 26.1.10 csplit – Zerteilen von Dateien Mit csplit können Sie eine Datei in mehrere Teile aufteilen. Als Trennstelle kann hierbei ein Suchmuster, also auch ein regulärer Ausdruck angegeben werden. Dabei werden aus einer Eingabedatei mehrere Ausgabedateien erzeugt, deren Inhalt vom Suchmuster abhängig gemacht werden kann. Ein Beispiel:
    user$ csplit Kapitel20.txt /Abschnitt 1/ \
    /Abschnitt 2/ /Abschnitt 3/
Hier wird das Kapitel20.txt in vier Teile aufgeteilt. Zunächst vom Anfang bis zum »Abschnitt 1«, dann von »Abschnitt 1« bis »Abschnitt 2«, dann von »Abschnitt 2« bis »Abschnitt 3« und zu guter Letzt von »Abschnitt 3« bis »Abschnitt 4«. Hier können Sie allerdings auch einzelne Zeilen angeben, ab denen Sie eine Datei teilen wollen:
    user$ csplit -f Abschnitt Kapitel20.txt 20 40
Hier haben Sie mit der Option -f veranlasst, dass statt eines Dateinamens wie xx01, xx02, ... xx99 eine Datei wie Abschnitt01, Abschnitt02 usw. erzeugt wird. Hier zerteilen Sie die Datei Kapitel20.txt in drei Dateien: Abschnitt01 (Zeile 1–20), Abschnitt02 (Zeile 21–40) und Abschnitt03 (Zeile 41 bis zum Ende). Sie können mit {n} am Ende auch angeben, dass ein bestimmter Ausdruck n-mal angewendet werden soll. Beispiel:
    user$ csplit -k /var/spool/mail/$LOGNAME /^From / {100}
Hier zerteilen Sie in Ihrer Mailbox die einzelnen E-Mails in die einzelnen Dateien xx01, xx02, ...xx99. Jeder Brief einer E-Mail im mbox-Format beginnt mit »From«, weshalb dies als Trennzeichen für die einzelnen Dateien dient. Weil Sie wahrscheinlich nicht genau wissen, wie viele Mails in Ihrer Mailbox liegen, können Sie durch die Angabe einer relativ hohen Zahl zusammen mit der Option -k erreichen, dass alle Mails getrennt werden und dass nach einem eventuell vorzeitigen Scheitern die bereits erzeugten Dateien nicht wieder gelöscht werden. ### 26.1.11 cut – Zeichen oder Felder aus Dateien schneiden Mit cut schneiden Sie bestimmte Teile aus einer Datei heraus. Dabei liest cut von der angegebenen Datei und gibt die Teile auf dem Bildschirm aus, die Sie als gewählte Option und per Wahl des Bereichs verwendet haben. Ein Bereich ist eine durch Kommata getrennte Liste von einzelnen Zahlen bzw. Zahlenbereichen. Diese Zahlenbereiche werden in der Form »a–z« angegeben. Wird »a« oder »z« weggelassen, so wird hierzu der Anfang bzw. das Ende einer Zeile verwendet. ### 26.1.12 diff – Vergleichen zweier Dateien diff vergleicht den Inhalt von zwei Dateien. Da diff zeilenweise vergleicht, sind keine binären Dateien erlaubt. Ein Beispiel:
    user$ diff file1.txt file2.txt
    2a3
    > neueZeile
Hier wurden die Dateien file1.txt und file2.txt miteinander verglichen. Die Ausgabe »2a3« besagt lediglich, dass Sie in der Datei file1.txt zwischen Zeile 2 und Zeile 3 die Zeile »neueZeile« einfügen (a = append) müssten, damit die Datei exakt mit der Datei file2.txt übereinstimmt. Ein weiteres Beispiel:
    user$ diff file1.txt file2.txt
    2c2
    < zeile2
    ---
    > zeile2 wurde verändert
Hier bekommen Sie mit 2c2 die Meldung, dass die zweite Zeile unterschiedlich (c = change) ist. Die darauf folgende Ausgabe zeigt auch den Unterschied dieser Zeile an. Eine sich öffnende spitze Klammer (<) zeigt file1.txt, und die sich schließende spitze Klammer bezieht sich auf file2.txt. Und eine dritte Möglichkeit, die Ihnen diff meldet, wäre:
    user$ diff file1.txt file2.txt
    2d1
    < zeile2
Hier will diff Ihnen sagen, dass die zweite Zeile in file2.txt fehlt (d = delete) bzw. gelöscht wurde. Daraufhin wird die entsprechende Zeile auch ausgegeben. Natürlich beschränkt sich die Verwendung von diff nicht ausschließlich auf Dateien. Mit der Option -r können Sie ganze Verzeichnisse miteinander vergleichen:
    user$ diff -r dir1 dir2
### 26.1.13 diff3 – Vergleich von drei Dateien Die Funktion entspricht etwa der von diff, nur dass Sie hierbei drei Dateien Zeile für Zeile miteinander vergleichen können. Die Ausgabe von diff3 besagt Folgendes:
    user$ diff3 file1 file2 file3
Ausgabe | Bedeutung
==== | Alle drei Dateien sind unterschiedlich.
====1 | file1 ist unterschiedlich.
====2 | file2 ist unterschiedlich.
====3 | file3 ist unterschiedlich.
### 26.1.14 dos2unix – Dateien umwandeln Mit dos2unix können Sie Textdateien vom DOS- in das UNIX-Format umwandeln. Alternativ gibt es außerdem noch den Befehl mac2unix, mit dem Sie Textdateien vom MAC- in das UNIX-Format konvertieren können.
    user$ dos2unix file1.txt file2.txt
    dos2unix: converting file file1.txt to UNIX format...
    dos2unix: converting file file2.txt to UNIX format...
### 26.1.15 expand – Tabulatoren in Leerzeichen umwandeln expand ersetzt alle Tabulatoren einer Datei durch eine Folge von Leerzeichen. Standardmäßig sind dies acht Leerzeichen, allerdings kann dieser Wert explizit mit einem Schalter verändert werden. Wollen Sie z. B., dass alle Tabulatorzeichen durch nur drei Leerzeichen ersetzt werden, erreichen Sie dies folgendermaßen: expand –3 file. Allerdings erlaubt expand nicht das vollständige Entfernen von Tabulatorzeichen – sprich, ein Schalter mit –0 gibt eine Fehlermeldung zurück. Hierzu können Sie alternativ z. B. das Kommando tr verwenden. ### 26.1.16 file – den Inhalt von Dateien analysieren Das Kommando file versucht, die Art oder den Typ einer von Ihnen angegebenen Datei zu ermitteln. Hierzu führt file einen Dateisystemtest, einen Kennzahlentest und einen Sprachtest durch. Je nach Erfolg wird eine entsprechende Ausgabe des Tests vorgenommen. Der Dateisystemtest wird mithilfe des Systemaufrufs stat(2) ausgeführt. Dieser Aufruf erkennt viele Arten von Dateien. Der Kennzahlentest wird anhand von festgelegten Kennzahlen durchgeführt. Diese sind meist in der Datei /etc/magic) enthalten. In dieser Datei steht beispielsweise geschrieben, welche Bytes einer Datei zu untersuchen sind und auf welches Muster man dann den Inhalt dieser Datei zurückführen kann. Am Ende erfolgt noch ein Sprachtest. Hier versucht file, eine Programmiersprache anhand von Schlüsselwörtern zu erkennen.
    user$ cat > hallo.c
    #include <stdio.h>
    int main(void) {
       printf("Hallo Welt{n}");
       return 0;
    }
    STRG + D
    user$ file hallo.c
    hallo.c: ASCII C program text
    user$ gcc -o hallo hallo.c
    user$ ./hallo
    Hallo Welt
    user$ file hallo
    hallo: ELF 32-bit LSB executable, Intel 80386,
    version 1 (SYSV), for GNU/Linux 2.2.0, dynamically
    linked (uses shared libs), not stripped
### 26.1.17 find – Suche nach Dateien Zum Suchen nach Dateien wird häufig auf das Kommando find zurückgegriffen. find durchsucht eine oder mehrere Verzeichnisebenen nach Dateien mit einer bestimmten vorgegebenen Eigenschaft. Die Syntax zu find sieht so aus:
    find [Verzeichnis] [-Option ...] [-Test ...] \
    [-Aktion ...]
Die Optionen, Tests und Aktionen können Sie mit Operatoren zusammenfassen. Dabei wertet find jede Datei in den Verzeichnissen hinsichtlich der Optionen, Tests und Aktionen von links nach rechts aus, bis ein Wert unwahr ist oder die Kommandozeilenargumente zu Ende sind. Wenn kein Verzeichnis angegeben wird, wird das aktuelle Verzeichnis verwendet. Wenn keine Aktion angegeben ist, wird meistens -print (abhängig von einer eventuell angegebenen Option) für die Ausgabe auf dem Bildschirm verwendet. Hierzu einige Beispiele. Gibt alle Verzeichnisse und Unterverzeichnisse ab dem Heimatverzeichnis aus:
    user$ find $HOME
Gibt alle Dateien mit dem Namen kapitel aus dem Verzeichnis /dokus (und dessen Unterverzeichnissen) aus:
    user$ find /dokus -name kapitel
Gibt alle Dateien aus dem Verzeichnis dokus (und dessen Unterverzeichnissen) mit dem Namen kap... aus, bei denen »you« der Eigentümer ist:
    user$ find /dokus /usr -name 'kap*' -user you
Damit suchen Sie ab dem Wurzelverzeichnis nach einem Verzeichnis (-type d = directory) mit dem Namen »dok, ...« und geben dies auf dem Bildschirm aus:
    user$ find / -type d -name 'dok*'
Der folgende Befehl sucht leere Dateien (size = 0) und löscht diese nach einer Rückfrage (-ok):
    user$ find / -size 0 -ok rm {} \;
Dieser Ausdruck gibt alle Dateien ab dem Wurzelverzeichnis aus, die in den letzten sieben Tagen verändert wurden:
    user$ find / -mtime –7
### 26.1.18 fold – einfaches Formatieren von Dateien Mit fold können Sie Textdateien ab einer bestimmten Zeilenlänge umbrechen. Standardmäßig sind hierbei 80 Zeichen pro Zeile eingestellt. Da fold die Bildschirmspalten und nicht die Zeichen zählt, werden auch Tabulatorzeichen korrekt behandelt. Wollen Sie etwa eine Textdatei nach 50~Zeichen umbrechen, gehen Sie folgendermaßen vor:
    user$ fold –50 Kap003.txt
    ...
    Sicherlich erscheint Ihnen das Ganze nicht sonderl
    ich elegant oder sinnvoll, aber bspw. in Schleifen
    eingesetzt, können Sie hierbei hervorragend alle A
    rgumente der Kommandozeile zur Verarbeitung von Op
    tionen heranziehen. Als Beispiel ein kurzer theoreti
    scher Code-Ausschnitt, wie so etwas in der Praxis
    realisiert werden kann.
Allerdings kann man an der Ausgabe erkennen, dass die Wörter einfach abgeschnitten und in der nächsten Zeile fortgeführt werden. Wollen Sie dies unterbinden, so können Sie die Option -s verwenden. Damit findet der Zeilenumbruch beim letzten Leerzeichen der Zeile statt, wenn in der Zeile ein Leerzeichen vorhanden ist.
    user$ fold -s –50 Kap003.txt
    ...
    Sicherlich erscheint Ihnen das Ganze nicht
    sonderlich elegant oder sinnvoll, aber bspw. in
    Schleifen eingesetzt, können Sie hierbei
    hervorragend alle Argumente der Kommandozeile zur
    Verarbeitung von Optionen heranziehen. Als Beispiel
    ein kurzer theoretischer Code-Ausschnitt, wie so
    etwas in der Praxis realisiert werden kann.
Ein recht typischer Anwendungsfall ist es, Text für eine E-Mail zu formatieren:
    user$ fold -s –72 text.txt | \
    mail -s "Betreff" name@host.de
### 26.1.19 head – Anfang einer Datei ausgeben Mit der Funktion head geben Sie immer die ersten Zeilen einer Datei auf dem Bildschirm aus. Standardmäßig werden dabei die ersten zehn Zeilen ausgegeben. Wollen Sie selbst bestimmen, wie viele Zeilen vom Anfang der Datei ausgegeben werden sollen, können Sie dies explizit mit -n angeben:
    user$ head –5 file
Hiermit erscheinen die ersten fünf Zeilen von file auf dem Bildschirm. ### 26.1.20 less – Datei(en) seitenweise ausgeben Mit less geben Sie eine Datei seitenweise auf dem Bildschirm aus. Der Vorteil von less gegenüber more ist, dass Sie mit less auch zurückblättern können. Da less von der Standardeingabe liest, ist so auch eine Umleitung eines anderen Kommandos mit einer Pipe möglich. Mit der Leertaste blättern Sie eine Seite weiter, und mit können Sie jeweils eine Seite zurückblättern. Die meisten less-Versionen bieten außerdem das Scrollen nach unten bzw. oben mit den Pfeiltasten an. Mit wird less beendet. less bietet außerdem eine Unmenge von Optionen und weiteren Features an, über die Sie sich durch Drücken von informieren können. ### 26.1.21 ln – Links auf eine Datei erzeugen Wenn eine Datei erzeugt wird, werden im Verzeichnis der Name, ein Verweis auf eine Inode, die Zugriffsrechte, der Dateityp und gegebenenfalls die Anzahl der belegten Blöcke eingetragen. Mit ln wiederum wird ein neuer Eintrag im Verzeichnis abgelegt, der auf die Inode einer existierenden Datei zeigt. Man spricht dabei von einem Hardlink. Er wird standardmäßig ohne weitere Angaben angelegt. Es ist allerdings nicht möglich, diese Hardlinks über Dateisystemgrenzen hinweg anzulegen. Hierzu müssen Sie einen symbolischen Link mit der Option -s erzeugen:
    user$ ln -s filea fileb
Damit haben Sie einen symbolischen Link auf die bestehende Datei filea mit dem Namen fileb angelegt. Wollen Sie hingegen einen Hardlink auf die bestehende Datei filea mit dem Namen fileb anlegen, so gehen Sie wie folgt vor:
    user$ ln filea fileb
### 26.1.22 ls – Verzeichnisinhalt auflisten Mit ls wird der Inhalt eines Verzeichnisses auf dem Dateisystem angezeigt. Wer sich den Inhalt eines Verzeichnisses inklusive versteckter Dateien anzeigen lassen möchte, verwendet folgende Option:
    user$ ls -lah <Verzeichnisname>
Tests auf harte Links
Man kann wie folgt überprüfen, ob zwei Dateien die selbe Datei mit zwei harten Links sind:
ls -li <Datei1> <Datei2>
### 26.1.23 more – Datei(en) seitenweise ausgeben more wird genauso eingesetzt wie less, und zwar zum seitenweisen Lesen von Dateien. Allerdings bietet less gegenüber more erheblich mehr Features und Funktionalitäten an. ### 26.1.24 mv – Datei(en) verschieben oder umbenennen Mit mv können Sie eine oder mehrere Dateien bzw. Verzeichnisse verschieben oder umbenennen.
Verwendung | Bedeutung
mv file filenew | eine Datei umbenennen
mv file dir | eine Datei in ein Verzeichnis verschieben
mv dir dirnew | ein Verzeichnis in ein anderes Verzeichnis verschieben
### 26.1.25 nl – Datei mit Zeilennummer ausgeben Mit nl geben Sie die Zeilen einer Datei mit deren Nummer auf dem Bildschirm aus. Dabei ist nl nicht nur ein »dummer« Zeilenzähler, sondern er kann die Zeilen einer Seite auch in einen Header, einen Body und einen Footer unterteilen und in unterschiedlichen Stilen nummerieren.
    user$ ls | nl -w3 -s') '
      1) abc
      2) bin
      3) cxoffice
      4) Desktop
      5) Documents
      6) file1.txt
    ...
Wenn Sie mehrere Dateien verwenden, beginnt die Nummerierung allerdings nicht mehr neu, sondern es werden mehrere Dateien wie eine behandelt. Die Zeilennummer wird nicht zurückgesetzt. Ein weiteres Beispiel:
    user$ nl hallo.c -s' : ' > hallo_line
    user$ cat hallo_line
         1 : #include <stdio.h>
         2 : int main(void) {
         3 :    printf("Hallo Welt{n}");
         4 :    return 0;
         5 : }
Mit der Option -s (optional) geben Sie das Zeichen an, das zwischen der Zeilennummer und der eigentlichen Zeile stehen soll. ### 26.1.26 od – Datei(en) hexadezimal bzw. oktal ausgeben od liest von der Standardeingabe eine Datei ein und gibt diese – Byte für Byte – formatiert und codiert auf dem Bildschirm aus. Standardmäßig wird dabei die siebenstellige Oktalzahl in je acht Spalten zu zwei Bytes verwendet:[Aus Gründen der Darstellung wurde eine Spalte im Listing weggelassen.]
    user$ od file1.txt
    0000000 064546 062554 035061 062572 066151 030545
    0000020 030545 075072 064545 062554 005062 064546
    0000040 062572 066151 031545 000012
    0000047
Jede Zeile enthält in der ersten Spalte die Positionsnummer in Bytes vom Dateianfang an. Mit der Option -h erfolgt die Ausgabe in hexadezimaler Form und mit -c in ASCII-Form. ### 26.1.27 rm – Dateien und Verzeichnisse löschen Mit dem Kommando rm können Sie Dateien und Verzeichnisse löschen.
Verwendung | Bedeutung
rm datei | Löscht eine Datei.
rm dir | Löscht ein leeres Verzeichnis.
rm -r dir | Löscht ein Verzeichnis rekursiv.
rm -rf dir | Erzwingt rekursives Löschen (ohne Warnung).
### 26.1.28 sort – Dateien sortieren Gewöhnlich wird sort zum Sortieren einzelner Zeilen einer Datei oder der Standardeingabe verwendet. sort kann auch Dateien daraufhin überprüfen, ob diese sortiert sind, und mehrere sortierte oder auch unsortierte Dateien zu einer sortierten zusammenfügen. Ohne Angabe einer Option sortiert sort eine Datei zeilenweise in alphabetischer Reihenfolge:
    user$ sort kommandos.txt
    a2ps – Textdatei umwandeln nach Postscript
    accept – Druckerwarteschlange empfangsbereit setzen
    afio – Ein cpio mit zusätzlicher Komprimierung
    alias – Kurznamen für Kommandos vergeben
    ...
    user$ ls | sort
    abc
    bin
    cxoffice
    Desktop
    Documents
    ...
Häufig verwendete Optionen zum Sortieren, die mit sort benutzt werden, sind in der folgenden Tabelle aufgeführt.
Option | Bedeutung
-n | Sortiert eine Datei numerisch.
-f | Unterscheidet nicht zwischen Klein- und Großbuchstaben.
-r | Sortiert nach Alphabet in umgekehrter Reihenfolge.
-n -r | Sortiert numerisch in umgekehrter Reihenfolge.
-c | Überprüft, ob die Dateien bereits sortiert sind. Wenn nicht, wird mit einer Fehlermeldung und dem Rückgabewert 1 abgebrochen.
-u | Gibt keine doppelt vorkommenden Zeilen aus.
Alternativ gibt es hierzu noch das Kommando tsort, das Dateien topologisch sortiert. ### 26.1.29 split – Dateien in mehrere Teile zerlegen Mit split teilen Sie eine Datei in mehrere Teile auf. Ohne Angabe einer Option wird eine Datei in je 1000 Zeilen aufgeteilt. Die Ausgabe erfolgt in Dateien mit »x...« oder mit einem entsprechenden Präfix, wenn eines angegeben wurde:
    user$ split –50 kommandos.txt
    user$ ls x*
    xaa  xab  xac  xad  xae
Die Datei können Sie folgendermaßen wieder zusammensetzen:
    user$ for file in `ls x* | sort`; do cat $file >> \
    new.txt; done
Hier wurde z. B. die Textdatei kommandos.txt in je 50-zeilige Häppchen aufgeteilt. Wollen Sie den Namen der neu erzeugten Datei verändern, gehen Sie wie folgt vor:
    user$ split –50 kommandos.txt kommandos
    user$ ls komm*
    kommandosaa  kommandosab  kommandosac
    kommandosad  kommandosae  kommandos.txt
Das Kommando split wird häufig eingesetzt, um große Dateien zu splitten, die nicht auf ein einzelnes Speichermedium passen. ### 26.1.30 tac – Dateien rückwärts ausgeben Vereinfacht ausgedrückt ist tac wie cat, nur dass tac die einzelnen Zeilen rückwärts ausgibt (daher auch der rückwärts geschriebene Kommandoname). Es wird somit zuerst die letzte Zeile ausgegeben, dann die vorletzte usw. bis zur ersten Zeile.
    user$ cat file1.txt
    file1:zeile1
    file1:zeile2
    file2:zeile3
    user$ tac file1.txt
    file2:zeile3
    file1:zeile2
    file1:zeile1
### 26.1.31 tail – Ende einer Datei ausgeben tail gibt die letzten Zeilen (standardmäßig ohne spezielle Angaben die letzten zehn) einer Datei aus.
    user$ tail –3 kommandos.txt
    write – Nachrichten an andere Benutzer verschicken
    zcat – Ausgabe von gunzip-komprimierten Dateien
    zip/unzip – (De-) Komprimieren von Dateien
Hier gibt tail die letzten drei Zeilen der Datei kommandos.txt aus. Wollen Sie eine Datei ab einer bestimmten Zeile ausgeben lassen, gehen Sie wie folgt vor:
    user$ tail +100 kommandos.txt
Hier werden alle Zeilen ab Zeile 100 ausgegeben. Wollen Sie tail wie tac verwenden, können Sie die Option -r verwenden:
    user$ tail -r kommandos.txt
Hiermit wird die komplette Datei zeilenweise rückwärts, von der letzten zur ersten Zeile, ausgegeben. Häufig wird auch die Option -f (follow) verwendet, die immer wieder das Dateiende ausgibt. Dadurch kann man eine Datei beim Wachsen beobachten, da jede neu hinzugekommene Zeile angezeigt wird. Natürlich lässt sich diese Option immer nur jeweils auf eine Datei gleichzeitig anwenden. Eine beliebte Anwendung in diesem Zusammenhang ist das Beobachten der Syslog-Datei /var/log/messages:
    user$ sudo tail -f /ver/log/messages
### 26.1.32 tee – Ausgabe duplizieren Mit tee lesen Sie von der Standardeingabe und verzweigen die Ausgabe auf die Standardausgabe und -datei. ### 26.1.33 touch – Zeitstempel verändern Mit touch verändern Sie die Zugriffs- und Änderungszeit einer Datei auf die aktuelle Zeit. Existiert eine solche Datei nicht, wird diese angelegt. Einige Optionen zu touch und ihre jeweilige Bedeutung:
Option | Bedeutung
-a | Ändert nur die Zugriffszeit.
-c | Falls eine Datei nicht existiert, wird auch keine erzeugt.
-m | Ändert nur die Änderungszeit
Dummy-Dateien erzeugen
Die folgenden Befehle erzeugen Dummy- oder leere Dateien beliebiger Größe. Dies geschieht entweder mit dd oder touch:
dd if=/dev/zero of=<Dateiname> bs=1k count=5 (5KB große, aber leere Datei) dd if=/dev/urandom of=<Dateiname> bs=1M count=7 (7MB mit Zufallsinhalt) touch <Dateiname> (erzeuge 0B Datei)
### 26.1.34 tr – Zeichen ersetzen Mit tr können Zeichen durch andere Zeichen ersetzt werden. Dies gilt auch für nicht druckbare Zeichen: tr str1 str2 file. Wird in der Datei file ein Zeichen aus str1 gefunden, wird es durch das entsprechende Zeichen in »str2« ersetzt. ### 26.1.35 type – Kommandos klassifizieren Mit type können Sie klassifizieren, wie die Shell den angegebenen Namen interpretieren soll, wenn Sie diesen in der Kommandozeile verwenden. type unterscheidet hierbei zwischen einem Alias, einem Built-in (Shell-Funktion), einer Datei oder einer Skriptfunktion.
    user$ type ls echo ./hallo
    ls is aliased to `/bin/ls $LS_OPTIONS'
    echo is a shell builtin
    ./hallo is ./hallo
### 26.1.36 umask – Datei-Erstellungsmaske ändern Mit der Shell-Funktion umask setzen Sie eine Maske, mit der die Zugriffsrechte auf eine Datei bzw. auf Verzeichnisse direkt nach der Erzeugung durch einen von der Shell kontrollierten Prozess bestimmt werden. Die in der Maske gesetzten Bits werden bei den Zugriffsrechten für die neue Datei bzw. das Verzeichnis gelöscht (man sagt auch: Sie werden maskiert). ### 26.1.37 uniq – doppelte Zeilen nur einmal ausgeben Mit uniq können Sie doppelt vorhandene Zeilen löschen. Voraussetzung ist allerdings, dass die Datei sortiert ist und die doppelten Zeilen direkt hintereinander folgen. Beispielsweise:
    user$ cat file1.txt
    file1:zeile1
    file1:zeile2
    file1:zeile2
    file2:zeile3
    user$ uniq file1.txt
    file1:zeile1
    file1:zeile2
    file2:zeile3
### 26.1.38 wc – Zeilen, Wörter und Zeichen zählen Mit wc können Sie die Zeilen, Wörter und/oder Zeichen einer Datei zählen. Ohne spezielle Optionen wird eine Zeile mit den folgenden Zahlen ausgegeben:
    user$ wc file1.txt
     4  4 52 file1.txt
Die erste Spalte enthält die Anzahl der Zeilen, gefolgt von der Anzahl der Wörter und am Ende die Anzahl der Zeichen. Einzeln können Sie dies mit der Option -l (lines = Zeilen), -w (words = Wörter) und -c (characters = Zeichen) ermitteln. ### 26.1.39 whereis – Suche nach Dateien Mit dem Kommando whereis wird vorwiegend in wichtigen Pfaden (meistens allen Einträgen in PATH) nach Binärdateien oder man-Dateien gesucht. whereis ist nicht so flexibel wie find, aber dafür erheblich schneller.
    user$ whereis ls
    /bin/ls /usr/share/man/man1/ls.1.gz
    /usr/share/man/man1p/ls.1p.gz
    user$ whereis -b ls
    /bin/ls
    user$ whereis -m ls
    /usr/share/man/man1/ls.1.gz
    /usr/share/man/man1p/ls.1p.gz
Zuerst wurde der Pfad zum Programm ls ermittelt. Hierbei werden allerdings auch gleich die Pfade zu den man-Seiten mit ausgegeben. Wollen Sie nur den Pfad zum Binärprogramm erhalten, müssen Sie die Option -b verwenden. Wünschen Sie nur den Pfad zu den man-Seiten, so verwenden Sie die Option -m, wie im Beispiel gesehen. ### 26.1.40 zcat, zless, zmore – Ausgabe von zip-Dateien Alle drei Funktionen haben dieselbe Funktionsweise wie ihre Gegenstücke ohne »z«, nur dass hiermit gzip- bzw. gunzip-komprimierte Dateien gelesen und ausgegeben werden können, ohne dass diese dekomprimiert werden müssen. Auf manchen Systemen gibt es mit zgrep auch noch eine entsprechende grep-Version. ### Ihr Kommentar Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen. >> Zum Feedback-Formular
<< zurück | <top> | vor >>
Zum Katalog
Ubuntu GNU/Linux Jetzt bestellen
Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen? Ihre Meinung
Buchtipps
| Linux
| IT-Handbuch für Fachinformatiker
| Webserver einrichten und administrieren
| Xen
| VirtualBox
| LPIC-1
| Einstieg in Ubuntu 8.10 »Intrepid Ibex«
| Einstieg in Ubuntu Linux - Videotraining
| Debian GNU/Linux
Shopping
Versandkostenfrei bestellen in Deutschland und Österreich Info

Copyright © Galileo Press 2009
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

[Galileo Computing]
Galileo Press, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de