Как выполнить сценарий в оболочке, когда сочетание клавиш нажимается

Принятие Вас может удаленно получить доступ (и иметь привилегированную учетную запись на), каждая машина, Вы могли бы попробовать iftop утилита.

Что-то как iftop -f udp -F "port <port> and host <previous hop>" должен дать Вам всем трафик UDP от данного хоста на данном порте. См. страницы справочника для большего количества информации о построении фильтров. (Также знаменитый: принятие Вас имеет доступ к сети, можно также контролировать всю сеть путем определения сети/сетевой маски как так: -F 10.0.0.0/255.0.0.0)

Если Вы не хотите к / не может установить iftop, но иметь доступ к iptables, у Вас может также быть он, регистрируют Ваш трафик и использование это для вычисления пропускной способности.

Сначала установите цепочку для своего приложения и передайте все поступление / исходящий трафик:

iptables -N $CHAIN && iptables -A FORWARD

Затем установите правило для отдельной загрузки / загрузка:

# Downloads
iptables -A FORWARD -d $PREVIOUSHOP -j $CHAIN

# Town A Uploads
iptables -A FORWARD -s $PREVIOUSHOP -j $CHAIN`

Представление Now транспортное использование для каждой цепочки: iptables -L -v -n

14
07.09.2013, 01:12
1 ответ

Можно использовать встроенную команду, 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 + Сдвиг + W.

$ bind -x '"\eW":"who"'

Скажите, что я ввожу команду finger:

$ finger

Теперь я поразил сочетание клавиш Alt + Сдвиг + 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"'

Теперь, когда я работаю, команды I видят этот файл как так:

This is text from some 
multi-line file reminding
me how to do some 
stuff
$ finger 

Вывод файла someinfo.txt отображается выше моего finger команда выше.

Ссылки

20
27.01.2020, 19:51
  • 1
    я должен только отобразить содержание, для не выполнения его. –  user3539 06.09.2013, 07:34
  • 2
    Поэтому свяжите со сценарием, который отображает содержание. –  Lars Rohrbach 06.09.2013, 08:54
  • 3
    Ctrl+m не работает на меня. Это действует, как будто я просто нажал Enter. Альтернатива я думаю (я - новичок удара) должна ввести echo ' (пространство после одинарной кавычки), затем нажмите Ctrl+v, затем ключ, который Вы хотите и затем располагаете с интервалами, одинарная кавычка..., как описано здесь. Пример: echo ' ^[OD ' –  aliteralmind 12.01.2015, 02:36

Теги

Похожие вопросы