Jawaban:
Anda dapat menggunakan perintah builtin, bind
untuk 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 bind
perintah, kita perlu menggunakan a \e
untuk menunjukkan Esckunci diikuti oleh semua yang lain dari atas. Jadi bind
perintahnya terlihat seperti ini:
$ bind '"\e[24~":"....."'
Anda juga dapat menggunakan bind -x
untuk 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 bind
adalah 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 -x
metode di atas dan cat
menampilkan 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.txt
ditampilkan di atas finger
perintah 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