Как я могу выполнить скрипт в оболочке при нажатии сочетания клавиш.
По сути, мне нужно, чтобы при нажатии сочетания клавиш скрипт считывал из файла и отображал это содержимое в терминале.
bash
keyboard-shortcuts
gnome-terminal
user3539
источник
источник
bind '"\e[24~":"airmon-ng start wlan0\n"'
но после того, как я закрыл терминал, вещь, кажется, сбрасывается, и все горячие клавиши ушлиОтветы:
Вы можете использовать встроенную команду,
bind
чтобы отобразить сочетание клавиш, чтобы оно выполняло команду / сценарий оболочки.пример
Скажем, мы хотим запустить команду
pwd
, когда нажимаем F12клавишу.Теперь , когда я нажимаю F12на моей строке
$
:Определение сочетаний клавиш
Вы можете использовать следующую технику, чтобы определить escape-код для данного сочетания клавиш. В большинстве систем нажмите Ctrl+ V, отпустите, а затем нажмите клавишу, для которой требуется код. Есть некоторые другие системы, с которыми он будет работать MвместоV
пример
Нажатие Ctrl+ Vзатем отпустите оба Ctrlи Vи, наконец, нажмите F12в окне терминала возвращает это:
Этот вывод можно интерпретировать следующим образом,
^[
это Escключ. Поэтому, когда мы хотим указать этот конкретный ключ с помощьюbind
команды, нам нужно использовать a\e
для обозначения Escключа, за которым следует все остальное сверху. Итак,bind
команда выглядит так:Выполнение команды в середине
Вы также можете использовать
bind -x
для настройки сочетания клавиш, которые будут запускать команды, когда вы будете вводить что-то в приглашении, и вывод этих команд будет отображаться, но то, что вы вводите в приглашении, останется без изменений.ПРИМЕЧАНИЕ. Этот метод работает только с сочетаниями клавиш, которые выводят 1 символ, поэтому F12здесь не сработает.
пример
Давайте псевдоним сочетания клавиш Alt+ Shift+ W.
Скажем, я набираю команду
finger
:Теперь я нажал сочетание клавиш Alt+ Shift+ W:
То, что происходит, -
bind
это выполнение определенной командыwho
, получение ее вывода и вставка ее перед приглашением. Если вы повторите это, вы увидите, что происходит, вот вывод от меня, ударяющего это 2 раза:Твоя проблема
Поэтому одной из идей будет использование
bind -x
вышеописанного метода иcat
отображение этого текстового файла в вашем приглашении:Теперь, когда я запускаю команды, я вижу этот файл так:
Вывод файла
someinfo.txt
отображается над моейfinger
командой выше.Ссылки
источник
echo '
(пробел после одинарной кавычки), затем нажать Ctrl + v, затем нужную клавишу, а затем пробел, одинарную кавычку ... как описано здесь . Пример:echo ' ^[OD '