Ответы:
Вы можете использовать встроенную команду, bind
чтобы отобразить сочетание клавиш, чтобы оно выполняло команду / сценарий оболочки.
Скажем, мы хотим запустить команду pwd
, когда нажимаем F12клавишу.
$ bind '"\e[24~":"pwd\n"'
Теперь , когда я нажимаю F12на моей строке $
:
$ pwd
/home/saml
Вы можете использовать следующую технику, чтобы определить escape-код для данного сочетания клавиш. В большинстве систем нажмите 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"'
но после того, как я закрыл терминал, вещь, кажется, сбрасывается, и все горячие клавиши ушли