Bash Hotkeys

Häufig benutzte Terminal-Befehle immer wieder eingeben ist lästig. Abhilfe schafft die History, mit der Pfeil-nach-Oben-Taste kann man die letzten Befehle durchblättern. Doch auch das Blättern kann lästig sein. Abhilfe schafft Ctrl+R, womit man in der History suchen kann. Wenn sich befehle ähneln, sucht man damit evtl. auch etwas länger.

Ganz einfach geht es mit Tastenkürzeln, die man in der .bashrc oder der .bash_profile definieren kann.

Ich möchte z.B. mit F1 über SSH zum Host palita.net auf Port 2011 verbinden, unter Verwendung des Keys ~/.ssh/second.pem und dem Benutzernamen palita. Auf dem Host möchte ich außerdem direkt den Befehl tail -f /var/log/messages ausführen.

Jetzt gilt es zunächst herauszufinden, wie bash auf F1 oder sonstige Tasten(-kombinationen) reagieren kann. Hier hilft read. Der Befehl read wartet auf Input und gibt einfach nur aus, was dieser war. Wenn man read startet und die Taste F1 drückt, kommt folgendes dabei raus:

$ read ^[OP 

^[ ist die Escape-Steuersequenz, diese wird mit \e umschrieben; OP bezeichnet dann also F1.

Um für diese Taste ein Kürzel einzurichten, editiert man einfach die Datei ~/.bashrc (unter Mac OS X  die Datei ~/.bash_profile) und fügt z.B. am Ende folgendes ein:

bind '"\eOP":"ssh palita@palita.net -p 2011 -i ~/.ssh/second.pem tail -f /var/log/messages\n"'

Nach dem Speichern und neuem Einloggen wird der Befehl beim Drücken von F1 ausgeführt. Das direkte Ausführen kann man durch entfernen von \n (Newline) verhindern. Damit lassen sich dann z.B. auch einzelne Fragmente an Befehle anfügen, z.B. um sich schonmal das Tippen von cd /var/www/virtual_hosts/ zu sparen.

Tagged with: , , ,
Posted in Tutorials

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

*

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>