UNIX-Befehle sind kleine Kommandozeilenprogramme und laufen somit in einer Shell im Textmodus ab. Sie eignen sich hervorragend zum Automatisieren von Arbeitsabläufen, indem man diese aus einem Shell-Script heraus aufruft.

Ausführliche Beschreibungen zu den Programmen findet man in der Regel in den jeweiligen ManPages und bei den GNU-Varianten in den InfoPages. Hilfe und ausführliche Beschreibung aller Optionen gibt es also, z.B: für den Befehl ls, mit  man ls  oder mit  info ls  oder mit  ls --help 

In eine Textkonsole kommt man nach einer Linux Installation durch :

Hier eine kleine Liste gebräuchlicher UNIX-Kommandos und deren Handhabung. Weitere Kommandos, die der Systembetreuer verwenden wird, sind in Anleitung/Admin beschrieben.

Tools, zu denen mehr als 1-2 Zeilen zu schreiben sind, gehören auf eine eigene, gleichnamige Seite!

Allgemeine Form

Ein einfaches Kommando hat die Form:

kommandoname [argumente]

Angaben in [ ] sind optional, d.h. sie sind nicht für jedes Kommando zwingend erforderlich, oft aber hilfreich, um ein bestimmtes Verhalten zu erreichen.

Man kann zwei Arten von Kommandos unterscheiden:

Beispiele gebräuchlicher Programme

pwd : print working directory : Zeige Arbeitsverzeichnis

Zeigt Ihnen den Namen des Verzeichnisses an, in dem man sich gerade befindet:

pwd

ergibt

/home/benutzername

ls : List : Zeige Inhaltsverzeichnis

Gibt eine Liste von Dateien und Unterverzeichnissen eines Verzeichnisses aus:

ls -l /home/
drwxr-xr-x    9 root     root         4096 Jan 18 21:53 .
drwxr-xr-x   17 root     root         4096 Jan 24 20:19 ..
drwxr-xr-x   24 benutzer users        4096 Jan 10 18:16 MusikBox
drwx------   68 benutzer users        4096 Jan 24 22:19 benutzer
drwxrwx---    2 benutzer users        4096 Dez 22 14:44 shared
drwxr-xr-x    6 benutzer users        4096 Nov 27 00:30 sonstiges

das l sorgt hierbei für die Darstellung als eine Zeile pro Datei oder Verzeichnis mit den oben zu sehenden Angaben zu Benutzer, den Zugriffsrechten etc.

Weitere Infos gibts unter ls sowie in der ManPage.

cp : Copy : Kopiert eine oder mehrere Dateien

Kopiert eine Datei an einen anderen Ort oder in einen neuen Dateinamen.

cp brief brief.txt

erzeugt ein Kopie der Datei brief als brief.txt

cp index.htm webseite/index.html

erzeugt eine Kopie von index.htm mit Namen index.html im Unterverzeichnis webseite.

cp -a mystuff oldstuff.txt /save

Wenn save ein Unterverzeichnis ist, dann wird mystuff und oldstuff.txt dorthin kopiert.

rm : remove : Löscht Dateien oder Inhaltsverzeichnisse

Löscht Dateien, zusammen mit der Option -r (rekursiv) werden auch Verzeichnisse mit allen darin enthaltenen Dateien und Unterverzeichnissen gelöscht.

Vor dem endgültigen Löschen erfolgt keine weitere Rückfrage, und die Dateien werden wirklich gelöscht und finden sich anschließend nicht in irgendeinem Papierkorb wieder.

rm brief.txt

löscht die Datei brief.txt.

rm -r Eigene\ Dateien

löscht das Verzeichnis Eigene Dateien mit allen enthaltenen Dateien und Unterverzeichnissen.

Um ein Verzeichniss mit einem Leerzeichen zu löschen, muss dieses maskiert werden.

rm -f *

löscht schreibgeschützte Dateien ohne vorher nachzufragen. Sehr wirkungsvoll in Verbindung mit -r

