Відповіді:
Ви можете використовувати вбудовану команду, 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"'
але після закриття терміналу, здається, річ скидається, і всі гарячі клавіші пішли