Как использовать «\M -\C -» в качестве префикса последовательности клавиш при определении привязок клавиш с помощью Readline в Bash?

Редактировать 2

Порт был закрыт, потому что его никто не прослушивал:)

Редактировать 1

Порядок в списке важен, но KUBE -FIREWALL отбрасывает только отмеченные пакеты. Я пропустил mark match 0x8000/0x8000в конце правила. Поэтому он должен работать. Я предполагаю, что это одно из правил cali (или fail2ban? )требует порт 443. Без полного вывода iptables это невозможно узнать.

---Исходный ответ ниже---

Да, TCP имеет более низкий приоритет, потому что он находится ниже в списке. Цепочка KUBE -FIREWALL не только оценивается перед вашей цепочкой TCP, но и заканчивается правилом, которое отбрасывает весь оставшийся трафик. Поэтому ваше правило TCP никогда не оценивается.

Вы можете вставить точку входа в цепочку TCP над цепочкой KUBE -FIREWALL, используя iptables -I INPUT..., или вставить ее над определенным номером строки, используя iptables -I INPUT 2...(, чтобы вставить над строкой 2 ). Вы можете увидеть номера строк, добавив номера строк ---к вашей команде iptables.(iptables -nvL --line-numbers)

0
29.01.2021, 10:34
1 ответ

Вы не можете использовать \M-, потому что он сломан. Продолжайте использовать \eдля префикса Meta/Alt.

Использование \M-в привязках readline не работает надежно с эмуляторами терминала, которые добавляют символ ESC(\x1b)вместо включения старшего бита при нажатии Meta/Alt и/или с UTF -8 языков (оба из которых обычно используются по умолчанию в большинстве современных систем [1] ).

С некоторыми версиями bash (, например. 5.0, но не новее 5.1), использование \C-\M-работает иначе, чем \M-\C-, поэтому простое использование \C-\M-kвместо \M-\C-kможет фактически делать то, что вы хотите --, пока следующее обновление;-)

bash-5.0$ bind '"\C-\M-k": shell-backward-kill-word'
bash-5.0$ bind '"\M-\C-k": shell-kill-word'
bash-5.0$ bind -p | grep -a shell-.*kill-word
"\e\C-k": shell-backward-kill-word
"\213": shell-kill-word

[1] :не с xterm, где вам нужно что-то вроде XTerm*VT100.metaSendsEscape: trueв вашем ~/.Xresources.

3
18.03.2021, 22:33

Теги

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