rm -rf /

/!\ Sollten Sie diesen Befehl ausführen, evtl. auch noch als Superuser root, so werden alle Ihre Dateien und Verzeichnisse auf der Platte gelöscht.

mv : Move : Dateien Verschieben

Verschiebt eine Datei an einen anderen Ort oder gibt einer Datei (durch umbenennen ;-) ) einen anderen Namen.

mv brief brief.txt

benennt brief in brief.txt um

mv index.html ./webseite/index.html

verschiebt die Datei index.html in das Unterverzeichnis webseite

mv /home/benutzer/Desktop/test ~

verschiebt das Verzeichnis test von Ihrem Desktop in Ihr home-Verzeichnis.

mv /home/benutzer/Desktop/test ..

verschiebt das Verzeichnis test von Ihrem Desktop ein Verzeichnis höher

cd ; mv docu /save ; ln -s /save/docu docu

Voraussetzung: /save ist die zweite Festplatte bzw. Die Datenpartition auf ihr, und ist durch fstab eingebundenm und der Benutzer hat das Recht dort zu schreiben. Dann benutze ich diese Zeile, um mein Unterverzeichnisse 'docu' auf die zweite Festplatte zu verschieben um Platz auf der ersten Festplatte zu schaffen. Wegen des Link-Befehls 'ln -s /save/docu docu' werden die daten so weiterbenutzt, als seien sie noch auf ihrem Ursprungsort.

Hinweis:  mv  geht viel schneller, wenn die Quelle und das Ziel auf der gleichen Festplatte in der gleichen Partition sind. Dann werden nur die Inhaltsverzeichniseinträge umgehängt.

mkdir : Make Directory : Erzeuge ein Verzeichnis

Erstellt ein neues Verzeichnis.

mkdir /home/benutzer/Desktop/test

erstellt auf Ihrem Desktop ein neues Verzeichnis mit dem Namen test. Mit der Option -p werden alle nicht vorhandenen Verzeichnisse miterstellt.

mkdir -p /home/benutzer/Desktop/test/test1/test2

erzeugt die Verzeichnisse test1 und test1/test2 im Verzeichnis test auf Ihrem Desktop.

rmdir : remove Directory : Lösche ein leeres Verzeichnis

Löscht ein leeres Verzeichnis.

rmdir /home/benutzer/Desktop/test

Löscht das Verzeichnis /home/benutzer/Desktop/test, sofern es leer ist. Ansonsten erhalten Sie eine Fehlermeldung.

Um Verzeichnisse zu löschen, die noch Dateien enthalten, sehen Sie bitte unter rm -r nach.

grep : global regular expression print : Suche nach Mustern in Dateien

["get regular Expression"?]

Das Kommando "grep" leitet sich ab aus dem "global" Befehl des Editors "ex" bzw "vi". "Grep" steht für "global regular expression print", dh "suche global (in allen Zeilen des Puffers) nach den Zeilen, in denen das Muster (regular expression) vorkommt, und gebe diese dann aus (print)". Kuerzer gesagt: "Gebe alle Zeilen aus, die das gegebene Muster enthalten."

grep findet eine spezifizierte Zeichenfolge in Dateien und gibt die gefundenen Zeilen am Bildschirm aus. Wenn Sie nach längeren Ausdrücken mit Leerstellen und Sonderzeichen suchen, geben Sie diese einfach in Hochkommata an:

grep 'Sehr geehrter Herr' /home/$HOME*

Dieser Befehl sucht in allen Dateien, die sich in Ihrem Home-Verzeichnis befinden, nach der Zeichenkette "Sehr geehrter Herr".

locate

Der Befehl "locate" listet die Dateien der locatedb auf, die einem Muster entsprechen. Die locatedb wird mit updatedb erzeugt und aktualisiert. /!\ locate ist kein Unix-Befehl, es ist standardmäßig nur bei GNU vorhanden.

locate awk

listet alle Dateien/Pfade auf in denen der String "awk" vorkommt.

