Inhaltsverzeichnis
- Allgemeine Form
-
Beispiele gebräuchlicher Programme
- pwd : print working directory : Zeige Arbeitsverzeichnis
- ls : List : Zeige Inhaltsverzeichnis
- cp : Copy : Kopiert eine oder mehrere Dateien
- rm : remove : Löscht Dateien oder Inhaltsverzeichnisse
- mv : Move : Dateien Verschieben
- mkdir : Make Directory : Erzeuge ein Verzeichnis
- rmdir : remove Directory : Lösche ein leeres Verzeichnis
- grep : global regular expression print : Suche nach Mustern in Dateien
- locate
- which : Zeigt an, woher das Programm kommt, das durch einen Befehl ausgeführt wird
- whereis
- cat und tac : Eine Textdatei ausgeben
- split : große Dateien in Teile trennen
- seq : Zahlenreihen anzeigen
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 :
- Die Tastenkombination [Ctrl]-[Alt]-[F1], (In den Grafik-Fenster-Maus-Bildschirm wird gewöhnlich zurückgeschaltet mit [Ctrl]-[Alt]-[F7]
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:
Die sog. eingebauten Befehle (shell built-in). Diese Kommandos werden bereits beim Einloggen des Benutzers am System in den Hauptspeicher geladen. (Diese sind abhängig von der verwendeten Shell, unter GNU/Linux meist die Bash.)
- normale Programme
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.