回答:
組み込みコマンドを使用してbind
、コマンド/シェルスクリプトを実行するようにキーボードショートカットをマップできます。
キーpwd
を押したときにコマンドを実行するとしF12ます。
$ bind '"\e[24~":"pwd\n"'
今、私は押したときにF12、私のプロンプト$
:
$ pwd
/home/saml
次の手法を使用して、特定のキーボードショートカットのエスケープコードを決定できます。ほとんどのシステムでは、Ctrl+を押してVから放し、コードが必要なキーを押します。M代わりに動作する他のシステムがいくつかありますV
Ctrl+ Vを押してから両方Ctrlを離しV、最後にF12ターミナルウィンドウでを押す と、これが返されます。
$ ^[[24~
この出力は次のように解釈できます^[
が、これがEsc重要です。したがって、bind
コマンドを使用してこの特定のキーを指定する場合は、a \e
を使用してEscキーを示し、その後に上記の他のすべてが続く必要があります。したがって、bind
コマンドは次のようになります。
$ bind '"\e[24~":"....."'
bind -x
プロンプトで何かを入力している最中にコマンドを実行するキーボードショートカットをセットアップすることもできます。これらのコマンドの出力は表示されますが、プロンプトで入力した内容はそのまま残ります。
$ bind -x '"\eW":"..."'
注:この方法は、1文字を出力するキーボードショートカットでのみ機能するため、ここでF12は機能しません。
キーボードショートカットAlt+ Shift+ のエイリアスを作成しましょうW。
$ bind -x '"\eW":"who"'
コマンドを入力しているとしましょうfinger
:
$ finger
次に、キーボードショートカット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
何が起こっているのかbind
は、定義されたコマンドを実行し、who
その出力を取得してプロンプトの前に挿入することです。繰り返すと、何が起こっているのかがわかります。2回ヒットした結果を次に示します。
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
そのため、bind -x
上記の方法を使用cat
して、プロンプトでこのテキストファイルを表示することも考えられます。
$ bind -x '"\eW":"cat someinfo.txt"'
コマンドを実行すると、このファイルが次のように表示されます。
This is text from some
multi-line file reminding
me how to do some
stuff
$ finger
ファイルの出力は、someinfo.txt
上記のfinger
コマンドの上に表示されています。
echo '
(単一引用符の後にスペースを)、その後、Ctrlキーを押しながら+ vをその後、説明するようにしたいキー、そしてスペース、単一引用符... ここに。例:echo ' ^[OD '
bind '"\e[24~":"airmon-ng start wlan0\n"'
が、ターミナルを閉じた後、事はリセットされるようで、すべてのホットキーは消えます