showkey-s не отображает scancodes в CentOS 6.4

Кажется, что вы хотите получить информацию только из списка файлов в runlist'е. Вы можете:

grep <info> -- $(cat runlist)
1
23.05.2017, 15:40
2 ответа

Попробуйте проинструктировать бродягу заставить выделение TTY.

$ vagrant ssh -- -ttt ...

Я нашел это как комментарий к этому запросу ServerFault Q & A под названием: Интерактивные команды с брунтным SSH. Backspace не стирает символ .

0
27.01.2020, 23:52

Это не работает, потому что showkey просто открывает первое тестируемое им специальное устройство (из жесткого списка), которое оказывается терминал. Вот список, который он использует (цитируется из версии 1.15 ):

static char *conspath[] = {
        "/proc/self/fd/0",
        "/dev/tty",
        "/dev/tty0",
        "/dev/vc/0",
        "/dev/systty",
        "/dev/console",
        NULL
};

Когда вы подключаетесь через ssh, первые два являются псевдотерминалами, не проходите последующий тест, который пытается определить, действительно ли они виртуальные. консоли. Но первый - это терминал, связанный с вашей оболочкой. Открывая другой терминал, вы получаете неожиданное эхо и т. Д.

Когда вы запускаете showkey -s , он изменяет режим ввода-вывода терминала, используя файловый дескриптор, который он получает при открытии устройства ( который, кстати, 3 отличается от стандартного ввода 0 ). Это эквивалентно тому, что терминал

stty -icanon -echo -isig

showkey изменяет терминал ( 3 ), который вы (вероятно) не вводите, и отображает результат на вашем терминале. Исходный стандартный ввод для showkey все еще использует исходный режим ввода; обновленный режим ввода применяется к другому терминалу.

Такое поведение не является ошибкой в ​​ showkey , поскольку оно может получать коды сканирования только с виртуальной консоли. Если вы не собираетесь вводить tty0 , вы не получите ожидаемого результата. Он мог бы быть лучше, если бы более четко сказал вам, что вы не получите полезных результатов.

1
27.01.2020, 23:52

Теги

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