Проверка подключения и доступности портов с использованием SSH вместо Telnet

Я подтвердил все нижеперечисленное на ThinkPad P1 с Pop! _ОС (производная Ubuntu 18.10 )в GNOME.

Поиск кодов ключей

Запустите xevв терминале и начните печатать. Данных много, но что вы ищет обычно вторая 3-я строка блока после словаkeycode:

KeyRelease event, serial 37, synthetic NO, window 0x3c00001,
    root 0x1a5, subw 0x0, time 291165043, (404,446), root:(454,634),
    state 0x0, **keycode 107** (keysym 0xff67, Menu), same_screen YES,
    XLookupString gives 0 bytes:
    XFilterEvent returns: False

Есть некоторые клавиши, для которых xevне печатается код клавиши, например Print Screen. Для этого вы можете просмотреть файл, созданный в следующем разделе.

Необходимые инструменты

xmodmap

Сброс текущих привязок

Вы можете вывести текущие сопоставления в стандартный вывод, запустив xmodmap -pke. Вы избавите себя от некоторых потенциальных головных болей, предварительно сделав резервную копию макета xmodmap. в файл:

xmodmap -pke ~/.Xmodmap.orig

Этот файл также служит простой справочной информацией о том, где находятся ключи, если они не отображаются. в xev.

cat ~/.Xmodmap | grep Print
keycode 107 = Print Sys_Req Print Sys_Req

Команда для быстрого изменения привязки

Вы это уже знаете, но просто подтверждаю:

xmodmap -e "keycode [number] = [keys...]"

Это временно переназначит ключ для вашего сеанса. Бег xmodmap -pkeснова отразит эти изменения.

Синтаксис

xmodmapиспользует столбцы, разделенные пробелом -, для обозначения различных модификаторов/режимов. для keycode.Слева направо они:

  • Ключ сам по себе
  • Shift + клавиша
  • Переключатель режимов _+ клавиша
  • Режим _переключатель + шифт + клавиша

Например:

xmodmap -e "44 = j J Down Next"

Это устанавливает клавишу "J" "j" сама по себе, "J" при нажатии с Shift, стрелка вниз при нажатии с переключателем режима _и Page Down при нажатии с переключателем режима _и Сдвиг.

Mode_switch

Mode_switch— это отдельный общий модификатор, аналогичный Shift. я не думаю многие клавиатуры уже поставляются со специальной клавишейMode_switch(AltGr ), но вы можно настроить с помощью xmodmap.

# Set left Alt as Mode_switch
xmodmap -e "keycode 108 = Mode_switch"

Запуск скриптов с настройками GNOME илиxbindkeys

Я не знаю, как запускать произвольные скрипты с помощью xmodmap. Есть, однако, несколько простых способов.

Из конфигурации i3

В документации i3 есть примеры по используя директивы bindsym/ bindcodeв вашем файле ~/.config/i3/config.

bindcode 214 exec /home/you/some_script.sh

Я еще не настроил i3, не проверял, но прямо от пользователя руководство. Я предполагаю, что коды совпадают с тем, что вы найдете в xmodmapи у друзей.

ГНОМ

Проверьте Настройки > Устройства > Клавиатура > Сочетания клавиш . Нажмите плюс и добавить комбинацию скрипт/ключ. Обратите внимание, что вы должны указать полный путь (от корня )до скрипт и убедитесь, что он исполняемый.

Screen capture of GNOME settings pane for Keyboard Shortcuts

В моем тестировании GNOME не позволяет использовать некоторые клавиши, такие как Home и End.

xbindkeys

xbindkeysможет перехватить любой вместо этого нажмите клавишу и запустите скрипт.

Также просмотрите несколько примеров файлов конфигурации, запустите xbindkeys --defaults > $HOME/.xbindkeysrcи просмотрите файл.

Обратите внимание, что он не открывает терминал, а просто выполняет файл в процессе.

Ваши примеры

Вот фактические команды для выполнения того, что вы хотите. Обязательно подтвердите свое ключевые коды, это как раз то, что у меня есть.

Шаг 1 :Переназначить с помощьюxmodmap

# print screen --> use as another super key, print screen with Mode_switch
# Note: On GNOME, it appears Super_R doesn't work the same as Super_L
xmodmap -e "keycode 107 = Super_L NoSymbol Print Sys_Req"

# left alt --> mode_switch key
xmodmap -e "keycode 64 = Mode_switch NoSymbol"

# escape key --> tilde and backtick
# Note: this can have unexpected consequences if you use `xcape` to map 
# Control/Caps to send Escape when tapped. It will instead send `/~ when you 
# press Caps Lock attempting to get Escape.
# A solution might be to switch the keys around and use a non-op key as a 
# placeholder, like in the xcape README
# https://github.com/alols/xcape/blob/master/README.md#examples
xmodmap -e "keycode 9 = grave asciitilde grave asciitilde"

# original tild and back tick --> backspace
xmodmap -e "keycode 49 = BackSpace"

# backspace --> delete, and
# mode_switch + backspace --> home
xmodmap -e "keycode 22 = Delete NoSymbol Home"

# mode_switch + delete --> end
# Note: This won't work when combined with `xbindkeys`, since `xbindkeys`
# hijacks the entire Delete key from X.
xmodmap -e "keycode 119 = Delete NoSymbol End"

# mode_switch + h, j, k, l --> additional arrow keys
# Bonus: capital J/K are Page Down/Up, H/L are Home/End with Mode_switch + Shift
xmodmap -e "keycode 43 = h H Left Home"
xmodmap -e "keycode 44 = j J Down Next"
xmodmap -e "keycode 45 = k K Up Prior"
xmodmap -e "keycode 46 = l L Right End"

Шаг 2 :Сохранить изменения

# Write current config to a file
xmodmap -pke > ~/.Xmodmap

# Load the config into xmodmap
xmodmap ~/.Xmodmap

Добавление последней команды выше к вашему ~/.profileили ~/.bash_profileбудет загружайте его всякий раз, когда вы входите в систему, при условии, что у вас стандартная настройка. Для меня это было немного медленно, вы можете просто добавить все команды xmodmap -eвручную.

Шаг 3 :Установите привязки для пользовательских сценариев с помощьюxbindkeys

Убедитесь, что xbindkeysустановлен, и добавьте его в свой файл ~/.xbindkeysrc:

# disable home, end, insert, delete keys and map them to run some script, and
"some-script-in-PATH"
  Home
"some-script-in-PATH"
  End
"some-script-in-PATH"
  Insert
"some-script-in-PATH"
  Delete

Затем перезагрузите xbindkeys -p.

Шаг 4 :Шаг 4 отсутствует

Дополнительная литература

Вики-страница Emacs о переназначении
Вики-страница Emacs на xmodmap
Arch Wiki о Xmodmap
Подробнее о режиме _включить StackExchange
Более полное и трудоемкое решение состоит в том, чтобы просто написать свой собственный клавиатура макеты .

-1
02.02.2021, 02:21
1 ответ

Думаю, вы можете быть уверены, что установлен ssh, но не nc. В свете этого вопрос может иметь смысл.

Используйте параметр -p. Например, порт открыт:

$ ssh -p 111 192.168.1.16
ssh_exchange_identification: read: Connection reset by peer

Порт закрыт:

$ ssh -p 112 192.168.1.16
ssh: connect to host 192.168.1.16 port 112: Connection refused
2
18.03.2021, 22:33

Теги

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