Предотвратить приложение для подделки в терминальные настройки?

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

Как @slm обозначенный,' ^[ + [ 'обычная escape-последовательность, но Вы говорите, что имеете'^[ + [ + ['. Когда я просматриваю управляющие коды своего эмулятора терминала, я не вижу кодов, которые являются ESC, сопровождаемым 2 скобками.

Так как ESC является непечатаемым символом, он часто представлен в текстовых редакторах как ^[. Я предполагаю, что кто-то редактировал сценарий профиля, который имел этот управляющий код и пытался скопировать/вставить он на другую систему. Но они скопировали визуальное представление ESC (^[) вместо самого ESC.
Однако это привело бы только к наблюдению ^[[D, нет ^[[[D. Для этого, возможно, скопировать/вставить был сделан путем ввода его вместо этого, и это - опечатка.

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

fgrep -r '[[[' /etc/bashrc /etc/bashrc.d /etc/bash_profile /etc/profile /etc/profile.d ~/.profile ~/.bashrc ~/.bash_profile

После того как Вы нашли его, легко зафиксировать. В vi редактор, просто удалите ^[[ символы и в режиме вставки делают Ctrl + v затем ESC. Это вставит литеральный символ ESC.

2
16.12.2014, 12:04
1 ответ

echo - это настройка терминального устройства (дисциплинарная часть в драйвере ядра tty), termcap - это управление терминалом (реальным или эмулятором) с помощью экранирующих последовательностей, это две отдельные вещи.

Здесь вы хотите, чтобы приложение не выполняло определенную ioctl. Одним из способов может быть отсоединение от терминала.

socat - exec:okular,pty,raw

Будет выполняться okular, прикрепленный к другому псевдотерминальному устройству, и socat будет передавать данные из вашего терминала к этому устройству.

Для передачи произвольных аргументов, с помощью zsh, bash или ksh93:

okular() {
  CODE=$(printf '%q ' exec okular "$@"
        ) socat - 'system:"eval \"$CODE\"",pty,raw'
}
3
27.01.2020, 22:05

Теги

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