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:

 

compress filename

uncompress 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.