Jawaban:
Anda dapat menggunakan perintah builtin, binduntuk memetakan pintasan keyboard sehingga mengeksekusi skrip perintah / shell.
Katakanlah kita ingin menjalankan perintah pwd,, ketika kita menekan F12tombol.
$ bind '"\e[24~":"pwd\n"'
Sekarang ketika saya tekan F12pada prompt saya, $:
$ pwd
/home/saml
Anda dapat menggunakan teknik berikut untuk menentukan kode jalan keluar untuk pintasan keyboard yang diberikan. Pada sebagian besar sistem, tekan Ctrl+ V, lepaskan, lalu tekan tombol yang Anda inginkan kodenya. Ada beberapa sistem lain akan bekerja dengan MbukannyaV
Menekan Ctrl+ Vkemudian lepaskan kedua Ctrldan Vdan akhirnya pers F12di jendela terminal mengembalikan ini:
$ ^[[24~
Output ini dapat diartikan sebagai berikut, ^[adalah Esckuncinya. Jadi ketika kita ingin menentukan kunci khusus ini menggunakan bindperintah, kita perlu menggunakan a \euntuk menunjukkan Esckunci diikuti oleh semua yang lain dari atas. Jadi bindperintahnya terlihat seperti ini:
$ bind '"\e[24~":"....."'
Anda juga dapat menggunakan bind -xuntuk mengatur pintasan keyboard yang akan menjalankan perintah saat Anda sedang mengetik sesuatu di prompt, dan output perintah ini akan ditampilkan, tetapi apa pun yang Anda ketikkan pada prompt akan tetap utuh.
$ bind -x '"\eW":"..."'
CATATAN: Metode ini hanya berfungsi dengan pintasan keyboard yang menghasilkan 1 karakter, jadi F12tidak akan berfungsi di sini.
Mari alias pintasan keyboard Alt+ Shift+ W.
$ bind -x '"\eW":"who"'
Katakanlah saya sedang mengetik perintah finger:
$ finger
Sekarang saya menekan pintasan keyboard 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
Apa yang terjadi bindadalah menjalankan perintah yang ditentukan who, mengambil outputnya dan memasukkannya di depan prompt. Jika Anda mengulanginya, Anda akan melihat apa yang terjadi, inilah output dari saya yang memukulnya 2 kali:
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
Jadi satu ide adalah menggunakan bind -xmetode di atas dan catmenampilkan file teks ini sesuai permintaan Anda:
$ bind -x '"\eW":"cat someinfo.txt"'
Sekarang ketika saya menjalankan perintah saya bisa melihat file ini seperti ini:
This is text from some
multi-line file reminding
me how to do some
stuff
$ finger
Output file someinfo.txtditampilkan di atas fingerperintah saya di atas.
echo ' (spasi setelah tanda kutip tunggal), lalu tekan Ctrl + v, lalu kunci yang Anda inginkan, dan kemudian spasi, tanda kutip tunggal ... seperti dijelaskan di sini . Contoh:echo ' ^[OD '
bind '"\e[24~":"airmon-ng start wlan0\n"'tetapi setelah saya menutup terminal, masalahnya tampaknya akan diatur ulang dan semua hotkey hilang