Shellkniffe

Aus DebianforumWiki

Wechseln zu: Navigation, Suche

Review.png 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 aufgrund des Umfangs sich nicht lohnen würde, finden hier Platz. Es wird nicht immer der beste Weg beschrieben, sondern einer der einfach ist und funktioniert.

Hinweis.png 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.

Inhaltsverzeichnis

Autovervollständigung aktivieren

Leider ist die Autovervollständigung standardmäßig nicht aktiviert. Um sich eine Menge Schreibarbeit zu ersparen, muss das Paket Debianpackage.png 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 nicht zu verlieren. 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 das im aktuellen Verzeichnis, ein 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 ab und an sich 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 wurden 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 sehr 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 + 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.

Meine Werkzeuge