Shellkniffe
Review: Dieser Artikel ist für das Review freigegeben.
|
In diesem Artikel werden verschiedene Kniffe rund um die Shell erläutert. Auch alltägliche Befehle, für die noch kein eigener Artikel besteht bzw. sich ein solcher aufgrund des Umfangs nicht lohnen würde, finden hier Platz. Es wird nicht immer der beste Weg beschrieben, sondern einer der einfach ist und funktioniert.
Hinweis: Dieser Artikel ist besonders einfach gehalten, um Neulinge nicht zu überfordern. Wer hier detaillierte Informationen zu den einzelnen Befehlen sucht, wird diese hier nicht finden. |
Autovervollständigung aktivieren
Leider ist die Autovervollständigung standardmäßig nicht aktiviert. Um sich eine Menge Schreibarbeit zu ersparen, muss das Paket bash-completion installiert sein und die /etc/bash.bashrc mit einem Editor als root editiert werden.
root@debian:~# nano /etc/bash.bashrc
Unter dem Bereich enable bash completion kann durch löschen der Auskommentierungen (#) die Autovervollständigung aktiviert werden. Insgesamt sind 3 Auskommentierungen zu entfernen. Der Bereich in der /etc/bash.bashrc sieht dann folgendermaßen aus:
#enable bash completion in interactive shells if [ -f /etc/bash-completion ] && ! shopt -oq posix; then . /etc/bash_completion fi
Sobald die Datei abgespeichert wurde, ist die Autovervollständigung aktiv. Innerhalb der Konsole kann man durch das Betätigen der Tab-Taste von ihr profitieren.
Verzeichnis- und Dateigröße ermitteln
Aus verschiedenen Gründen ist es manchmal notwendig, die Größe eines Verzeichnisses oder einer einzelnen Datei zu kennen. Mit dem du -sh Befehl und der entsprechenden Pfadangabe (hier im Beispiel der Pfad zum Mailordner) kann man diese schnell ermitteln.
user@debian:~$ du -sh .icedove
Ein Verzeichnis erstellen
Verzeichnisse helfen dem Nutzer die Übersicht über seine Dateien zu behalten. Mit dem Befehl mkdir lassen sich neue Verzeichnisse (hier am Beispiel vom neuen Musik-Verzeichnis) erstellen.
user@debian:~$ mkdir Musik
Der obige Befehl führt dazu, dass im aktuellen Verzeichnis, ein weiteres Verzeichnis mit dem Namen Musik erstellt wird. Durch die Angabe des kompletten Pfades (Beispielsweise /home/Nutzer5/Musik) erzeugt man Verzeichnisse außerhalb des aktuellen.
Einen Prozess beenden
Das Beenden eines Prozesses ist ein ganz normaler Vorgang, der sich ab und an etwas schwierig gestalten kann. Ein Fenster friert ein oder es gibt gleich keine grafische Möglichkeit ein Programm zu beenden (Dockapps oder eine Anwendung die im Hintergrund läuft). Ist der Befehl gerade in der Konsole ausgeführt worden und noch aktiv (das heißt es ist noch kein neuer Prompt erschienen), dann kann dieser Befehl durch die Tastenkombination strg+c abgebrochen werden. Für alles andere gibt es den Befehl killall, welcher den gewünschten Prozess beendet (hier am Beispiel von Icedove).
root@debian:~# killall icedove
Wenn die Autovervollständigung aktiviert ist, wird durch das zweimalige Betätigen der Tab-Taste, nach dem Befehl killall eine Liste der laufende Prozesse angezeigt.
Shellausgabe umleiten — Pipen
Ab und an ist es hilfreich, die Ausgabe eines Befehls in einer Textdatei abzulegen, an einen Editor oder Dateibetrachter zu übergeben oder um ohne Maus zu scrollen. Dies kann durch sogenanntes Pipen einfach bewerkstelligt werden. An jeden Befehl kann kann man durch Anhängen von | und den jeweiligen Empfänger die Ausgabe umleiten. Im Folgenden wird z.B. die Ausgabe des Programms dmesg
an den Pager less
weitergeleitet.
user@debian:~$ dmesg | less
dmesg
gibt Debugging-Nachrichten des Kernels aus, was typischerweise mehrere Hundert Zeilen sind. less
verhindert, dass dieser Text in unlesbarer Geschwindigkeit vorbeiscrollt, man kann zudem darin scrollen und suchen.
Verbreitete Tastenkombinationen
[1] Gilt in der /bin/sh
, readline-Umgebungen wie cat
und ähnlichen einfachen Eingabemasken.
[2] Gilt auf vielen höheren Shells.
[3] Gilt nur im vi
(m
), less
(und damit normalerweise auch in Manpages) und ähnlichen Programmen.
1 | 2 | 3 | Strg | Alt | Taste | Funktion/Wirkung | Ersatz für Befehl |
---|---|---|---|---|---|---|---|
x | Strg + | d | end of file ; Shell beenden |
exit
| |||
x | Strg + | c | SIGINT senden, (häufig:) Prozess abbrechen |
kill -2 {PID}
| |||
x | Strg + | h | Buchstaben löschen | ||||
x | Strg + | w | Wort löschen | ||||
x | Strg + | u | bis zum Zeilenanfang löschen (praktisch: Passwortfeld nach vertippen leeren) | ||||
x | Strg + | k | bis zum Zeilenende löschen | ||||
x | Strg + | s | Terminal-Output anhalten | ||||
x | Strg + | q | Terminal-Output fortsetzen | ||||
x | Strg + | z | Prozess anhalten (z.B., um ihn per bg in den Hintergrund zu setzen) |
||||
x | Strg + | v | nachfolgendes Zeichen escapen (z.B. wird ^D zu 0x04 anstatt EOF) |
||||
x | Strg + | a | zum Zeilenanfang gehen | ||||
x | Strg + | e | zum Zeilenende gehen | ||||
x | Strg + | l | Bildschirm leeren | clear
| |||
x | Alt + | . | . = [Punkt] letzten Parameter des vorigen Befehls einfügen | ||||
x | Alt + | b | Cursor ein Wort zurück bewegen | ||||
x | Alt + | f | Cursor ein Wort nach vorne bewegen | ||||
x | Strg + | u | halbe Seite nach oben scrollen (up) | ||||
x | Strg + | d | halbe Seite nach unten scrollen (down) | ||||
x | Strg + | b | volle Seite nach oben scrollen (back) | ||||
x | Strg + | f | volle Seite nach unten scrollen (forward) | ||||
" | Leertaste | " | |||||
Strg + | Alt + | F1,F2... | auf das entsprechende TTY wechseln | chvt {1,2,3..}
| |||
x | / | Durchsuchen von manpages: "/Suchbegriff"; Springen zum nächsten Treffer mit n (vorheriger Treffer: N) | |||||
x | ? | Durchsuchen von manpages: "?Suchbegriff"; Springen zum vorherigen Treffer mit n (nächster Treffer: N) | |||||
Dummy |
Das gleichzeitige Drücken von Alt und z.B. b kann je nach Terminal/Umgebung nicht wie gewünscht funktionieren. Stattdessen kann man die Tasten Esc und z.B. b nacheinander drücken, was äquivalent zu Alt+b ist.