Risposte:
È possibile utilizzare il comando incorporato bind
per mappare una scorciatoia da tastiera in modo che esegua uno script di comando / shell.
Supponiamo di voler eseguire il comando pwd
quando premiamo il F12tasto.
$ bind '"\e[24~":"pwd\n"'
Ora, quando premo F12il mio prompt $
:
$ pwd
/home/saml
È possibile utilizzare la seguente tecnica per determinare il codice di escape per una determinata scorciatoia da tastiera. Sulla maggior parte dei sistemi premere Ctrl+ V, rilasciare e quindi premere il tasto per il quale si desidera il codice. Ci sono altri sistemi con cui funzionerà Minvece diV
Premere Ctrl+ Vquindi rilasciare entrambi Ctrle Vinfine premere F12in una finestra del terminale per restituire questo:
$ ^[[24~
Questo output può essere interpretato come segue, ^[
è la Escchiave. Quindi, quando vogliamo specificare questa chiave particolare usando il bind
comando, dobbiamo usare a \e
per indicare la Escchiave seguita da tutto il resto dall'alto. Quindi il bind
comando è simile al seguente:
$ bind '"\e[24~":"....."'
È inoltre possibile utilizzare bind -x
per impostare le scorciatoie da tastiera che eseguiranno i comandi mentre si sta digitando qualcosa al prompt e l'output di questi comandi verrà visualizzato, ma tutto ciò che si stava digitando al prompt rimarrà intatto.
$ bind -x '"\eW":"..."'
NOTA: questo metodo funziona solo con le scorciatoie da tastiera che generano 1 carattere, quindi F12non funzionerà qui.
Alias la scorciatoia da tastiera Alt+ Shift+ W.
$ bind -x '"\eW":"who"'
Di 'che sto digitando il comando finger
:
$ finger
Ora premo la scorciatoia da tastiera Alt+ Shift+ W:
saml tty1 2013-09-01 11:01 (:0)
saml pts/0 2013-09-01 11:03 (:0.0)
saml pts/1 2013-09-01 11:05 (:0.0)
saml pts/2 2013-09-01 11:05 (:0.0)
saml pts/5 2013-09-03 22:45 (:0.0)
$ finger
Quello che sta succedendo è che bind
sta eseguendo il comando definito who
, prendendo il suo output e inserendolo di fronte al prompt. Se lo ripeti vedrai cosa sta succedendo, ecco l'output da me colpendolo 2 volte:
saml tty1 2013-09-01 11:01 (:0)
saml pts/0 2013-09-01 11:03 (:0.0)
saml pts/1 2013-09-01 11:05 (:0.0)
saml pts/2 2013-09-01 11:05 (:0.0)
saml pts/5 2013-09-03 22:45 (:0.0)
saml tty1 2013-09-01 11:01 (:0)
saml pts/0 2013-09-01 11:03 (:0.0)
saml pts/1 2013-09-01 11:05 (:0.0)
saml pts/2 2013-09-01 11:05 (:0.0)
saml pts/5 2013-09-03 22:45 (:0.0)
$ finger
Quindi un'idea sarebbe quella di utilizzare il bind -x
metodo sopra e cat
di visualizzare questo file di testo al tuo prompt:
$ bind -x '"\eW":"cat someinfo.txt"'
Ora quando eseguo i comandi posso vedere questo file in questo modo:
This is text from some
multi-line file reminding
me how to do some
stuff
$ finger
L'output del file someinfo.txt
viene visualizzato sopra il mio finger
comando sopra.
echo '
(spazio dopo la virgoletta singola), quindi premere Ctrl + v, quindi il tasto desiderato, quindi spazio, virgoletta singola ... come descritto qui . Esempio:echo ' ^[OD '
bind '"\e[24~":"airmon-ng start wlan0\n"'
ma dopo aver chiuso il terminale, la cosa sembra essere ripristinata e tutti i tasti di scelta rapida sono andati