Wie kann ich ein Skript in der Shell ausführen, wenn eine Tastenkombination gedrückt wird?
Ich brauche im Wesentlichen, wenn eine Tastenkombination gedrückt wird, das Skript aus einer Datei lesen und diesen Inhalt im Terminal anzeigen soll.
bash
keyboard-shortcuts
gnome-terminal
user3539
quelle
quelle
bind '"\e[24~":"airmon-ng start wlan0\n"'
aber nachdem ich das Terminal geschlossen habe, scheint das Ding zurückgesetzt zu sein und alle Hotkeys sind wegAntworten:
Sie können den eingebauten Befehl verwenden,
bind
um eine Tastenkombination zuzuordnen, sodass ein Befehls- / Shell-Skript ausgeführt wird.Beispiel
Angenommen, wir möchten den Befehl ausführen
pwd
, wenn wir die Taste drückenF12 Taste drücken.Jetzt, wenn ich F12auf meine Aufforderung drücke ,
$
:Festlegen von Tastaturkürzeln
Mit der folgenden Technik können Sie den Escape-Code für eine bestimmte Tastenkombination ermitteln. Auf den meisten Systemen drücken Sie Ctrl+ V, lassen Sie los und drücken Sie dann die Taste, für die Sie den Code möchten. Es gibt einige andere Systeme, mit denen es funktioniertM anstattV
Beispiel
Drücken Sie Ctrl+, lassen Sie Vdann beide Tasten Ctrlund los Vund drücken Sie schließlich F12in einem Terminalfenster, um Folgendes zurückzugeben:
Diese Ausgabe kann wie folgt interpretiert werden,
^[
ist der EscSchlüssel. Wenn wir diesen bestimmten Schlüssel mit dembind
Befehl angeben möchten, müssen wir a verwenden\e
, um den EscSchlüssel zu kennzeichnen, gefolgt von allem anderen von oben. Derbind
Befehl sieht also so aus:Einen Befehl in der Mitte ausführen
Sie können auch
bind -x
Tastenkombinationen einrichten, mit denen Befehle ausgeführt werden, während Sie gerade etwas an der Eingabeaufforderung eingeben. Die Ausgabe dieser Befehle wird angezeigt, aber was auch immer Sie an der Eingabeaufforderung eingegeben haben, bleibt erhalten.HINWEIS: Diese Methode funktioniert nur mit Tastaturkürzeln, die 1 Zeichen ausgeben. Daher F12funktioniert sie hier nicht.
Beispiel
Lassen Sie uns das Tastenkürzel Alt+ Shift+ alias W.
Angenommen, ich schreibe den Befehl
finger
:Nun schlug ich die Tastenkombination Alt+ Shift+ W:
Es
bind
wird der definierte Befehl ausgeführt,who
dessen Ausgabe übernommen und vor der Eingabeaufforderung eingefügt. Wenn Sie es wiederholen, werden Sie sehen, was los ist. Hier ist die Ausgabe von mir, die es zweimal trifft:Ihr Problem
Eine Idee wäre daher, die
bind -x
oben beschriebene Methode zu verwenden undcat
diese Textdatei an Ihrer Eingabeaufforderung anzuzeigen:Wenn ich nun Befehle ausführe, kann ich diese Datei folgendermaßen sehen:
Die Ausgabe der Datei
someinfo.txt
wird über meinemfinger
Befehl oben angezeigt .Verweise
quelle
echo '
(Leerzeichen nach dem einfachen Anführungszeichen) einzugeben, dann Strg + v zu drücken, dann die gewünschte Taste und dann Leerzeichen, einfaches Anführungszeichen ... wie hier beschrieben . Beispiel:echo ' ^[OD '