B Kommandoreferenz
Die Idee
Diese Kommandoreferenz bietet Ihnen eine Übersicht über die wichtigsten Linux- und BSD-Befehle und deren wichtigste Optionen. Einige dieser Programme sind nicht auf allen Systemen verfügbar, bei anderen sind nicht alle Parameter auf jedem System verfügbar oder heißen jeweils anders. [Beispielsweise ist das Programm tac nicht unter OpenBSD zu finden.] Des Weiteren unterstützen einige Programme sowohl Optionen mit einem vorangehenden Bindestrich (etwa uniq -c) als auch den sogenannten GNU-Style mit zwei Strichen (etwa uniq –count). Unter BSD wird oftmals nur die Nicht-GNU-Variante unterstützt, weshalb portable Skripte auch nur diese Optionen verwenden sollten.
alias
- Pfad: Shell-Builtin
- Nutzen: alias erstellt eine Kurzform für (komplexe) Kommandos.
- Hinweis: Die Parameter, die von alias unterstützt werden, hängen von der Implementierung in der jeweiligen Shell ab, da alias shellintern ist. Näheres zu diesem Befehl erfahren Sie in Kapitel 7. % Shell-Kapitel
Das folgende Beispiel zeigt die interaktive Benutzung von alias in der bash-Shell, um einen Alias für das ps-Kommando einzurichten:
$ alias alias ls='ls --color=auto' $ p p: command not found $ alias p='ps' $ p PID TTY TIME CMD 2341 pts/0 00:00:00 bash 6257 pts/0 00:00:00 ps $ alias alias ls='ls --color=auto' alias p='ps'
Listing B.1 alias verwenden
apropos
Siehe man.
awk
- Pfad: /usr/bin/awk
- Nutzen: awk ist ein Streameditor und eine Skriptsprache.
- Hinweis: awk wird in den Kapitel 9 und 11 im Detail besprochen bzw. verwendet.
bc
- Pfad: /usr/bin/bc
- Nutzen: bc ist ein programmierbarer Taschenrechner für die Konsole.
- Hinweis: Der bc wird in Kapitel 7, »Shellskriptprogrammierung«, behandelt.
Das folgende Beispiel zeigt die interaktive Verwendung von bc:
$ bc bc 1.06.94 Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc. This is free software with ABSOLUTELY NO WARRANTY. For details type `warranty'. 1+1 2 quit $
Listing B.2 bc verwenden
cal
- Pfad: /usr/bin/cal
- Nutzen: cal gibt einen Kalender auf der Konsole aus.
- Hinweis: cal wird im Regelfall mit einer vierstelligen Jahreszahl aufgerufen, der Monat wird hingegen zweistellig angegeben.
Wenn cal ohne Parameter aufgerufen wird, gibt es den aktuellen Monat aus. Möchte man einen anderen Monat ausgeben, so müssen sowohl Monat (zweistellig), als auch Jahr (vierstellig, sonst A.D.) angegeben werden. Es kann auch nur ein vierstelliges Jahr ohne Monat angegeben werden, um den gesamten Jahreskalender anzeigen zu lassen.
$ cal 10 1984 Oktober 1984 So Mo Di Mi Do Fr Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
Listing B.3 cal gibt den Oktober 1984 aus.
cd
- Pfad: Shell-Builtin
- Nutzen: cd wechselt das aktuelle Verzeichnis.
- Hinweis: Im Normalfall wird nur das neue Verzeichnis als Argument angegeben.
Parameter | Wirkung |
Verzeichnis |
Wechselt das Arbeitsverzeichnis der Shell zu Verzeichnis. |
- |
Wechselt in das letzte Verzeichnis und macht damit den letzten cd-Aufruf rückgängig. |
Das folgende Beispiel zeigt die Verwendung von cd:
$ pwd /home/test1 $ cd /etc $ pwd /etc $ cd - $ pwd /home/test1 $
Listing B.4 cd verwenden
compress
- Pfad: /bin/compress
- Nutzen: compress komprimiert Dateien.
- Hinweis: Sehen Sie sich hierzu die Referenz zum gzip-Programm an. Beide Programme haben praktisch dieselben Parameter.
cp
- Pfad: /bin/cp
- Nutzen: cp kopiert Dateien.
Parameter | Wirkung |
-i |
Für den Fall, dass durch einen Kopiervorgang eine vorhandene Datei überschrieben wird, erscheint eine Abfrage, ob tatsächlich überschrieben werden soll. |
-R |
Wenn ein Verzeichnis kopiert wird, erfolgt der Kopiervorgang rekursiv. |
-v |
Für jede zu kopierende Datei werden Quelle und Ziel angezeigt. |
QUELLE |
Die Quelle des Kopiervorgangs. (Muss angegeben werden.) |
Ziel |
Das Ziel des Kopiervorgangs. (Muss angegeben werden.) |
Das folgende Beispiel zeigt die Verwendung von cp, um das aktuelle Unterverzeichnis Verzeichnis nach /tmp zu kopieren:
$ cp -R ./Verzeichnis /tmp/
Listing B.5 cp verwenden
cut
- Pfad: /bin/cut
- Nutzen: cut schneidet Teile aus Zeilen der Eingabe.
- Hinweis: cut ist in Abschnitt 9.4 genau erklärt.
Parameter | Wirkung |
-d ZEICHEN |
Gibt ein Trennungszeichen (Delimiter) an. |
-f FELDER |
Selektiert, welche (durch die Trennungszeichen markierten) Felder ausgeschnitten werden sollen. |
[DATEI] |
Datei, die ausgewertet werden soll. Wird keine Datei angegeben, wird von der Standardeingabe gelesen. |
Das folgende Beispiel zeigt die Verwendung von cut, um aus der Datei /etc/passwd das sechste vom Zeichen »:« getrennte Feld (das Homeverzeichnis) auszuschneiden und anzuzeigen:
$ cat /etc/passwd root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/bin/sh bin:x:2:2:bin:/bin:/bin/sh sys:x:3:3:sys:/dev:/bin/sh [...] $ cat /etc/passwd | cut -d ':' -f 6 /root /usr/sbin /bin /dev [...]
Listing B.6 cut verwenden
date
- Pfad: /bin/date
- Nutzen: date gibt die aktuelle Systemzeit aus und kann diese auch setzen.
- Hinweis: Ohne Option wird die aktuelle Systemzeit samt Datum ausgegeben.
Parameter | Wirkung |
-r DATEI |
Zeigt die letzte Änderung der Datei DATEI an. |
-s ZEIT |
Setzt die Uhrzeit sowie das Datum nach der Zeichenkette ZEIT. Diese Option ist root vorbehalten. |
-u |
Zeigt oder setzt die Zeit nach der UTC (Universal Time Coordinated). |
Die Zeit wird im Format [[[[[[cc]yy]mm]dd]HH]MM[.SS]] gesetzt. Für den 22.11.2005 19:06 Uhr und 40 Sekunden sieht das wie folgt aus:
# date 200511221906.40
Tue Nov 22 19:06:40 CET 2005
Listing B.7 Datum und Zeit konfigurieren
dig
- Pfad: /usr/(s)bin/dig
- Nutzen: dig sendet Anfragen an einen Nameserver.
- Hinweis: Aufruf in der Form dig @server name type. Über diverse Parameter, auf die hier nicht eingegangen wird, etwa +[no]adflag, ist es möglich, den DNS-Paketheader sehr genau zu gestalten und einzelne Flags/Bits (nicht) zu setzen.
Parameter | Wirkung |
[server] |
Hierbei handelt es sich um die Adresse bzw. den Hostnamen des DNS-Servers, an den eine Anfrage gesendet werden soll. |
[name] |
Über name wird angegeben, welchen Ressource-Record man abfragen möchte (z. B. pop3.web.de). |
[type] |
Der Typ des Ressource-Records. Beispielsweise sollten Sie hier »A« für einen IPv4-Address-Record, »AAAA« für einen IPv6-Address-Record und »NS« für einen Nameserver-Record angeben. Weitere Typen von Ressource-Records werden in Kapitel 20 besprochen. |
-b [a] |
Um die Absenderadresse eines Pakets festzulegen, wird der Parameter -b adresse verwendet. |
–4/-6 |
ausschließliche Verwendung von IPv4 (-4) bzw. IPv6 (-6) |
+[no]tcp |
Veranlasst dig dazu, ausdrücklich (nicht) das TCP-Protokoll zu verwenden (die Alternative stellt UDP dar). |
+[no]cl |
Zeigt die Klasse der DNS-Pakete (z. B. »Internet«) (nicht) an. |
+[no]ttlid |
Zeigt die TTL der empfangenen Response-Pakete (nicht) an. |
+[no]question |
Zeigt die Question-Sektion der Response-Pakete (nicht) an. Diese Sektion enthält die an den Server gestellten Anfragen. |
Das folgende Beispiel zeigt die Verwendung von dig, um den öffentlichen DNS-Resolver von Google (IP 8.8.8.8) nach der Adresse von www.galileo-computing.de (85.88.3.146) zu fragen:
$ dig @8.8.8.8 www.galileo-computing.de
; <<>> DiG 9.6.1-P2 <<>> @8.8.8.8 www.galileo-computing.de
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 32970
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;www.galileo-computing.de. IN A
;; ANSWER SECTION:
www.galileo-computing.de. 3600 IN A 85.88.3.146
;; Query time: 227 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Fri Apr 9 20:26:27 2010
;; MSG SIZE rcvd: 58
Listing B.8 dig verwenden
dmesg
- Pfad: /bin/dmesg
- Nutzen: dmesg gibt die letzten Meldungen des Kernel-Ringpuffers.
- Hinweis: Die Parameter für dmesg variieren zwischen Linux und BSD sehr stark und werden zudem nur äußerst selten verwendet. Wir haben uns an dieser Stelle nur für einen einzigen wichtigen Parameter der Linux-Implementierung entschieden.
Parameter | Wirkung |
-r |
Gibt Rohmeldungen aus (enthalten mehr Informationen). |
egrep
- Pfad: /usr/bin/egrep
- Nutzen: egrep verhält sich wie grep -E.
- Hinweis: Weitere Hinweise finden Sie im Eintrag zu grep.
Emacs
- Pfad: /usr/bin/emacs
- Nutzen: emacs ist ein beliebter Texteditor.
- Hinweis: Der emacs wird ausführlich in Abschnitt 10.4 beschrieben.
false
- Pfad: /bin/false
- Nutzen: false tut nichts und beendet mit dem Returnwert »1«. Siehe auch true.
fuser
- Pfad: /bin/fuser
- Nutzen: fuser gibt Auskunft über Prozesse, die Dateien verwenden.
fuser wird mit dem zu prüfenden Pfadnamen bzw. Dateinamen aufgerufen und gibt eine Liste der Prozesse aus, die diesen Pfad bzw. diese Datei verwenden. Hinter jeder ausgegebenen Prozess-ID können sich Buchstaben aus der folgenden Tabelle befinden.
Zeichen | Bedeutung |
c |
Der Pfad ist das Arbeitsverzeichnis des Prozesses. |
e |
Es handelt es sich um ein derzeitig ausgeführtes Binary. |
f |
Es handelt sich um eine geöffnete Datei (wird nur im Verbose-Mode angezeigt). |
F |
Wie f, allerdings ist die Datei zum Schreiben geöffnet. |
r |
das Root-Verzeichnis / |
m |
memory-mapped-Datei oder dynamische Bibliothek |
Parameter | Wirkung |
-a |
Gibt auch Dateien aus, die derzeit nicht von Prozessen verwendet werden (andernfalls sind diese nicht in der Ausgabe enthalten, obwohl sie als Parameter übergeben worden sind). |
-k |
Beendet Prozesse (über das SIGKILL-Signal), die die angegebene Datei benutzen. Das Signal kann durch -S verändert werden, wobei S das Signal ist. |
-i |
Fragt vor Beendigung eines Prozesses den Benutzer nach einer Bestätigung. |
-l |
Listet alle bekannten Signale. |
-m |
Wird für eingehängte Dateisysteme verwendet und gibt Informationen zu allen verwendeten Dateien des Dateisystems. |
-n [space] |
Wechselt den Namespace (damit ist die Art des Dateityps gemeint). |
Der Standard-Namespace ist file (Dateien im Dateisystem). Weiterhin gibt es udp für UDP-Sockets und tcp für TCP-Sockets. Für UDP- und TCP-Sockets können Adressen und Ports angegeben werden. |
|
-u |
Benutzername zum Prozess ausgeben |
-v |
detaillierte Ausgabe |
-V |
Versionsnummer ausgeben |
–4 |
nur nach IPv4-Verbindungen (Sockets) suchen |
–6 |
nur nach IPv6-Verbindungen suchen |
Beispiel 1: Nehmen wir an, eine Netzwerkverbindung via Telnet-Client würde den lokalen Quellport 38141 benutzen. Wir wüssten allerdings nur, dass dieser TCP-Port von einem Programm verwendet wird. Mit fuser können wir weitere Informationen zum Prozess erhalten:
$ netstat -an | grep 40386 tcp6 0 0 ::1:40386 ::1:22 VERBUNDEN tcp6 0 0 ::1:22 ::1:40386 VERBUNDEN $ fuser -va -n tcp 40386 USER PID ACCESS COMMAND 40386/tcp: swendzel 4895 F.... telnet
Listing B.9 Informationen zur Verbindung von TCP-Port 38141
Beispiel 2: Anzeigen aller verwendeten Dateien in /tmp inklusive Informationen zum Benutzer, dem der jeweilige Prozess gehört.
$ fuser -avu /tmp USER PID ACCESS COMMAND /tmp: swendzel 1578 ..c.. (swendzel)seahorse-agent
Listing B.10 Prozesse, die /tmp/* verwenden
grep
- Pfad: /usr/bin/grep
- Nutzen: grep durchsucht Texte nach regulären Ausdrücken.
- Hinweis: Das Programm wird in Abschnitt 8.3 genau besprochen.
Parameter | Wirkung |
-b |
Gibt das Offset der gefundenen Stelle im Input-Stream oder in der Input-Datei aus. |
-E |
Behandelt den regulären Ausdruck als erweiterten regulären Ausdruck. Damit können mehrere Muster parallel angegeben werden, wobei sich grep wie egrep verhält. |
-f [f] |
Liest von der Eingabedatei [f]. |
-I |
Überspringt binäre Dateien. |
-n |
Vergibt Zeilennummern für die Ausgabe. |
[DATEI] |
Datei, die ausgewertet werden soll. Wird keine Datei angegeben, wird von der Standardeingabe gelesen. |
Das folgende Beispiel zeigt die Verwendung von grep, um in der Ausgabe von ps aux einen bestimmten Prozess zu finden:
$ ps aux | grep bash
1000 2117 0.0 0.3 6508 3800 pts/0 Ss 20:12 0:00 bash
Listing B.11 grep verwenden
GRUB
- Pfad: /sbin/grub
- Nutzen: grub dient zur Modifikation des Master Boot Records.
- Hinweis: Das Programm wird in Kapitel 27, »Bootstrap und Shutdown«, besprochen.
gzip, compress, gunzip, uncompress, zcat, gzcat
- Pfad: /bin/gzip,compress, ...
- Nutzen: gzip und compress komprimieren Dateien mittels verschiedener Formate; gunzip und uncompress dekomprimieren diese Dateien wieder. zcat und gzcat geben die (de)komprimierten Dateien auf der Standardausgabe aus.
- Hinweise:
- Diese Programme kommen besonders bei der Komprimierung von tar-Archiven zum Einsatz.
- Ein Rückgabewert von »1« gibt einen Fehler, ein Rückgabewert von »2« eine Warnung an. Bei einem Rückgabewert von »0« ist alles in Ordnung.
- Die einzelnen Kompressionsformate sind in den RFCS 1950 bis 1952 beschrieben.
- Übrigens steht das »g« in gzip für »gratis«.
Parameter | Wirkung |
-V |
Zeigt die Programmversion an. |
-c |
Die komprimierte bzw. dekomprimierte Ausgabe wird auf die Standardausgabe und nicht in einer Datei geschrieben (zcat-/gzcat-Modus). |
-d |
Dekomprimiert eine Datei (uncompress-Modus). |
–1...9 |
Kompressionsfaktor |
-o [n] |
Die Ausgabe wird in der Datei [o] gespeichert. |
-S [s] |
Setzt das Suffix für komprimierte Dateien. |
-r |
Rekursiver Modus für compress. Auch Unterverzeichnisse werden dadurch einbezogen. |
-q |
quiet-mode. Es werden keine Informationen ausgegeben. |
-v |
verbose-mode. Es werden ausführliche Informationen ausgegeben. |
[DATEI] |
Datei, die bearbeitet werden soll. Wird keine Datei angegeben, wird von der Standardeingabe gelesen. |
Das folgende Beispiel zeigt die Verwendung von gzip, um eine Datei zu komprimieren:
$ gzip myfile $ ls myfile.gz $ gzcat myfile.gz Das ist der Inhalt der myzfile-Datei. Test, Test, Test. $ gunzip myfile.gz $ ls myfile
Listing B.12 gzip verwenden
head
- Pfad: /bin/head
- Nutzen: head zeigt die ersten Zeilen einer Datei an.
- Hinweis: head –123 und head -n 123 haben dieselbe Wirkung.
Parameter | Wirkung |
-[n] |
Gibt die ersten [n] Zeilen aus. |
-n [n] |
Gibt ebenfalls die ersten [n] Zeilen aus. |
[DATEI] |
Datei, die ausgewertet werden soll. Wird keine Datei angegeben, wird von der Standardeingabe gelesen. |
Das folgende Beispiel zeigt die Verwendung von head, um die ersten vier Zeilen aus der Datei /etc/passwd anzuzeigen:
$ head -n 4 /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
$
Listing B.13 head verwenden
hexdump
- Pfad: /usr/bin/hexdump
- Nutzen: hexdump gibt einen Dateiinhalt in verschiedenen Formen aus.
Parameter | Wirkung |
-d |
2-Byte-Ausgabe in dezimaler Form |
-o |
2-Byte-Ausgabe in oktaler Form |
-v |
Gibt jede Input-Zeile aus. Tauchen mehrfache Wiederholungen auf, so würde hexdump sonst nur das *-Zeichen ausgeben. |
-x |
hexadezimale Ausgabe |
[DATEI] |
Datei, die ausgegeben werden soll. Wird keine Datei angegeben, wird von der Standardeingabe gelesen. |
Das folgende Beispiel zeigt die Verwendung von hexdump, um einen per dd ausgelesenen Masterbootrecord (MBR) anzuzeigen:
# dd bs=512 count=1 if=/dev/sda of=mbr.txt 1+0 Datensätze ein 1+0 Datensätze aus 512 Bytes (512 B) kopiert, 0,000144292 s, 3,5 MB/s # hexdump mbr.txt 0000000 48eb d790 00bc bb7a 07a0 db8e c38e 00be 0000010 8b02 fcce a4f3 a3ea a000 b907 0004 fd8b [...]
Listing B.14 hexdump verwenden
host
- Pfad: /usr/bin/host
- Nutzen: host löst DNS-Namen in IP-Adressen auf und umgekehrt.
- Aufruf: host NAME/IP [NAMESERVER]
Parameter | Wirkung |
NAME/IP |
Der wichtigste Parameter ist der Rechnername, der in eine IP aufgelöst werden soll, beziehungsweise die IP, die in einen Rechnernamen aufgelöst werden soll. |
[NAMESERVER] |
Optional: Wird ein DNS-Server angegeben, so wird dieser direkt befragt. Wird dieser Parameter weggelassen, werden die systemweit konfigurierten DNS-Server benutzt. |
Das folgende Beispiel zeigt die Verwendung von host, um den öffentlichen DNS-Resolver von Google (die IP 8.8.8.8) nach der IP-Adresse von www.galileo-computing.de (85.88.3.146) zu fragen:
$ host www.galileo-computing.de 8.8.8.8
Using domain server:
Name: 8.8.8.8
Address: 8.8.8.8#53
Aliases:
www.galileo-computing.de has address 85.88.3.146
Listing B.15 host verwenden
Im folgenden Beispiel wird der Reverse Record zur IP 85.88.3.146 angefragt:
$ host 85.88.3.146
146.3.88.85.in-addr.arpa domain name pointer grobi.galileo-press.de.
Listing B.16 host verwenden, Teil 2
hostname
- Pfad: /bin/hostname
- Nutzen: hostname gibt den Hostnamen des Systems aus oder ändert ihn.
- Hinweis: Bei der Änderung des Hostnamens wird keine Veränderung an einem Nameserver vorgenommen; die Änderung beschränkt sich auf das lokale System. Eine Änderung des Hostnamens sehen Sie im Shellprompt übrigens erst nach dem Öffnen einer neuen Shell.
Parameter | Wirkung |
} |
Wird hostname ohne Parameter aufgerufen, wird der FQDN-Hostname des Systems ausgegeben. |
[NAME] |
Wird hostname mit einem Parameter aufgerufen, so wird der Hostname entsprechend dem Parameter geändert. |
-s |
Gibt nur den Hostnamen selbst (ohne Domain) aus. |
Das folgende Beispiel zeigt die Verwendung von hostname, um den lokalen Hostnamen zu setzen und auszugeben:
root@laptop# hostname laptop root@laptop# hostname rechenknecht root@laptop# hostname rechenknecht root@laptop# bash root@rechenknecht#
Listing B.17 hostname verwenden
info
- Pfad: /usr/bin/info
- Nutzen: info zeigt GNU-Infoseiten an.
- Hinweis: Im Allgemeinen wird info mit dem zu erläuternden Befehl als Argument aufgerufen.
kill
- Pfad: /bin/kill
- Nutzen: kill sendet Signale an Prozesse.
- Hinweis: Oft wird kill nur zum Beenden von Prozessen genutzt – das Programm kann aber noch deutlich mehr.
- Aufruf: kill [-SIG] PID [PID2...]
Parameter | Wirkung |
[-SIG] |
Optional: Gibt an, welches Signal kill an den Prozess senden soll. Wird dieser Parameter weggelassen, so wird ein SIGTERM gesendet, was den Prozess »freundlich« zum Beenden auffordert (mehr über Signale erfahren Sie in Abschnitt 26.3.) |
PID |
Es muss mindestens die PID eines Prozesses angegeben werden, an den das Signal geschickt werden soll. |
[PID2...] |
Wenn Sie das Signal an mehr als einen Prozess senden wollen, können Sie optional weitere PIDs angeben. |
Das folgende Beispiel zeigt die Verwendung von kill, um das SIGKILL-Signal an den Prozess mit der Nummer 12345 zu schicken:
$ ps aux | grep xterm 1000 12345 1.1 0.5 11140 5764 ? S 21:35 0:00 xterm $ kill –9 12345 $ ps aux | grep xterm $
Listing B.18 kill verwenden
killall
- Pfad: /usr/bin/killall
- Nutzen: killall funktioniert genau wie kill, mit dem Unterschied, dass man auch Prozessnamen anstelle der PID angeben kann.
- Hinweis: Der Aufruf von killall -SIG PROZESS ist äquivalent zu kill -SIG `pidof PROZESS`.
Das folgende Beispiel zeigt die Verwendung von killall, um das SIGKILL-Signal an alle Prozesse mit dem Namen xterm zu schicken:
$ ps aux | grep xterm 1000 12345 1.1 0.5 11140 5764 ? S 21:35 0:00 xterm $ killall –9 xterm $ ps aux | grep xterm $
Listing B.19 killall verwenden
lilo
- Pfad: /sbin/lilo
- Nutzen: lilo dient zur Modifikation des Master Boot Records.
- Hinweis: Das Programm wird in Kapitel 27, »Bootstrap und Shutdown«, besprochen. In vielen Distributionen wurde lilo durch grub ersetzt. grub wird ebenfalls in Kapitel 27 besprochen.
ln
- Pfad: /bin/ln
- Nutzen: ln erzeugt Links.
- Hinweis: Es können sowohl Hardlinks als auch Softlinks (symbolische Links) erstellt werden.
Parameter | Wirkung |
-s |
Erstellt einen symbolischen Link. |
-h/-n |
Wenn das Ziel ein symbolischer Link auf ein Verzeichnis ist, so wird dieser nicht verfolgt. |
-v |
Gibt aus, von welcher Datei und zu welcher Datei ein Link erzeugt wurde. |
Das folgende Beispiel zeigt die Verwendung von ln, um einen symbolischen Link auf foo zu erzeugen, der bar heißt.
$ touch foo $ ln -s foo bar $ ls -al foo bar lrwxrwxrwx 1 jploetner jploetner 3 2010-04-09 21:40 bar -> foo -rw-r--r-- 1 jploetner jploetner 0 2010-04-09 21:40 foo
Listing B.20 ln verwenden
logger
- Pfad: /usr/bin/logger
- Nutzen: logger protokolliert Meldungen durch syslogd. Verwendung findet das Programm besonders in der Shellskriptprogrammierung.
Parameter | Wirkung |
-i |
Prozess-ID loggen |
-f [d] |
Meldung in Datei d schreiben |
-p [pr] |
Die Priorität pr verwenden. pr setzt sich dabei aus der Facility und dem Level, etwa system.notice, zusammen (siehe Abschnitt 14.4.2). |
-s |
Meldung zusätzlich auf die Standardfehlerausgabe schreiben |
Das folgende Beispiel zeigt die Verwendung von logger, um eine Meldung in die Datei /var/log/messages zu schreiben.
$ tail -n 1 /var/log/messages Apr 12 21:21:00 laptop pulseaudio[1605]: ratelimit.c: 1 events suppressed $ logger "Test" $ tail -n 1 /var/log/messages Apr 12 21:21:26 laptop jploetner: Test $ logger -I "Test 2" $ tail -n 1 /var/log/messages Apr 12 21:22:52 laptop jploetner[5089]: Test 2
Listing B.21 logger verwenden
ls
- Pfad: /bin/ls
- Nutzen: ls Listet den Inhalt eines Verzeichnisses auf.
- Hinweis: Viele Optionen funktionieren nur in Verbindung mit der -l-Option.
Parameter | Wirkung |
-a |
Zeigt versteckte Dateien an. |
-h |
Gibt die Dateigröße auf eine sinnvolle Größe gerundet (etwa KB oder MB) aus. |
-i |
Gibt die Inode-Nummer einer Datei aus. |
-l |
Gibt ausführliche Informationen zu den Dateien aus. |
-m |
Gibt die Dateien separiert durch Kommas aus. |
-n |
Gibt ausführliche Informationen zu Dateien aus (wie -l), jedoch werden die User- und Group-ID der Datei numerisch dargestellt. |
-F |
Gibt einen Slash hinter jeder Datei aus, die ein Verzeichnis ist. |
-R |
Gibt die Unterverzeichnisse rekursiv aus. |
-r |
Dreht die Ausgabereihenfolge um (nützlich bei -t und -S). |
-S |
Sortiert die Dateien nach Größe in absteigender Reihenfolge. |
-T |
Gibt ausführliche Timestamp-Informationen für jede Datei aus. |
-t |
Gibt die Dateien sortiert nach ihrem Timestamp aus, wobei die aktuellen Timestamps zuerst ausgegeben werden. |
DATEI ... |
Optional kann man ls den Pfad bzw. das passende Muster zu Verzeichnissen oder Dateien übergeben, die man anzeigen lassen will. Wird nichts angegeben, gibt ls den Inhalt des aktuellen Verzeichnisses aus. |
Das folgende Beispiel zeigt die Verwendung von ls, um verschiedene Dateien in einem Verzeichnis anzuzeigen:
$ ls bd CVS icmp_backdoor.h iphdr.cpp Makefile bdclient icmp_backdoor.c icmpbd_cli.cpp iphdr.h $ ls ip* iphdr.cpp iphdr.h $ ls *cpp icmpbd_cli.cpp iphdr.cpp $ ls -al *cpp -rw-r----- 1 jploetner jploetner 1648 2008-05-24 18:59 icmpbd_cli.cpp -rw-r----- 1 jploetner jploetner 3059 2008-05-24 18:59 iphdr.cpp $ ls /usr/ bin games include lib local sbin share src $
Listing B.22 ls verwenden
make
- Pfad: /usr/bin/make
- Nutzen: make wird primär zur automatischen Übersetzung und Installation von Softwareprojekten verwendet.
- Hinweis: Eine umfangreiche Beschreibung mit Anwendungsbeispielen zu make finden Sie in Abschnitt 30.8.
Parameter | Wirkung |
-f [m] |
Normalerweise verwendet make eine Datei namens Makefile, um Befehle entgegenzunehmen. Möchte man eine andere Datei oder eine Datei [m] verwenden, so kann man diese über den Parameter -f angeben. |
-n |
Mit diesem Parameter führt make keine Befehle aus, zeigt aber trotzdem an, was ausgeführt werden würde, wenn man make normal starten würde. |
-t |
Führt alle Befehle aus, aber unterdrückt explizit die Ausgabe, um welche Befehle es sich dabei handelt (vergleichbar mit dem @-Zeichen, das vor die einzelnen Befehle gestellt werden kann). |
man
- Pfad: /usr/bin/man
- Nutzen: Mit man kann man Hilfeseiten (Manpages) betrachten.
- Hinweis: Im Normalfall ruft man man mit dem Programm als Parameter auf, für das man die Hilfeseite angezeigt bekommen möchte.
Parameter | Wirkung |
NR Befehl |
Gibt es mehrere Hilfeseiten zu einem Befehl, so kann man über das Voranstellen der Sektionsnummer zwischen den einzelnen Hilfeseiten wählen. |
-k Suchbegriff |
Sucht alle Hilfeseiten mit »Suchbegriff« heraus und zeigt deren Kurzbeschreibung an. |
-f Befehl |
Sucht alle sich auf »Befehl« beziehenden Hilfeseiten heraus und zeigt deren Kurzbeschreibung an. |
mkfifo
- Pfad: /sbin/mkfifo
- Nutzen: mkfifo erstellt eine FIFO-Datei im Dateisystem.
- Hinweis(e): Weitere Informationen zu Anwendung von FIFOs finden Sie in Abschnitt 7.9.2. Technische Hintergründe können Sie in Kapitel 26, »Prozesse und IPC«, nachlesen.
Parameter | Wirkung |
-mode [Modus] |
Setzt die Zugriffsrechte der Datei gemäß [Modus]. |
Das folgende Beispiel zeigt die Verwendung von mkfifo, um eine Named Pipe anzulegen und rudimentär zu benutzen:
### Shell 1 ### $ mkfifo test $ ls -l test prw-r--r-- 1 jploetner jploetner 0 2010-04-12 21:43 test $ cat /etc/passwd > test [Shell blockiert] ### Shell 2 ### $ cat test root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/bin/sh bin:x:2:2:bin:/bin:/bin/sh sys:x:3:3:sys:/dev:/bin/sh [...] ### Shell 1 ### $ rm test
Listing B.23 mkfifo verwenden
mv
- Pfad: /bin/mv
- Nutzen: mv ändert Dateinamen bzw. »verschiebt« Dateien in andere Verzeichnisse. %Hinweis(e): keine
Parameter | Wirkung |
-i |
Wird eine existierende Datei durch einen mv-Aufruf überschrieben, so erscheint eine Abfrage, die es dem Benutzer ermöglicht, den Vorgang entweder tatsächlich durchzuführen oder abzubrechen. |
-v |
Gibt den alten und den neuen Dateinamen einer Datei aus. |
Das folgende Beispiel zeigt die Verwendung von mv:
$ mv -v DateiA DateiB
"DateiA" -> "DateiB"
Listing B.24 mv verwenden
named
- Pfad: meist /usr/sbin/named
- Nutzen: named ist der Standard-Nameserver der meisten Unix-artigen Systeme. Es handelt sich dabei um den im Buch besprochenen Dienst BIND.
Parameter | Wirkung |
-c |
Soll nicht die Standardkonfigurationsdatei verwendet werden, so kann mit diesem Parameter explizit der Pfad der zu verwendenden Datei angegeben werden. |
-d [l] |
Legt den Debug-Level des Nameservers fest. Je höher dieser Level angegeben wird, desto mehr Debug-Informationen erhalten Sie. |
-f |
Der Server »forkt« sich nicht zum Dämon-Prozess, sondern läuft im Vordergrund. |
-g |
Der Server schreibt alle Fehlermeldungen direkt durch STDERR auf die Konsole, anstatt über syslogd zu protokollieren. |
-p [p] |
Soll nicht der Standard-DNS-Port (53) verwendet werden, so kann durch diesen Parameter ein alternativer Port angegeben werden. |
-t [v] |
Einige BIND-Versionen unterstützen den Parameter -t. Mit diesem kann ein Verzeichnis angegeben werden, das als chroot-Umgebung fungieren soll. Unter einigen Systemen (etwa OpenBSD) läuft BIND standardmäßig in einer solchen Umgebung. |
-v |
Gibt die Versionsnummer aus. |
-u [id] |
Diese Option setzt die Benutzer-ID, unter der BIND läuft, herab, nachdem alle Aktionen durchgeführt wurden, die die Zugriffsrechte des Superusers voraussetzen. |
nl
- Pfad: /bin/nl
- Nutzen: nl fügt Zeilennummern für Dateien ein.
- Hinweis: Dieses Programm gehört nicht zum Standardumfang aller Distributionen und BSD-Derivate.
Das folgende Beispiel zeigt die Verwendung von nl, um die Zeilen der Datei /etc/passwd zu nummerieren:
$ cat /etc/passwd root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/bin/sh bin:x:2:2:bin:/bin:/bin/sh sys:x:3:3:sys:/dev:/bin/sh [...] $ nl /etc/passwd 1 root:x:0:0:root:/root:/bin/bash 2 daemon:x:1:1:daemon:/usr/sbin:/bin/sh 3 bin:x:2:2:bin:/bin:/bin/sh 4 sys:x:3:3:sys:/dev:/bin/sh [...]
Listing B.25 nl verwenden
od
- Pfad: /usr/bin/od
- Nutzen: od kann Dateien in beispielsweise oktaler oder hexadezimaler Form anzeigen.
- Hinweis: Siehe zu od Abschnitt 9.10.3. od ist vergleichbar mit hexdump.
Parameter | Wirkung |
-t FORMAT |
Gibt das Ausgabeformat an. Mögliche Werte für FORMAT sind beispielsweise »x« für hexadezimale Ausgabe oder ein »f« für eine Ausgabe in Fließkomma-Form. Folgt auf diesen Buchstaben noch eine weitere Zahl, so bestimmt diese die Anzahl der Bytes, die für die Darstellung genutzt werden sollen. |
Eine beispielhafte Ausgabe von od finden Sie in Anhang, »MBR«.
paste
- Pfad: /bin/paste
- Nutzen: paste fügt Dateiinhalte zeilenweise über ein spezifizierbares Trennungszeichen zusammen.
- Hinweis: paste wird in Abschnitt 9.4 genau erklärt.
Parameter | Wirkung |
-d TRENNZEICHEN |
Gibt (wie bei cut) das zu verwendende Trennzeichen an. Gibt man kein besonderes Trennzeichen an, wird per Tabulator getrennt. |
[DATEI...] |
Sinnvollerweise wird paste mit mindestens zwei Dateien aufgerufen, die es zusammenzufügen gilt. Eine Datei kann auch die Standardeingabe (»-«) sein. |
Das folgende Beispiel zeigt die Verwendung von paste, um zwei einfache Dateien zusammenzufügen:
$ echo -e "a\nb" > test1 $ echo -e "1\\n2\\n3" > test2 $ cat test1 a b $ cat test2 1 2 3 $ paste test1 test2 a 1 b 2 3 $ paste -d':' test1 test2 a:1 b:2 :3
Listing B.26 paste verwenden
pidof
- Pfad: /bin/pidof
- Nutzen: pidof findet die Prozess-ID zu einem gegebenen Prozessnamen.
- Hinweis: pidof wird in Abschnitt 26.4.3 erwähnt. Im Unterschied zu pgrep findet pidof nur die PID, zu der der angegebene Prozessname exakt passt.
Parameter | Wirkung |
[NAME] |
pidof gibt standardmäßig die PID des als Parameter angegebenen Prozesses zurück. |
-s |
Gibt nur eine einzelne PID zurück (single-shot). |
Das folgende Beispiel findet die PIDs aller offenen bash-Shells:
$ ps aux | grep bash 1000 2341 0.0 0.3 6508 3552 pts/0 Ss 19:14 0:00 bash 1000 6019 1.8 0.3 6504 3776 pts/1 Ss+ 20:03 0:00 bash 1000 6037 1.1 0.3 6504 3780 pts/2 Ss+ 20:03 0:00 bash 1000 6055 1.1 0.3 6504 3776 pts/3 Ss+ 20:03 0:00 bash $ pidof bash 6055 6037 6019 2341 $ pidof -s bash 6055
Listing B.27 pidof verwenden
pwd
- Pfad: /bin/pwd (bzw. Shell-Builtin)
- Nutzen: pwd gibt das aktuelle Arbeitsverzeichnis (engl. working directory) aus.
Das folgende Beispiel zeigt die Verwendung von pwd:
$ pwd /home $ cd jploetner $ pwd /home/jploetner
Listing B.28 pwd verwenden
read
- Pfad: shellintern
- Nutzen: read liest Daten von STDIN oder aus einer Pipe/FIFO und speichert diese Werte in einer Variablen.
- Hinweis: Nicht jede Shell unterstützt read. Nutzen können Sie read beispielsweise in der bash, zsh und pdksh. Auch die unterstützten read-Parameter sind in den verschiedenen Shells jeweils unterschiedlich.
scp
scp ist ein Client der Secure-Shell. Alle wichtigen Optionen und Informationen zu diesem Programm finden Sie in Kapitel 21.
Das folgende Beispiel zeigt die Verwendung von scp, um ein Verzeichnis zu einem entfernten Server zu kopieren:
$ scp -r icmp/ jploetner@ploetner-it.de:~ The authenticity of host 'ploetner-it.de (89.110.147.184)' can't be established. RSA key fingerprint is 7c:5a:49:c9:1d:63:ce:0d:6c:f4:f7:65:37:2d:76:da Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'ploetner-it.de,89.110.147.184' (RSA) to the list of known hosts. Password: [...] bd 100% 12KB 12.0KB/s 00:00 icmpbd_client.cpp 100% 1648 1.6KB/s 00:00 Makefile 100% 424 0.4KB/s 00:00 [...]
Listing B.29 scp verwenden
script
- Pfad: /usr/bin/script
- Nutzen: script erstellt ein Typescript [Ein Typescript ist eine akurate Aufzeichnung einer Session, die Start- und Endzeit, alle Eingaben und Ausgaben und gegebenenfalls sogar Timingdaten, also Verzögerungen bei Tastaturanschlägen etc., enthält.] einer Shell-Session.
- Hinweis: Durch die Environment-Variable $SHELL kann eine Shell spezifiziert werden, die script verwenden soll. Die aktuelle Aufzeichnung wird durch Strg + D beendet.
Parameter | Wirkung |
-a [DATEI] |
Hängt die Ausgabe an das Ende der angegebenen Datei an. |
-t |
Gibt Timingdaten auf stderr aus. Wenn Sie diesen Parameter verwenden, leiten Sie idealerweise stderr in eine Datei um. |
[DATEI] |
Das Typescript der aktuellen Session. Wird keine Datei angegeben, wird die Datei typescript erstellt. |
Das folgende Beispiel zeigt die Verwendung von script, um ein Typescript einer Arbeitssession aufzuzeichnen. Gleichzeitig werden Timingdaten in der Datei timings gespeichert:
$ script -t 2>timings Script wurde gestartet, die Datei ist typescript $ head -n 3 /etc/passwd root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/bin/sh bin:x:2:2:bin:/bin:/bin/sh $ Strg + D Script wurde beendet, die Datei ist typescript
Listing B.30 script verwenden
scriptreplay
- Pfad: /usr/bin/scriptreplay
- Nutzen: scriptreplay gibt ein per script aufgezeichnetes Typescript wieder.
- Hinweis: Die aufgezeichneten Daten werden lediglich wiedergegeben, aber nicht noch einmal ausgeführt. Für eine entsprechende Wiedergabe sind aufgezeichnete Timingdaten erforderlich.
Parameter | Wirkung |
TIMINGS |
Gibt die Datei mit Timinginformationen an, die für die Wiedergabe verwendet werden soll. |
[DATEI] |
Das Typescript der abzuspielenden Session. Wird keine Datei angegeben, wird die Datei typescript wiedergegeben. |
Das folgende Beispiel zeigt die Verwendung von scriptreplay, um ein vorher aufgezeichnetes Typescript wiederzugeben:
$ scriptreplay timings
$ head -n 4 /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
$ exit
$
Listing B.31 scriptreplay verwenden
sed
- Pfad: /bin/sed
- Nutzen: sed ist ein nicht interaktiver Stream-Editor.
- Hinweis: sed wird in Kapitel 8 genau besprochen. Eine Befehlsreferenz finden Sie in Abschnitt 8.2.3, »sed-Befehle«.
seq
- Pfad: /usr/bin/seq
- Nutzen: seq gibt – basierend auf den übergebenen Parametern – eine Zahlenfolge aus.
- Hinweis: Nützlich ist seq vor allem bei for-Schleifen in Shellskripten, wenn man automatisch eine lange Zahlenfolge durchlaufen will (siehe Beispiel aus Abschnitt 11.6.4).
- Aufruf: seq ERSTE_ZAHL [ABSTAND] LETZTE_ZAHL
Parameter | Wirkung |
ERSTE_ZAHL |
die erste Zahl der Folge |
ABSTAND |
Dieser Parameter ist optional: Wird er angegeben, so ist die nächste Zahl der Folge um diesen Abstand größer. |
LETZTE_ZAHL |
Die letzte Zahl der Folge. Bis hierhin wird gezählt. |
Das folgende Beispiel zeigt die Verwendung von seq:
$ seq 1 4 1 2 3 4 $ for i in `seq 1 2 9` ; do echo -n "$i " ; done 1 3 5 7 9
Listing B.32 seq verwenden
shutdown
- Pfad: /sbin/shutdown
- Nutzen: shutdown fährt das System herunter.
- Hinweis: Kann im Normalfall nur von root aufgerufen werden.
Parameter | Wirkung |
-r ZEIT |
Startet nach dem Shutdown neu. Die Angabe von ZEIT ist entweder eine Zeichenkette, die eine Uhrzeit beschreibt, oder now. |
-h |
Wie -r; nur wird das System nicht wieder hochgefahren, sondern angehalten. |
-c |
Stoppt einen bereits eingeleiteten Shutdown. |
-f |
Überspringt einen Dateisystem-Check mit fsck beim nächsten Boot. |
-F |
Erzwingt einen Dateisystem-Check mit fsck beim nächsten Boot. |
... Message |
Als letzter Parameter kann allen anderen Parameterkombinationen noch eine Nachricht übergeben werden, die an alle eingeloggten Benutzer gesendet wird. |
sleep
- Pfad: /bin/sleep
- Nutzen: sleep wartet eine bestimmte Anzahl von Sekunden, bevor es sich beendet.
Parameter | Wirkung |
[Sekunden] |
Gibt die Zeit in Sekunden an, die gewartet werden soll. |
sort
- Pfad: /bin/sort
- Nutzen: sort sortiert die Eingabe.
- Hinweis: Unter BSD und Linux verhält sich sort in der Regel unterschiedlich. Unter Linux wird direkt nach ASCII-Zeichen (inklusive Leerzeichen) sortiert, unter BSD werden Leerzeichen standardmäßig übersprungen, was zu unterschiedlichen Ergebnissen führen kann.
Parameter | Wirkung |
--version |
Gibt die Programmversion aus. |
--help |
Gibt einen Hilfstext aus. |
-b |
Überspringt Leerzeichen am Anfang einer Zeile. |
-d |
Sortiert nur nach Leerzeichen und alphanumerischen Zeichen. |
-g |
Sortierung durch numerischen Wert |
-u |
Gibt nur die erste von mehreren identischen Zeilen aus. |
Das folgende Beispiel zeigt die Verwendung von sort, um bestimmte Dateien nach ihrem Umfang in Zeilen zu sortieren:
$ wc -l anhg_*.tex | sort -b
...
59 anhg_dvd.tex
94 anhg_misc.tex
495 anhg_install.tex
901 anhg_loesungen.tex
1602 anhg_komref.tex
3151 insgesamt
Listing B.33 sort verwenden
split
- Pfad: /usr/bin/split
- Nutzen: split kann große Dateien in kleinere Stücke aufteilen (aufsplitten). Dazu übergibt man dem Programm zum einen die gewünschte Dateigröße und zum anderen die Datenquelle sowie das gewünschte Präfix. Als Ergebnis des Programms erhält man mehrere Dateien mit dem Namen »Präfixaa«, »Präfixab«, »Präfixac«, ... in der angegebenen Größe.
- Hinweis: split kann sowohl existierende Dateien als auch Daten von der Standardeingabe verarbeiten. Nützlich ist dies vor allem, wenn man ein großes Archiv mit tar erstellt, dieses aber schon während der Erstellung in kleinere Teile aufsplitten will (siehe Beispiel). Wie Sie die gesplitteten Dateien dann wieder zusammenfügen, lesen Sie in Abschnitt 9.8.
- Aufruf: split [Optionen] EINGABE PRÄFIX
Parameter | Wirkung |
-b |
Legt die Größe (in Bytes) der einzelnen Dateien fest. Erlaubt sind aber auch Modifier wie »k« für Kilobyte und »m« für Megabyte. Wird dieser Parameter nicht angegeben, werden Dateien mit jeweils 60K erstellt. |
EINGABE |
Als Nächstes gibt man die aufzuteilende Datei an. Möglich ist aber auch das Lesen von der Standardeingabe, indem man »-« als Dateinamen benutzt oder den Parameter gleich ganz weglässt. |
PRÄFIX |
Das Prafix der zu erstellenden Dateinamen. Wird kein Präfix angegeben, wird das Präfix »x« verwendet. |
Das folgende Beispiel zeigt die Verwendung von split, um ein Tar-Archiv gleich bei der Erstellung in mehrere gleiche Teile zu splitten:
$ tar -cz buch.ps | split -b 25m – buch.tar.gz.
$ du -sch buch.*
155M buch.ps
25M buch.tar.gz.aa
25M buch.tar.gz.ab
25M buch.tar.gz.ac
17M buch.tar.gz.ad
Listing B.34 split verwenden
ssh
- Pfad: /usr/bin/ssh
- Nutzen: ssh ist der Client der Secure-Shell.
- Hinweis: Alle wichtigen Optionen und Informationen zu diesem Programm finden Sie in Kapitel 21.
Das folgende Beispiel zeigt die Verwendung von ssh, um sich auf einem entfernten Rechner einzuloggen:
$ ssh jploetner@somehost.xyz Password: [...] Last login: Sun Apr 18 15:24:41 2010 from [...] __ ______ ____ .--.--.--.-----.| |--.| |_ | | | | | -__|| _ || -- |_| |_ |________|_____||_____||______|______| Welcome Back. jploetner@web01:~$ ls ...
Listing B.35 ssh verwenden
sync
- Pfad: /bin/sync
- Nutzen: sync schreibt Daten, die noch nicht auf ein Medium geschrieben wurden, auf selbiges und erwirkt dadurch eine Synchronisation zwischen Speicher und Speichermedium.
tail
- Pfad: /bin/tail
- Nutzen: tail zeigt die letzten Zeilen einer Datei an.
- Hinweis: tail –123 und tail -n 123 haben dieselbe Wirkung.
Parameter | Wirkung |
-[n] |
Gibt die letzten [n] Zeilen aus. |
-n [n] |
Gibt ebenfalls die letzten [n] Zeilen aus. |
-f |
Wartet periodisch darauf, dass neue Daten in den Input-Stream geschrieben werden, die tail dann ausgibt. Dieser Parameter eignet sich besonders beim Monitoring von Logfiles in einer Konsole, z. B. mit tail -f /var/log/messages. |
Das folgende Beispiel zeigt die Verwendung von tail, um sich die letzten drei Zeilen der Datei /etc/passwd ausgeben zu lassen:
$ tail -n 3 /etc/passwd
jploetner:x:1000:1000:Johannes Plötner,,,:/home/jploetner:/bin/bash
couchdb:x:113:116:CouchDB Administrator,,,:/var/lib/couchdb:/bin/bash
kernoops:x:114:65534:Kernel Oops Tracking Daemon,,,:/:/bin/false
$
Listing B.36 tail verwenden
tar
- Pfad: /bin/tar
- Nutzen: tar erzeugt (komprimierte) Archive von Dateien.
- Hinweis: Standardmäßig verwendet tar das Tape-Device. Falls man direkt auf Dateien zugreifen möchte, sollte man durch den Parameter -f eine Datei angeben. Unter der folgenden Tabelle finden Sie ein Beispiel, das den Nutzen dieses Parameters verdeutlicht.
Parameter | Wirkung |
-c |
Erzeugt ein neues Archiv. |
-r |
Fügt die angegebenen Dateien zu einem bestehenden Archiv hinzu. |
-t |
Zeigt den Inhalt eines Archivs an. |
-u |
Alias für -r |
-x |
Entpackt ein Archiv. |
-C |
Setzt das Arbeitsverzeichnis. Dadurch werden die Dateien des Archivs in das entsprechende Verzeichnis entpackt bzw. aus diesem Verzeichnis archiviert. |
-f [a] |
Verweist auf die Datei [a]. Wird dieser Parameter nicht verwendet, so benutzt tar das Tape-Device, also unter OpenBSD z. B. /dev/rst0. |
-H |
Folgt symbolischen Links, die in der Kommandozeile übergeben wurden. |
-h |
Folgt allen symbolischen Links, die in den Dateien vorgefunden werden, die archiviert werden sollen. |
-O |
Erzeugt Old-style-Archive. Diese Archive sind nicht POSIX- konform. |
-P |
Lässt den führenden Slash von Pfadnamen stehen. |
-v |
Verbose-Modus: Es werden viele Details der Arbeit von tar ausgegeben. Entpackt man beispielsweise ein Archiv, so werden alle Dateinamen auf STDOUT geschrieben. |
-X |
Überspringt Mountpoints. |
-Z |
(De)komprimiert Archive mittels compress (Endung .tar.Z). |
-z |
(De)komprimiert Archive mittels gzip (Endung .tar.gz, auch .tgz). |
-j |
(De)komprimiert Archive mittels bzip2 (Endung .tar.bz2). |
// Fehler: tar zeigt nicht den Inhalt der Archivdatei // an, sondern will auf das Tape-Device zugreifen. $ tar -t woodproject.tgz tar: Failed open to read on /dev/rst0: Permission denied // Folglich gibt man mit dem Parameter -f die // gewünschte Datei explizit an, doch... $ tar -tf woodproject.tgz tar: Cannot identify format. Searching... tar: Cpio file name length 5091 is out of range tar: Invalid header, starting valid header search. tar: Cpio file name length 54861 is out of range tar: Cpio file name length 63245 is out of range tar: Cpio file name length 44998 is out of range ... ... tar: Cpio file name length 3874 is out of range tar: Cpio file name length 18878 is out of range tar: Cpio file name length 13728 is out of range tar: Cpio file name length 39780 is out of range tar: Cpio file name length 39233 is out of range tar: Cpio file name length 42478 is out of range tar: Cpio file name length 51708 is out of range tar: Cpio file name length 34737 is out of range tar: End of archive volume 1 reached // ... da tar-Archive typischerweise durch das gzip- // Programm komprimiert werden, muss noch die Art der // Komprimierung an tar übergeben werden: in diesem // Fall der Parameter -z. $ tar -tzf woodproject.tgz 1.jpg 10.jpg 11.jpg 12.jpg 13.jpg 2.jpg 3.jpg 4.jpg 5.jpg 6.jpg 7.jpg ...
Listing B.37 tar verwenden
touch
- Pfad: /usr/bin/touch
- Nutzen: touch ändert die Zugriffs- und Modifikationszeit von Dateien.
- Hinweis: Wird dem Befehl touch ein nicht existierender Dateiname übergeben, so wird dieser erstellt. touch wurde mit AT&T Unix 7 eingeführt.
Parameter | Wirkung |
-a |
Ändert die Zugriffszeit (Access Time) der Datei. |
-c |
Für den Fall, dass eine Datei nicht existiert, wird sie auch nicht erstellt. |
-f |
Versucht, ein Update zu erzwingen, falls die Zugriffsrechte das Update nicht zulassen. |
-m |
Ändert die Modifikationszeit (modification time) der Datei. |
-r [Datei] |
Passt die Zugriffszeit der Zeit der übergebenen Datei an. |
-t |
Setzt die Zugriffs- und Modifikationszeit entsprechend einer Angabe der Form [[CC]YY]MMDDhhmm[.SS]. |
$ ls -al test.txt $ touch test.txt $ ls -al test.txt -rw-r--r-- 1 jploetner jploetner 0 2010-04-18 15:55 test.txt
Listing B.38 touch verwenden
tr
- Pfad: /bin/tr
- Nutzen: tr vertauscht Zeichen in Daten-Streams.
- Hinweis(e): Siehe Abschnitt 9.4 für eine ausführliche Erläuterung von tr.
Dem Kommando tr werden zwei Parameter übergeben: zum einen eine Liste der zu ersetzenden Zeichen und zum anderen eine Liste der Zeichen, die stattdessen eingesetzt werden sollen.
$ echo 'abca' abca $ echo 'abca' | tr [ab] [qt] qtcq $ echo 'qtcq' | tr [qtc] [QTC] QTCQ
Listing B.39 tr verwenden
true
- Pfad: /bin/true
- Nutzen: true tut nichts und beendet mit dem Returnwert »0«. Siehe auch false.
uname
- Pfad: /bin/uname
- Nutzen: uname gibt Informationen zum Betriebssystem aus.
- Hinweis: Ohne Angabe eines Parameters wird das verwendete Betriebssystem angezeigt.
Parameter | Wirkung |
-a |
Kombination der Optionen -mnrsv |
-m |
Architektur des Systems |
-n |
Hostname |
-p |
Prozessorinformationen |
-r |
Release des Betriebssystems |
-s |
Name des Betriebssystems |
-v |
Version des Betriebssystems (unter BSD der Kernel-Name mit Nummer der Übersetzung, z. B. EYGO#0) |
$ uname -a
Linux laptop 2.6.31-20-generic #58-Ubuntu SMP Fri Mar 12 05:23:09
UTC 2010 i686 GNU/Linux
Listing B.40 uname verwenden
uniq
- Pfad: /usr/bin/uniq oder /bin/uniq
- Nutzen: uniq filtert redundante Zeilen aus einer Eingabe.
- Hinweis(e): Da uniq redundante Zeilen nur erkennt, wenn diese direkt hintereinander stehen, muss eine Eingabe eventuell zunächst mit sort sortiert werden. Des Weiteren werden unter BSD nur die Nicht-GNU-Optionen (mit einem Strich) unterstützt.
Parameter | Wirkung |
--version |
Gibt die Programmversion aus. |
--help |
Gibt einen Hilfstext aus. |
-c, --count |
Zählt die Vorkommen einer Zeile und gibt diese aus. |
-d, --repeated |
Gibt nur mehrfach vorhandene Zeilen aus (eine Ausgabe pro Redundanzzeile). |
-D, --all-repeated |
Gibt alle nur mehrfach vorhandenen Zeilen aus. |
-f N, -N, --skip-fields=N |
Überspringt die ersten N Felder. |
-i, --ignore-case |
Differenziert nicht zwischen Groß-/Kleinschreibung. |
-s N, +N, --skip-chars=N |
Die ersten N Zeichen werden nicht in den Vergleich mit einbezogen. |
-u, --uniq |
Gibt nur die Zeilen aus, die nicht mehrfach vorhanden sind. |
-w, --check-chars=N |
Vergleicht maximal N Zeichen pro Zeile. |
$ cut -f 5 -d ' ' /var/log/syslog | sort | uniq -c
2 acpid:
2 anacron[1243]:
4 anacron[1258]:
2 anacron[1536]:
[...]
Listing B.41 uniq verwenden
uptime
- Pfad: /usr/bin/uptime
- Nutzen: uptime gibt die Uptime des Systems aus (wie lange das System schon läuft), die Anzahl der angemeldeten Benutzer sowie die aktuelle Last.
$ uptime
16:22:59 up 131 days, 20:05, 1 user, load average: 0.00, 0.00, 0.00
Listing B.42 uptime verwenden
vi
- Pfad: /usr/bin/vi
- Nutzen: vi ist ein beliebter Texteditor.
- Hinweis(e): Der vi wird ausführlich in Abschnitt 10.2 beschrieben.
w
- Pfad: /usr/bin/w
- Nutzen: w gibt Informationen über die aktuell angemeldeten Benutzer aus.
Parameter | Wirkung |
-a |
Übersetzt Netzwerkadressen in Hostnamen. |
-h |
Gibt nicht die Kopfzeile (Ausgabe von uname) aus. |
-i |
Die Ausgabe wird nach der Idle Time, also der Inaktivitätszeit der Benutzer, sortiert. |
Das folgende Beispiel zeigt die Verwendung von w, um die aktuell angemeldeten Benutzer auszugeben:
$ w
20:46:49 up 1:04, 2 users, load average: 0,00, 0,00, 0,00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
jploetne tty7 :0 19:43 ? 2:14 0.16s gnome-session
jploetne pts/0 :0.0 20:18 0.00s 0.30s 0.00s w
Listing B.43 w verwenden
wc
- Pfad: /usr/bin/c
- Nutzen: wc gibt Informationen über einen Dateiinhalt aus.
Parameter | Wirkung |
-c |
Zählt Bytes in einer Datei. |
-l |
Zählt Zeilen in einer Datei. |
-m |
Zählt Zeichen in jeder Datei. |
-w |
Zählt Wörter in einer Datei. |
Das folgende Beispiel zeigt die Verwendung von wc, um die Dateien in einem Verzeichnis zu zählen:
$ ls | wc -l
123
Listing B.44 wc verwenden
whatis
Siehe man.
who
- Pfad: /usr/bin/who
- Nutzen: who gibt Informationen über die aktuell angemeldeten Benutzer aus.
Parameter | Wirkung |
-H |
Gibt Überschriften für die tabellarische Ausgabe aus. |
-m |
Gibt nur Informationen über das aktuelle Terminal aus. Diese Ausgabe wird auch durch den Befehl who am i erreicht. |
-q |
kurzer Ausgabemodus |
-T |
Gibt zusätzliche Informationen darüber aus, ob ein Terminal schreibbar (+) ist oder nicht (-). |
-u |
Gibt für jeden Nutzer die Inaktivitätszeit an. |
Das folgende Beispiel zeigt die Verwendung von who, um die aktuell angemeldeten Benutzer auszugeben:
$ who
jploetner tty7 2010-04-18 19:43 (:0)
jploetner pts/0 2010-04-18 20:18 (:0.0)
Listing B.45 w verwenden
whoami
- Pfad: /usr/bin/whoami
- Nutzen: whoami zeigt den effektiven Benutzer an, unter dem man derzeit arbeitet.
Das folgende Beispiel zeigt die Verwendung von whoami:
# whoami
root
Listing B.46 w verwenden
yes
- Pfad: /usr/bin/yes
- Nutzen: yes bestätigt Konsolenfragen periodisch mit einem »y« (yes).
- Hinweis: Wird ein Zeichen als Parameter übergeben, so wird anstelle des »y« das jeweilige Zeichen angegeben.