Bash verfügt über einige kleine Nettigkeiten, die sich nicht unbedingt auf den ersten Blick erschließen, das Leben allerdings um ein Vielfaches erleichtern:
Die History:
Bash verfügt neben der allseits gegenwärtigen Completion die man durch zweimaliges Drücken der TabTaste erreicht auch noch eine sehr schöne History.
In der Datei
~/.bash_history speichert die Bash Zeilenweise welcher Befehl zuletzt aufgerufen wurde. Mit den beiden Umgebungvariablen
$HISTSIZE und
$HISTFILESIZE kann durch ersteres bestimmt werden, bis zu wieviele letzte Befehle durch Eingabe des Befehls:
>>history
angezeigt werden bzw. durch zweiteres wieviele letzte Befehle in der Datei
~/.bash_history abgelegt werden sollen. Die
Option -c löscht die Bash-History. Bash nummeriert die zuletzt aufgerufenen Befehle von 1 bis $HISTSIZE. Durch Eingabe von
>> !n
wird der Befehl mit der Nummer n aus der History hervorgekramt und ausgeführt. Durch einfaches Drücken der hoch [runter] oder der Tasten
Strg-P [Strg- N] kann man durch die History einfach vor- und zurückblättern. Mit Strg-R lässt sich in der History rückwärts durchsuchen. Strg-S durchsucht respektive vorwärts. Mit Strg-G verlässt man die Suche wieder.
Emacs/Vi Mode:
Bash lässt sich Wahlweise im Emacs oder im Vi Mode betreiben. Normalerweise wird von den meisten Distributionen der Emacs Modus benutzt. Mit dem Befehl:
>> mode -o vi
versetzt man Bash vom Emacs in den Vi Modus. Sollte doch Widererwarten der Vi Modus eingeschaltet sein und möchte man diesen in den Emacs Modus zurück wechseln, kann man dies durch Eingabe von:
>> mode -o emacs
erreichen.
Die beiden Modi Unterscheiden sich durch ihre definierten Shortcuts. Der Vi Mode erlaubt die Bash so zu steuern wie man sie von Vi her gewohnt ist. Durch das Drücken der ":" Taste gelangt man in den Befehlsmodus:
Cursorsteuerung:
Emacs | Vi | Auswirkung |
Strg-A | 0 | Cursor am Zeilenanfang positionieren |
Strg-E | $ | Cursor am Zeilenende positionieren |
»Linker Pfeil«
Strg-B | L >>Space>> | Cursor, ohne zu löschen, ein Zeichen nach links bewegen |
»Rechter Pfeil«
Strg-F | H | Cursor, ohne zu löschen, ein Zeichen nach rechts bewegen |
DEL | x | Das Zeichen links vom Cursor wird gelöscht |
Strg-D | X | Das Zeichen unter dem Cursor wird gelöscht |
Strg-U | Strg-U | Vom Cursor bis zum Zeilenanfang alle Zeichen löschen |
Strg-K | D | Vom Cursor bis zum Zeilenende alle Zeichen löschen |
Wortsteuerung:
Emacs | Vi | Auswirkung |
Esc b | b | Ein Wort zurück bewegen |
Esc f | w | Ein Wort vorwärts bewegen |
Esc del
Strg-W | Strg-w | Das Wort links vom Cursor löschen |
Esc d |
| Das Wort unter dem Cursor löschen |
Str-y | u | Letztes gelöschtes Wort zurückholen |
Zeichensteuerung:
Emacs | Vi | Auswirkung |
Strg-T | Strg-T | Vertauscht das unter dem Cursor stehende Zeichen mit seinem linken Nachbarn |
Strg-V | Strg-V | Das nächste eingegebene Zeichen wird maskiert |
Esc U |
| Konvertiert alles vor dem Coursor in Großschreibung |
Esc L |
| Konvertiert alles vor dem Cursor in Kleinschreibung |
Mittels
Strg-X Strg-E öffnet man den in $EDITOR festgelegten Standardeditor.
Zwei äußerst brauchbare CheatSheets gibt es bei Catonmat:
http://www.catonmat.net/download/readline-emacs-editing-mode-cheat-sheet.pdf
http://www.catonmat.net/download/bash-vi-editing-mode-cheat-sheet.pdf