Donnerstag, 15. April 2010

Kennen Sie Bash (wirklich)?


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

Keine Kommentare:

Kommentar veröffentlichen

Hinweis: Nur ein Mitglied dieses Blogs kann Kommentare posten.