Kommandozeilen-Befehle
Yve (Diskussion | Beiträge) (Befehle in "Kommandozeile" gesetzt, ergänzt) |
Wirbel (Diskussion | Beiträge) |
||
(37 dazwischenliegende Versionen von 11 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
+ | ==Einleitung== | ||
+ | Diese Seite soll als Informationspool für Linux-Anfänger dienen, die auf der Suche nach Lösungen für die kleinen Probleme des Alltags sind. | ||
Beim Erforschen des VDR oder gar beim Fehlersuchen können die folgenden Beispiel helfen. | Beim Erforschen des VDR oder gar beim Fehlersuchen können die folgenden Beispiel helfen. | ||
− | + | {{Box Hinweis| | |
− | + | Bitte nicht vergessen: die Groß- und Kleinschreibung ist bei Kommandozeilen-Befehlen unbedingt zu beachten!}} | |
− | ''' | + | ==Befehle für die Kommandozeile== |
− | <pre> | + | ===Anzeigen der Hilfe zu einem Befehl=== |
+ | {{Box Hinweis| | ||
+ | Der wichtigste Befehl, zeigt das Manual (die man-Page) eines Befehls an. Bei Unsicherheit in der Verwendung der unten genannten Befehle sollte '''man <BEFEHL>''' die erste Anlaufstelle sein. Übrigens findet man in google mit den Suchworten 'man <BEFEHL>' die man-Page jedes Linux/Unix Befehls. | ||
+ | }} | ||
+ | Beispiel | ||
+ | <pre>man lsmod</pre> | ||
− | <pre> | + | ===Anzeigen der Datenübertragungsrate eines IDE Gerätes=== |
+ | Zeigt die Datenübertragungsrate für das gewählte IDE Gerät wie z.B. Festplatte, CDrom, DVDrom, Brenner. | ||
+ | <pre>hdparm -tT /dev/hd{a,b,c,d}</pre> | ||
+ | ===Anzeigen des benutzten Speicherplatzes=== | ||
+ | '''d'''isk '''u'''sage zeigt den Speicherverbrauch je Verzeichnis an. | ||
+ | <pre>du {optional: Ordner}</pre> | ||
− | + | ===Anzeigen des freien Speicherplatzes=== | |
+ | '''d'''isk '''f'''ree zeigt den freien Speicher an. | ||
+ | <pre>df {optional: Ordner}</pre> | ||
+ | ===Anzeige der geladenen Kernelmodule=== | ||
+ | '''l'''i'''s'''t'''mod'''ules zeigt die aktuell geladenen Kernelmodule. | ||
+ | <pre>lsmod</pre> | ||
+ | ===Anzeigen des System Message Buffer mit dmesg=== | ||
+ | dmesg kopiert die Meldungen im system message buffer zur Standardausgabe. | ||
+ | Beispiel: | ||
+ | <pre> | ||
+ | dmesg | grep -i scsi | ||
+ | </pre> | ||
+ | dmesg kopiert alle Meldungen zur Standardausgabe (Konsole), um sinnvolle Zeilen herauszusuchen wird hier die Ausgabe von dmesg nach allem was "scsi" enthält durchsucht. Näheres auf dieser Seite zu grep und dem pipe-Operator. | ||
+ | ===Anzeigen von Dateien mit cat=== | ||
+ | <pre> | ||
+ | cat /proc/interrupts | ||
+ | </pre> | ||
+ | Zeigt die Verteilung der Interrupts, allerdings nur, wenn das proc Dateisystem eingebunden ist. | ||
+ | ===Erstellen eines Patch (diff-Dateien)=== | ||
+ | diff -Nru <from-dir> <to-dir> | ||
− | + | diff Dateien werden vorwiegend dazu benutzt, um Änderungen im Quelltext von Programmen als Patch zu veröffentlichen. | |
− | <pre> | + | ===Benutzung von pipes: der "|" Operator=== |
+ | Eine pipe leitet die (Standard-)Ausgabe eines Befehls zu einem weiteren Befehl weiter. | ||
+ | Beispiel: | ||
+ | <pre> | ||
+ | lsmod | grep ivtv | ||
+ | </pre> | ||
+ | Der Befehl lsmod zeigt alle geladenen Kernelmodule, der Operator | leitet dessen Ausgabe zum Befehl grep weiter, der wiederum nach allen Textzeilen sucht, die 'ivtv' enthalten und diese auf der Konsole ausgibt. | ||
− | <pre> | + | ===Packen/Entpacken von Dateien=== |
+ | ====Packen von Dateien==== | ||
+ | Erstellen eines gzip Tarballs | ||
+ | <pre> | ||
+ | tar czvf zielarchiv.tar.gz quellverzeichnis | ||
+ | </pre> | ||
+ | Erstellen eines bzip2 Tarballs (bevorzugt, weil kleinere Dateien) | ||
+ | <pre> | ||
+ | tar cjvf zielarchiv.tar.bz2 quellverzeichnis | ||
+ | </pre> | ||
− | <pre>tar -cvf /tmp/Backup-etc.tar /etc/</pre> | + | ====Entpacken von Dateien==== |
+ | <pre> | ||
+ | tar xzvf quellarchiv.tgz | ||
+ | </pre> | ||
+ | oder | ||
+ | <pre> | ||
+ | tar xzvf quellarchiv.tar.gz | ||
+ | </pre> | ||
+ | oder | ||
+ | <pre> | ||
+ | tar xjvf quellarchiv.tar.bz2 | ||
+ | </pre> | ||
+ | tar benötigt die Angabe des Kompressionsalgorithmus, für gzip-komprimierte Archive gibt man '''z''', für bzip2-Komprimierte '''j''' an. Der Parameter '''x''' weist tar an, eine Dekomprimierung vorzunehmen. Mit '''v''' schaltet man den ''verbose''-Modus ein, so bekommt man ausführliche Informationen, was tar macht. Nach dem Parameter '''f''' erwartet tar den Dateinamen des zu bearbeitenden Archivs an. | ||
+ | |||
+ | ====Erstellen von Archiven==== | ||
+ | tar erstellt eine Datei aus mehreren Dateien, packt aber nicht. Deswegen wird anschließend die tar-Datei gepackt. Der Weg beim Entpacken ist genau anders herum und kann deswegen auch alternativ mit einer pipe realisiert werden.<br> | ||
+ | Beispiel: | ||
+ | <pre> | ||
+ | tar -cvf /tmp/Backup-etc.tar /etc/ | ||
+ | </pre> | ||
+ | Erstellt ('''c'''reate) die Datei ('''f'''ile) /tmp/Backup-etc.tar die das Verzeichnis ''/etc'' gepackt enthält, zusätzlich werden die Meldungen angezeigt ('''v'''erbose). Recht nützlich, wenn man schnell ein Backup der Konfigurationsdateien ziehen möchte. Auch hier kann man mit '''z''' die gzip- und mit '''j''' die bzip2-Kompression benutzen. <br> | ||
+ | Beispiel (gzip-Kompression): | ||
+ | <pre> | ||
+ | tar -cvzf /tmp/Backup-etc.tar.gz /etc/ | ||
+ | </pre> | ||
+ | Beispiel (bzip2-Kompression): | ||
+ | <pre> | ||
+ | tar -cvjf /tmp/Backup-etc.tar.bz2 /etc/ | ||
+ | </pre> | ||
+ | |||
+ | ===Suchen von Dateien=== | ||
+ | <pre> | ||
+ | find /usr -name dateiname | ||
+ | </pre> | ||
+ | /usr spezifiziert hier das Startverzeichnis. | ||
+ | ===Suchen mit grep=== | ||
+ | grep = "'''G'''lobal search for a '''r'''egular '''e'''xpression and '''p'''rint out matched lines" | ||
+ | Durchsucht Dateien nach einem Muster und gibt passende Stellen aus. | ||
+ | Beispiel: | ||
+ | <pre> | ||
+ | grep -i append /etc/lilo.conf | ||
+ | </pre> | ||
+ | Durchsucht die Datei /etc/lilo.conf nach dem Begriff ''append'', Groß- und Kleinschreibung wird wegen dem Parameter "-i" dabei ignoriert. | ||
+ | Passende Stellen werden auf die Konsole geschrieben. | ||
+ | ===Logdateien ansehen mit tail=== | ||
+ | <pre> | ||
+ | tail dient zum Anzeigen von Textdateien. | ||
+ | |||
+ | tail -f /var/log/messages | ||
+ | </pre> | ||
+ | Der Parameter bewirkt, dass laufend Änderungen an dieser Datei auf der Konsole dargestellt werden.<br> | ||
+ | Hinweis: dieser Befehl läuft so lange, bis er mit <STRG>+c abgebrochen wird. | ||
+ | |||
+ | <pre> | ||
+ | tail -n ZEILEN /var/log/messages | ||
+ | </pre> | ||
+ | Der Parameter -n gibt an, wieviele Zeilen der Datei angezeigt werden. Das Programm wird dann beendet. | ||
+ | |||
+ | ===Anzeige der aktuellen Kernelversion mit uname=== | ||
+ | <pre> | ||
+ | uname -r | ||
+ | </pre> | ||
+ | |||
+ | ===Aktualisierung des EPG per Kommandozeile=== | ||
+ | <pre>/usr/bin/tvm2vdr.pl</pre> Voraussetzung installiertes Addon ''tvmovie2vdr'', startet das Online-Update, man kann den Fortschritt auf der Konsole beobachten. | ||
+ | |||
+ | ===Anzeigen der CPU Auslastung mit top=== | ||
+ | <pre>top</pre> | ||
+ | top zeigt die aktuelle CPU Auslastung und Speicherauslastung an. | ||
+ | top wird mit "q" oder "STRG+c" beendet. | ||
+ | ===Beenden von Prozessen=== | ||
+ | Prozesse werden mit kill, pkill oder killall beendet. | ||
+ | <br> | ||
+ | kill erwartet eine Prozess-ID, die mit dem Befehl ps ermittelt werden kann: | ||
+ | <pre> | ||
+ | bash-3.00# ps -A | grep k3b | ||
+ | 4462 pts/3 00:00:01 k3b | ||
+ | </pre> | ||
+ | Hier wird die Prozess-ID (4462) vom Programm k3b ermittelt. Einfacher geht es mit pgrep: | ||
+ | <pre> | ||
+ | bash-3.00# pgrep k3b | ||
+ | 4462 | ||
+ | </pre> | ||
+ | Wenn die Prozess-ID bekannt ist, kann der Befehl kill benutzt werden: | ||
+ | <pre> | ||
+ | kill 4462 | ||
+ | </pre> | ||
+ | Auch hier gibt es wieder einfachere Wege: | ||
+ | <pre> | ||
+ | pkill k3b | ||
+ | </pre> | ||
+ | oder | ||
+ | <pre> | ||
+ | killall k3b | ||
+ | </pre> | ||
+ | beenden alle Prozesse namens "k3b". | ||
+ | Einige Prozesse lassen sich nur forced beenden: | ||
+ | <pre> | ||
+ | pkill -9 -x "k3b" | ||
+ | </pre> | ||
+ | Der Parameter -9 bewirkt dass k3b forciert beendet wird, -x bewirkt hier, dass nur Prozesse die ''exakt'' k3b heißen beendet werden, nicht aber Prozesse, die k3b im Namen haben wie z.B. "jlk3beta" (zugegebenermaßen ist dieser Befehl frei erfunden). | ||
+ | |||
+ | ==Links== | ||
+ | # [[LinuxStarter|zurück zu Linux für Anfänger]] | ||
+ | # [http://www.linux-user.de/ausgabe/2000/12/038-pcorner/pcorner1.html 7teiliger Bash-Grundkurs] | ||
+ | # [[Einzeiler]] | ||
+ | |||
+ | [[Kategorie:Begriffserklärungen]][[Kategorie:Skripte]] |
Aktuelle Version vom 1. September 2013, 12:54 Uhr
[Bearbeiten] Einleitung
Diese Seite soll als Informationspool für Linux-Anfänger dienen, die auf der Suche nach Lösungen für die kleinen Probleme des Alltags sind. Beim Erforschen des VDR oder gar beim Fehlersuchen können die folgenden Beispiel helfen.
Bitte nicht vergessen: die Groß- und Kleinschreibung ist bei Kommandozeilen-Befehlen unbedingt zu beachten!
[Bearbeiten] Befehle für die Kommandozeile
[Bearbeiten] Anzeigen der Hilfe zu einem Befehl
Der wichtigste Befehl, zeigt das Manual (die man-Page) eines Befehls an. Bei Unsicherheit in der Verwendung der unten genannten Befehle sollte man <BEFEHL> die erste Anlaufstelle sein. Übrigens findet man in google mit den Suchworten 'man <BEFEHL>' die man-Page jedes Linux/Unix Befehls.
Beispiel
man lsmod
[Bearbeiten] Anzeigen der Datenübertragungsrate eines IDE Gerätes
Zeigt die Datenübertragungsrate für das gewählte IDE Gerät wie z.B. Festplatte, CDrom, DVDrom, Brenner.
hdparm -tT /dev/hd{a,b,c,d}
[Bearbeiten] Anzeigen des benutzten Speicherplatzes
disk usage zeigt den Speicherverbrauch je Verzeichnis an.
du {optional: Ordner}
[Bearbeiten] Anzeigen des freien Speicherplatzes
disk free zeigt den freien Speicher an.
df {optional: Ordner}
[Bearbeiten] Anzeige der geladenen Kernelmodule
listmodules zeigt die aktuell geladenen Kernelmodule.
lsmod
[Bearbeiten] Anzeigen des System Message Buffer mit dmesg
dmesg kopiert die Meldungen im system message buffer zur Standardausgabe. Beispiel:
dmesg | grep -i scsi
dmesg kopiert alle Meldungen zur Standardausgabe (Konsole), um sinnvolle Zeilen herauszusuchen wird hier die Ausgabe von dmesg nach allem was "scsi" enthält durchsucht. Näheres auf dieser Seite zu grep und dem pipe-Operator.
[Bearbeiten] Anzeigen von Dateien mit cat
cat /proc/interrupts
Zeigt die Verteilung der Interrupts, allerdings nur, wenn das proc Dateisystem eingebunden ist.
[Bearbeiten] Erstellen eines Patch (diff-Dateien)
diff -Nru <from-dir> <to-dir>
diff Dateien werden vorwiegend dazu benutzt, um Änderungen im Quelltext von Programmen als Patch zu veröffentlichen.
[Bearbeiten] Benutzung von pipes: der "|" Operator
Eine pipe leitet die (Standard-)Ausgabe eines Befehls zu einem weiteren Befehl weiter. Beispiel:
lsmod | grep ivtv
Der Befehl lsmod zeigt alle geladenen Kernelmodule, der Operator | leitet dessen Ausgabe zum Befehl grep weiter, der wiederum nach allen Textzeilen sucht, die 'ivtv' enthalten und diese auf der Konsole ausgibt.
[Bearbeiten] Packen/Entpacken von Dateien
[Bearbeiten] Packen von Dateien
Erstellen eines gzip Tarballs
tar czvf zielarchiv.tar.gz quellverzeichnis
Erstellen eines bzip2 Tarballs (bevorzugt, weil kleinere Dateien)
tar cjvf zielarchiv.tar.bz2 quellverzeichnis
[Bearbeiten] Entpacken von Dateien
tar xzvf quellarchiv.tgz
oder
tar xzvf quellarchiv.tar.gz
oder
tar xjvf quellarchiv.tar.bz2
tar benötigt die Angabe des Kompressionsalgorithmus, für gzip-komprimierte Archive gibt man z, für bzip2-Komprimierte j an. Der Parameter x weist tar an, eine Dekomprimierung vorzunehmen. Mit v schaltet man den verbose-Modus ein, so bekommt man ausführliche Informationen, was tar macht. Nach dem Parameter f erwartet tar den Dateinamen des zu bearbeitenden Archivs an.
[Bearbeiten] Erstellen von Archiven
tar erstellt eine Datei aus mehreren Dateien, packt aber nicht. Deswegen wird anschließend die tar-Datei gepackt. Der Weg beim Entpacken ist genau anders herum und kann deswegen auch alternativ mit einer pipe realisiert werden.
Beispiel:
tar -cvf /tmp/Backup-etc.tar /etc/
Erstellt (create) die Datei (file) /tmp/Backup-etc.tar die das Verzeichnis /etc gepackt enthält, zusätzlich werden die Meldungen angezeigt (verbose). Recht nützlich, wenn man schnell ein Backup der Konfigurationsdateien ziehen möchte. Auch hier kann man mit z die gzip- und mit j die bzip2-Kompression benutzen.
Beispiel (gzip-Kompression):
tar -cvzf /tmp/Backup-etc.tar.gz /etc/
Beispiel (bzip2-Kompression):
tar -cvjf /tmp/Backup-etc.tar.bz2 /etc/
[Bearbeiten] Suchen von Dateien
find /usr -name dateiname
/usr spezifiziert hier das Startverzeichnis.
[Bearbeiten] Suchen mit grep
grep = "Global search for a regular expression and print out matched lines" Durchsucht Dateien nach einem Muster und gibt passende Stellen aus. Beispiel:
grep -i append /etc/lilo.conf
Durchsucht die Datei /etc/lilo.conf nach dem Begriff append, Groß- und Kleinschreibung wird wegen dem Parameter "-i" dabei ignoriert. Passende Stellen werden auf die Konsole geschrieben.
[Bearbeiten] Logdateien ansehen mit tail
tail dient zum Anzeigen von Textdateien. tail -f /var/log/messages
Der Parameter bewirkt, dass laufend Änderungen an dieser Datei auf der Konsole dargestellt werden.
Hinweis: dieser Befehl läuft so lange, bis er mit <STRG>+c abgebrochen wird.
tail -n ZEILEN /var/log/messages
Der Parameter -n gibt an, wieviele Zeilen der Datei angezeigt werden. Das Programm wird dann beendet.
[Bearbeiten] Anzeige der aktuellen Kernelversion mit uname
uname -r
[Bearbeiten] Aktualisierung des EPG per Kommandozeile
/usr/bin/tvm2vdr.plVoraussetzung installiertes Addon tvmovie2vdr, startet das Online-Update, man kann den Fortschritt auf der Konsole beobachten.
[Bearbeiten] Anzeigen der CPU Auslastung mit top
top
top zeigt die aktuelle CPU Auslastung und Speicherauslastung an. top wird mit "q" oder "STRG+c" beendet.
[Bearbeiten] Beenden von Prozessen
Prozesse werden mit kill, pkill oder killall beendet.
kill erwartet eine Prozess-ID, die mit dem Befehl ps ermittelt werden kann:
bash-3.00# ps -A | grep k3b 4462 pts/3 00:00:01 k3b
Hier wird die Prozess-ID (4462) vom Programm k3b ermittelt. Einfacher geht es mit pgrep:
bash-3.00# pgrep k3b 4462
Wenn die Prozess-ID bekannt ist, kann der Befehl kill benutzt werden:
kill 4462
Auch hier gibt es wieder einfachere Wege:
pkill k3b
oder
killall k3b
beenden alle Prozesse namens "k3b". Einige Prozesse lassen sich nur forced beenden:
pkill -9 -x "k3b"
Der Parameter -9 bewirkt dass k3b forciert beendet wird, -x bewirkt hier, dass nur Prozesse die exakt k3b heißen beendet werden, nicht aber Prozesse, die k3b im Namen haben wie z.B. "jlk3beta" (zugegebenermaßen ist dieser Befehl frei erfunden).