Unix-Befehle
>>> cat
cat Filename
gibt den Inhalt der Datei "Filename" am Bildschirm aus. Die Ausgabe kann auch in eine andere Datei umgeleitet werden:
cat file1 > file2
schreibt den Inhalt der Datei file1 in die Datei file2.
cat file1 file2 file3 > file4
hängt die ersten drei Dateien aneinander an und leitet die resultierende Ausgabe in die Datei file4 um.
Aber Vorsicht!
cat file1 file2 > file1
zerstört die Datei file1, da sie zuerst für den Schreibvorgang geöffnet und damit auf Länge Null reduziert wird, bevor das cat-Kommando ausgeführt wird.
>>> cd
cd dirname
ändert das aktuelle Verzeichnis. Es wird dann dirname. Bei den Pfadnamen ist zwischen absoluten und relativen zu unterscheiden: Pfadnamen, die mit einem Slash "/" beginnen, sind immer absolut.
cd .. parent directory
cd ~ home directory
cd - previous directory
>>> chmod
ändert die Zugriffsberechtigungen einer Datei oder eines Verzeichnisses.
Beispiel:
chmod o+r bla
>>> compress, uncompress und zcat
Diese Kommandos dienen dazu, Dateien zu komprimieren und wieder aus dem komprimierten Zustand zu restaurieren. Sie werden folgendermassen verwendet:
c
ompress filenameuncompress filename.Z
zcat filename.Z
compress reduziert die Grösse der Datei filename und speichert das komprimierte Resultat in der Datei filename.Z ab, sofern dies möglich ist. uncompress stellt die komprimierte Datei in ihrer ursprünglichen Form wieder her. Die komprimierte Datei wird dabei gelöscht. zcat ist dasselbe wie uncompress mit dem Unterschied, dass das komprimierte File erhalten bleibt. Die Ausgabe erfolgt bei zcat in stdout. Um ein komprimiertes Archiv Ihres Unterverzeichnisses C anzulegen, können Sie folgende Befehlssequenz benutzen:
tar cvf - C | compress > C.tar.Z
Dadurch erhalten Sie eine Datei C.tar.Z. Das Minuszeichen im tar-Kommando veranlasst tar dazu, die Ausgabe nach stdout zu schreiben. Stdout wird dann mit Hilfe der Pipe "|" als stdin in das Kommando compress umgeleitet. Da compress die Eingabe aus stdin erhält, kann es keinen Namen für die .Z-Datei finden. Daher erfolgt am Ende des Kommandos eine explizite Umleitung in die gewünschte Datei. Um den Inhalt dieses Archives wiederherzustellen, verwendet man die Kommandozeile
zcat C.tar.Z | tar xvf -
Das Minuszeichen informiert tar, dass die Eingabe über stdin erfolgt
(über die Pipe).
>>> cp
cp kopiert Dateien und Verzeichnisse. Beispiele:
cp Quelldatei Zieldatei
cp Dateiliste Verzeichnis
>>> echo
kopiert seine Argumente nach stdout. echo wird oft verwendet, um den Wert von Shell-Variablen auszugeben (zur Erinnerung: Shell-Variablen werden mit $ referenziert).
Beispiel:
$ echo a
a
$ a=b
$ echo $a
b
$
>>> find
find Verzeichnis-Liste Ausdruck
sucht Dateien, die sich in einem Verzeichnis der Verzeichnis-Liste befinden und die Anforderungen von Ausdruck erfüllen. Ausdruck kann dabei auch Kommandos enthalten, die auf gefundene Dateien angewendet werden sollen. find hat eine ziemlich komplexe Syntax, so dass wir hier nicht näher darauf eingehen. Zudem kann es ein sehr zeitaufwendiges Kommando sein. Aus diesem Grund sollte man NIEMALS einen find von einem Verzeichnis aus starten, das weit oben in der Verzeichnishierarchie steht wie etwa / oder /home. In solch einem Fall würde sich find durch sämtliche Verzeichnisse unterhalb dieses weit oben angesiedelten Verzeichnisses durcharbeiten, um alle Dateien in allen Unterverzeichnissen auf die Kriterien von Ausdruck hin zu überprüfen. Je nach Grösse und Organisation der betroffenen Filesysteme kann ein solcher find mehrere Stunden dauern und die entsprechenden Maschinen unbenutzbar machen.
>>> grep
grep Muster Dateiliste
sucht nach Muster in den Dateien der Dateiliste, welche auch Verzeichnisse enthalten kann. In letzterem Fall werden sämtliche Dateien der entsprechenden Verzeichnisse durchsucht. Angenommen, Sie haben eine Datei mit Telefonnummern namens telnum und möchten die Telefonnummer eines "Peter" heraussuchen. Sie erhalten diese mit dem Kommando
grep Peter telnum
Mit Hilfe der Option -i können Sie die Unterscheidung
von Gross- und Kleinbuchstaben abschalten.
>>> kill
kill PID-Liste
beendet die Prozesse, die durch die PID-Liste gekennzeichnet sind, wobei PID für Prozess-Identifikationsnummer steht. Die PID wird durch Ausführen des ps Kommandos erhalten. Sie können nur Ihre eigenen Prozesse killen. Falls das kill Kommendo dazu aber nicht genügt, versuchen Sie "kill -9" anstelle von "kill".
>>> ln
ln file link
erzeugt einen sog. harten Verweis (Link) zu einer existierenden Datei, d.h. diese Datei kann jetzt mit zwei Namen aufgerufen werden: mit dem ursprünglichen Namen und mit dem soeben geschaffenen Verweisnamen. Beide haben denselben Status. Wird einer der beiden Namen gelöscht, so ist die Datei noch immer unter dem anderen Namen zugänglich. Auf neueren Systemen (z.B. AIX) können auch sog. symbolische Verweise mit Hilfe der -s Option erzeugt werden. Dieser Verweis hat nicht denselben Status wie der ursprüngliche Dateiname. Der symbolische Verweis ist eine eigene Datei, die den Namen der Datei enthält, auf die der Verweis zeigt. Wird daher das ursprüngliche File gelöscht, so zeigt der symbolische Verweis auf ein nicht mehr existierendes File und auf die Daten kann nicht mehr zugegriffen werden. Im Gegensatz zum harten Verweis können symbolische Verweise jedoch auch auf ein Verzeichnis erfolgen.
>>> lpr und andere Druckerkommandos
Die Kommandos lpr, lpq und lprm gelten unter BSD, die entsprechenden Kommandos unter System V sind lp, lpstat und cancel.
lpr -Ppname file-liste
lpr schickt die Dateien der file-liste auf den Drucker, der pname heisst. Informieren Sie sich über die Druckernamen Ihrer Installation. RZU-Namen für Drucker sind "ipubprt" für einen Zeilendrucker und "irchel" für einen PostScript-fähigen Laserdrucker. Wird die Umgebungsvariable PRINTER auf den Namen eines Druckers gesetzt (siehe Einführung unter /rzu/share/doc/manuals/unix/dintro.ps), so wird dieses der voreingestellte Drucker. Verwenden Sie nun lpr ohne Angabe eines Druckers, so werden die zu druckenden Dateien automatisch an den Drucker geschickt, der in PRINTER gesetzt wurde. Eine PostScript-Datei darf NIE zu einem nicht PostScript-fähigen Drucker (z.B. zu einem Zeilendrucker) geschickt werden. Das Resultat wäre nämlich der Ausdruck aller Post-Script-Kommandos, nicht aber der gewünschte Text oder die erwünschte Graphik. Geschieht dies versehentlich, so sollten Sie unbedingt diesen Druckjob mit Hilfe der Kommandos lpq und lprm aus der Druckerschlange nehmen (siehe unten), da sonst eine Menge Papier verschwendet wird. Die Jobs in der Druckerschlange eines bestimmten Druckers können mit
lpq -Ppname
aufgelistet werden. Dabei wird auch die Jobnummer jedes Druckjobs angezeigt. Wollen Sie nun einen Job aus der Druckerschlange entfernen, so verwenden Sie das Kommando
lprm -Ppname job-nummer
wobei job-nummer die Jobnummer Ihres Druckauftrages laut lpq ist. Selbstverständlich können Sie nur Ihre eigenen Druckaufträge löschen.
>>> ls
ls file-liste
gibt Information über die Dateien in file-liste aus. Dabei darf file-liste auch Verzeichnisse enthalten, so dass alle Dateien dieser Verzeichnisse aufgeführt werden. Wird die file-liste weggelassen, so erscheint eine Liste der Dateien im aktuellen Verzeichnis. Folgende Optionen für ls sind oft nützlich:
-a zeige auch Dateien, die mit einem Punkt beginnen
-l zeige ausführliche Informationen über die Dateien einschliesslich
der Zugriffsberechtigungen
-F zeige einen "/" nach jedem Verzeichnis, einen "*" nach jeder ausführbaren Datei und (auf Systemen, die das unterstützen) ein "@" nach symbolischen Verweisen.
>>> man
man Kommando
gibt die Manualseiten für Kommando aus. Die -k Option gibt alle Überschriften der Manuale aus, in denen der Suchbegriff Kommando gefunden wurde. Nähere Information über Hilfestellungen in Unix ist in der Einführung zu finden
>>> more
more Datei-Liste
gibt die Dateien in der Liste Bildschirm für Bildschirm aus.
Sie können weiterblättern, indem Sie die Leertaste drücken.
>>> nice
erniedrigt die Priorität eines Prozesses, um die Maschine für andere Aufgaben nicht zu sehr zu blockieren.
>>> ps
informiert über den Status aktiver Prozesse. Ohne Angabe von Optionen erhält man lediglich Information über die eigenen Prozesse, die vom selben Terminal wie das ps Kommando gestartet wurden. In einem Window-System stellt aber jedes Fenster ein eigenes Terminal dar.
Optionen und Ausgabe von ps unterscheiden sich auf System-V-Maschinen (AIX) deutlich vom BSD. Die zu "-aux" analogen Optionen sind "-ef", im AIX also
ps -ef
Die Option -u gefolgt von einem Benutzernamen informiert über alle Prozesse dieses Benutzers. Für weitere Optionen wende man sich an das Manual.
>>> pwd
Der Befehl pwd (print working directory) zeigt das aktülle Directory an. Das Wechseln des Directory erfolgt mit dem Kommando "cd".
Beispiel:
$ pwd
/home/müller
$ cd bin
$ pwd
/home/müller/bin
>>> rm
rm Datei-Liste
löscht die Dateien in der Liste. Es gibt keine Möglichkeit, den Effekt dieses Befehls ungeschehen zu machen! Die Option -i bewirkt, dass bei jeder Datei noch einmal nachgefragt wird, ob sie wirklich gelöscht werden soll.
>>> rmdir
rmdir Verzeichnis-Liste
löscht die leeren Verzeichnisse in der Liste. Verzeichnisse, die noch Dateien enthalten, werden nicht gelöscht.
>>> tar
tar Key Optionen Datei-Liste
erzeugt eine Archiv-Datei oder restauriert Dateien einer Archiv-Datei. Der Key entscheidet, ob ein Archiv angelegt oder von einem Archiv gelesen werden soll:
c erzeuge eine Archiv-Datei
x extrahiere Dateien aus einer Archiv-Datei
t liste den Inhalt der Archiv-Datei
Die wichtigsten Optionen sind:
v geschwätzig; listet die bearbeiteten Dateien auf
f gibt an, dass das nächste Argument der Name einer Datei ist, von der gelesen oder auf die geschrieben werden soll (je nachdem, was zum Key passt); wird anstelle eines Dateinamens ein Minuszeichen angegeben, so wird stdin bzw. stdout verwendet.
h folge bei der Erzeugung einer Archivdatei auch symbolischen Verweisen und füge diese Dateien mit in das Archiv ein.
Um ein Archiv Ihres C-Unterverzeichnisses in Ihrem Homedirectory zu erzeugen, würden Sie das folgende Kommando verwenden:
tar -cvf C.tar C
Dies liefert eine Archivdatei namens C.tar. Mit Hilfe des Kommandos
tar -xvf C.tar
wird der Inhalt des Archives wieder in seiner ursprünglichen Form restauriert.
>>> tee
tee Datei-Liste
kopiert stdin nach stdout sowie auf die angegebenen Dateien.
Um an Dateien anzuhängen, verwende man die -a Option.
a.out | tee outfile
gibt die Resultate der ausführbaren Datei a.out am Bildschirm aus,
schreibt sie aber gleichzeitig in die Datei outfile.
weitere Unix-Befehle
>>> awk
awk ist ein Programm, um Muster zu erkennen und zu verarbeiten. Es ist mächtiger als sed, aber nicht so vielseitig wie perl. awk gehört zur Standardausrüstung eines Unix.
>>> cc
ist der C-Compiler Ihres Systems. Die einfachste Art der Benutzung ist:
cc file.c
Damit wird die Datei file.c compiliert und eine ausführbare Datei namens a.out erzeugt.
>>> date
zeigt Datum und Uhrzeit an.
>>> diff
diff file1 file2
zeigt die Differenzen zwischen den Dateien file1 und file2 an.
>>> file
klassifiziert die Dateien in der Dateiliste nach ihrem Inhalt. Mögliche Attribute sind z.B. ascii text, executable, C source code u.ä.
>>> finger
finger name@host
finger liefert Informationen über Benutzer, z.B. ob diese ihre Mail gelesen haben, welche Telefonnummer sie haben etc. Wird nur ein Loginname angegeben, sieht finger auf der lokalen Maschine (manchmal auch auf dem lokalen Netz) nach. Wird nur host angegeben, so wird Information über alle Benutzer ausgegeben, die derzeit an host eingeloggt sind. host kann dabei ein beliebiger Rechner am Internet sein. Mit der Option -l erhält man ausführlichere Information. Einige Systeme haben diesen nützlichen Service aus Sicherheitsgründen abgestellt.
>>> fquota
weist die Disk-Quote eines Benutzers aus. Aufruf:
fquota -v
>>> head
head -n filename
gibt die ersten n Zeilen der Datei filename auf dem Bildschirm aus. Die Voreinstellung für n ist 10.
>>> make
ist ein nützliches Werkzeug, um den Compilationsprozess bequemer zu gestalten. Es ermöglicht, dass automatisch nur immer diejenigen Dateien neu compiliert werden, die sich seit der letzten Compilation geändert haben, sowie die Dateien, die von geänderten Dateien abhängen. Das Kommando make verarbeitet die Datei Makefile oder auch makefile, die Anweisungen für die Compilation enthalten, z.B. die Abhängigkeiten von Dateien. Wegen der genauen Syntax und einer ausführlichen Beschreibung wende man sich an die Manuale oder an ein Buch über make.
Für die GNU-Version von make gibt es eine sehr gute Dokumentation (info-Eintrag im emacs), die auch als Einführung in andere make-Versionen dienen kann.
>>> mkdir
mkdir Verzeichnis-Liste
erzeugt die in der Liste angegebenen Verzeichnisse.
>>> mv
mv vorhandene_Datei neue_Datei
benennt eine Datei um.
>>> sed
ist ein nicht-interaktiver Editor. Genaue Beschreibung in den Manualseiten.
>>> sort
sortiert Dateien in ASCII-Seqünz oder anderen Ordnungen, die durch Optionen ausgewählt werden. Lexikalische Ordnung wird z.B. durch die Option -d erhalten. Es kann ebenso ausgewählt werden, nach welchem Eintrag in jeder Zeile sortiert werden soll. Siehe die
Manuale.
>>> stty
weist die aktüllen Terminal-Charakteristiken aus. Aufruf mit:
stty -a
>>> tail
tail Dateiname
gibt die letzten Zeilen der Datei Dateiname aus.
>>> talk
talk loginname@hostname
bittet die Benutzerin loginname am Rechner hostname, mit Ihnen ein "Gespräch" über das Netz zu beginnen. Ist die Benutzerin auf derselben Maschine eingeloggt wie Sie, so genügt die Angabe von loginname in der Kommandozeile. Ein Gespräch über talk wird mit C-c beendet. Zwischen verschiedenen Architekturen ist es oft nicht möglich, talk zu verwenden. Mit Hilfe des Kommandos mesg kann ein Benutzer vermeiden, dass er durch talk-Anfragen gestört wird.
Der Initiator des talk erhält dann die Meldung "Your party is refusing messages."
>>> uptime
gibt den Status Ihrer Maschine aus: wie lange sie läuft, wie viele Benutzer eingeloggt sind und wie stark die Maschine ausgelastet ist.
>>> wc
wc Datei-Liste
zählt Zeilen, Wörter und Buchstaben der Dateien in der Liste und gibt das Resultat aus. Will man auswählen, was gezählt werden soll, so geschieht dies mit den Optionen -l (Zeilen),-w (Wörter) und -c (Buchstaben). Wird keine Option angegeben, so wird alles gezählt.
>>> which
which Dateiname
zeigt den absoluten Pfadnamen der Datei an. which sucht aber nur in den Verzeichnissen nach der Datei, die in der Variable PATH angegeben sind.
>>> who
zeigt an, welche Benutzer an Ihrer Maschine eingeloggt sind.