Как я перехожу к следующему или предыдущему слову с CTRL + клавиши со стрелками в консоли?

Это не ssh клиент, который решает, через который должны пойти пакеты интерфейса TCP, это - ядро. Короче говоря, SSH просит, чтобы ядро открыло соединение с определенным IP-адресом, и ядро решает, какой интерфейс должен использоваться путем консалтинга с таблицами маршрутизации.

(Следующее предполагает, что Вы находитесь на GNU/Linux; общее понятие является тем же для всех Нельдов, но специфические особенности команд для выполнения и способ, которым отформатирован вывод, могут варьироваться.)

Можно отобразить таблицы маршрутизации ядра с маршрутом команд-n и/или IP шоу маршрута.

OpenConnect должен был добавить строку для tun0 интерфейс; соединения с любым адресом, соответствующим той строке, будут направлены через тот интерфейс. Например, выполнение route -n на моем ноутбуке я получаю следующий вывод:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.30.0.1       0.0.0.0         UG    0      0        0 eth0
10.30.0.0       0.0.0.0         255.255.255.0   U     1      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 eth0
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0

Это означает, что соединения с хостами в 192.168.122.0/24 (т.е. адресует 192.168.122.0 к 192.168.122.255 согласно нотации CIDR) сеть будут направлены через интерфейс virbr0; те, которые к 169.254.0.0/16 и 10.30.0.0/24, пройдут eth0, и что-либо еще (0.0.0.0 строки) будет направлено через eth0 к хосту шлюза 10.30.0.1.

10
04.05.2011, 15:01
5 ответов

Это возможно, если и только если терминал отправляет различные escape-последовательности за Ctrl+Left по сравнению с Левым. Дело обстоит не так по умолчанию на консоли Linux (по крайней мере, на моей машине). Можно сделать его так путем изменения контурной карты. Точный файл для изменения может зависеть от распределения; на Debian lenny файл для изменения /etc/console/boottime.kmap.gz. Вам нужны строки как

control keycode 105 = F100
string F100 = "\033O5D"
control keycode 106 = F101
string F101 = "\033O5C"

Вы могли бы также выбрать те же escape-последовательности в качестве своих X эмуляторов терминала. Для обнаружения, какова управляющая последовательность введите Ctrl+V Ctrl+Left в оболочке; это вставляет (на моей машине) ^[O5D где ^[ символ ESC. В файле контурной карты, \033 представляет символ ESC.

Конфигурирование приложения в терминале для декодирования escape-последовательности является отдельной проблемой.

8
27.01.2020, 19:59
  • 1
    , который Вы только объясняете, как Вы добрались "\033O5D" код, но полностью исключение, где Вы добрались keycode 105 и F100 коды от. Кроме того, я добираюсь ^[[1;5B и ^[[1;5A для ctrl+Down и Ctrl+Up. Как я должен обработать 1; часть? –  Martin Vegter 20.04.2016, 13:08
  • 2
    @MartinVegter существующий файл для кодов клавиши или используйте showkey программа. 1; часть не отличается от остальных: "\033[1;5B" и так далее. –  Gilles 'SO- stop being evil' 20.04.2016, 13:29
  • 3
    OK keycode 105 может быть найден с помощью showkey. Но где Вы добирались F100 ? –  Martin Vegter 20.04.2016, 13:44
  • 4
    @MartinVegter, который уже не используется. Другой на keychord (я просто зафиксировал опечатку в своем ответе). –  Gilles 'SO- stop being evil' 20.04.2016, 15:01

Высокий звук ярлыков Emacs-стиля + f, Высокий звук + b работает по умолчанию со всеми readline-приводимыми-в-действие программами командной строки, как оболочки.

24
27.01.2020, 19:59

Можно установить энергию как редактор командной строки и затем поразить ESC и переход вокруг стиля энергии (вперед, назад, конец, $, 0, и т.д.)

2
27.01.2020, 19:59

У меня была эта проблема в Debian с пустым ~ / .inputrc файл. Устранена проблема удалением этого файла.

-1
27.01.2020, 19:59

Это не с контрол + стрелки, но я могу набрать EscB чтобы вернуться на слово назад и EscF чтобы перейти на слово вперед в моем терминале Mac.

1
20.08.2021, 13:38

Теги

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