Bash игнорирует нажатие клавиши после нажатия клавиши Escape

У вас нет IP-адреса, с помощью которого вы можете исследовать внешний мир.

Если вы хотите получить доступ к 8.8.8.8, вам потребуется IP-адрес IPv4. Это будет отображаться как:

3: wlan0:  mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether dc:a9:71:04:30:ee brd ff:ff:ff:ff:ff:ff
    inet 192.168.178.20/24 brd 192.168.178.255 scope global wlan0
       valid_lft forever preferred_lft forever

в вашем выводе ip addr. Так что нет IPv4-адреса.

У вас также нет IPv6-адреса, который можно использовать во внешнем мире. Ваш адрес FE80 -не пройдет мимо вашего первого маршрутизатора. Вероятно, в вашей сети нет маршрутизатора IPv6 (, по крайней мере, такого, который использует автоконфигурацию без сохранения состояния ).

В ваших журналах также указано, что ваш dhcpcd не получает IP-адрес. Из комментариев я так понял, что ваш провайдер должен выдавать вам IP по DHCP. Хотя маршрутизатор может использовать DHCP, почти каждый в крупной сети использует отдельный сервер DHCP -. Это позволяет им сохранять централизованный контроль над IP-адресами, а также упрощает автоматическое обновление их DNS. Мы используем Infoblox, но есть и другие.

Все, что делает маршрутизатор, — это преобразовывает ваши запросы DHCP, широковещательные в локальной сети, в одноадресные запросы к вашему DHCP-серверу. (ссылаться на собственный сайт — плохая привычка,ноhttps://ljm.home.xs4all.nl/dhcp/index.htmlдает некоторое объяснение)

-2
02.03.2021, 19:22
3 ответа

Это нормальное/ожидаемое поведение для терминала ANSI.

Когда вы набираете Esc , терминал начинает обрабатывать возможную управляющую последовательность ANSI (, если вы продолжали набирать [ , а затем A курсор поднимется ).

Итак, после Escтерминал ожидает следующего символа в последовательности, если он не принадлежит известной последовательности то прекращает обработку, но как Escтак и следующий введенный вами символ будет потерян (они были частью недопустимой последовательности,и поэтому отбрасываются ).

Как это остановить? Одна вещь, которую вы можете сделать, это изменить время ожидания между символами для терминала, вызвав, например, timeout()из программы. См. это:

While interpreting an input escape sequence, wgetch sets a timer while waiting for the next character. If notimeout(win, TRUE) is called, then wgetch does not set a timer. The purpose of the timeout is to differentiate between sequences received from a function key and those typed by a user.

2
18.03.2021, 22:27

Проверьте файл bashrc и найдите строку set -o viи измените на set -o emacs, если проблемы все еще существуют, и вы используете эмулятор терминала, такой как alacrity, который имеет собственный встроенный режим vim, возможно, вам придется изменить конфигурацию эмуляторов. также.

РЕДАКТИРОВАТЬ :Это наиболее распространенный способ установки, но если у вас есть файл inputrc, его также можно использовать для установки режима vi, если у вас есть файл inputrc, команда будет set editing-mode vi, если этот файл и строка существующий, просто закомментируйте или удалите строку.

1
18.03.2021, 22:27

Нажатие escape с последующим нажатием другой клавиши (во многих эмуляторах терминала )обрабатывается как альтернативное средство отправки нажатия клавиши Alt+Key. Например, Esc , A совпадает с Alt + A . Таким образом, первое нажатие клавиши после нажатия escape нередко «теряется», поскольку на самом деле оно не теряется, а отправляется не так, как вы могли бы ожидать.

0
18.03.2021, 22:27

Теги

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