locate -i awk

listet alle Dateien/Pfade auf in denen der String "awk" vorkommt, wobei die Suche allerdings ohne Unterscheidung von Groß- und Kleinschreibung durchgeführt wird.

which : Zeigt an, woher das Programm kommt, das durch einen Befehl ausgeführt wird

Sucht in den Verzeichnissen, die in der Variablen PATH stehen, nach dem angegebenen Kommando oder Alias und zeigt den kompletten Pfad an. Nützlich, wenn man Pfadangaben für ein Script sucht.

which ksh

ergibt

/bin/ksh

whereis

Sucht in gebräuchlichen Programm-Verzeichnissen (wie beispielsweise /bin/, /usr/bin) nach dem angegebenen Kommando oder Alias und zeigt den kompletten Pfad an. Nützlich, wenn man Pfadangaben für ein Script sucht.

/!\ kein Unix-Befehl

whereis ksh

ergibt

/bin/ksh

cat und tac : Eine Textdatei ausgeben

Gibt die Dateien, die als Parameter angegeben werden, auf der Standard-Ausgabe aus. Falls keine Parameter angegeben wurden, so nimmt cat die Standard-Eingabe als Datenstrom an. Damit kann man beispielsweise Textdateien auf dem Bildschirm ausgeben, oder aber Dateien in eine Pipe oder auf ein Gerät (hier beispielsweise ein Terminal) zu schicken:

cat datei.txt > /dev/tty1

Außerdem können mit cat mehrere Dateien zu einer zusammengefügt werden, indem mehrere Eingabedateien in eine einzelne Datei ausgegeben wird:

cat datei1.txt datei2.txt datei3.txt > alles.txt

Das Programm tac (cat umgekehrt geschrieben) gibt Dateien in umgekehrter Reihenfolge aus, also die letzte Zeile zuerst, dann die vorletzte usw. Dabei müssen es nicht zwangsläufig Zeilen sein, tac kann auch andere Zeichen als den Zeilentrenner als Trennzeichen benutzen.

tac test

ergibt }}} Zeile04 Zeile03 Zeile02 Zeile01 }}}

split : große Dateien in Teile trennen

Teilt beispielsweise große Dateien in mehrere kleinere auf. Die Größe der anzulegenden Zieldateien kann sowohl in Zeilen, als auch in Bytes angegeben werden.

Die resultierenden Dateien werden als xaa, xab, xac, ..., erzeugt, wobei im Bedarfsfalle auch mehrere Buchstaben verwendet werden (xaaaa, xaaab,...). Alternativ kann man split ein Präfix mitgeben, das dann das x ersetzt.

Um beispielsweise eine Datei Sehr_Grosse_Datei.tgz in Dateien der Größe 1 MByte aufzuteilen, können Sie folgenden Befehl verwenden:

split -b 1m Sehr_Grosse_Datei.tgz Kleine_Stücke.tgz_

Ergebnis:

ls Kleine_Stücke.tgz*
Kleine_Stücke.tgz_aa
Kleine_Stücke.tgz_ab
Kleine_Stücke.tgz_ac
...
Kleine_Stücke.tgz_an

Um die Dateien am Zielort wieder zusammenzubauen, benutzen Sie einfach cat:

cat Kleine_Stücke.tgz_* > Sehr_Grosse_Datei.tgz

seq : Zahlenreihen anzeigen

Liefert Zahlenreihen, beispielsweise 001,002,003 usw. Dieses Kommando kann nützlich sein in shell-scripten.

Beispiel:

seq 00 99

liefert

0
1
2
...
9
10
11
...
99

Möchte man gleichlange Zahlen haben, kann man auch das erreichen:

seq -w 00 99

liefert

00
01
02
...
09
10
11
...
99

seq kann noch ein paar Dinge mehr, man seq oder seq --help geben die benötigten Infos auch auf Deutsch aus.

UNIX-Befehle (zuletzt geändert am 2010-11-15 08:42:47 durch p549EBD95)