Что это: ^[3;J^[H^[2J?

У вас есть вторая машина в сети, с которой вы можете использовать SSH?

Если это так, вы можете войти по ssh и вручную установить libinput в соответствии с этой документацией:

https://wayland.freedesktop.org/libinput/doc/latest/building_libinput.html

Если ssh не подходит, я бы посоветовал загрузиться с CD/USB для восстановления, смонтировать основной раздел и скомпилировать там libinput в соответствии с приведенной выше документацией.

1
30.01.2020, 19:59
1 ответ

Это вывод команды clear

Вы побежали clear. clearсоздал эти управляющие последовательности. (Просто на моей машине они расположены в другом порядке.)

% clear | cat -v ; echo
^[[2J^[[H^[[3J
% 

На терминале ECMA -48 или эмуляторе терминала эти управляющие последовательности стирают дисплей и позиционируют курсор.

% clear | console-decode-ecma48
ED 2
CUP 0
ED 3
% 

Но команда watchинтерпретирует стандартные выходные данные процессов, которые она запускает, и не понимает никаких управляющих последовательностей ECMA -48, кроме одной. Он понимает только некоторые из управляющих символов TTY -37 из 1968 и (, если используется флаг -c)управляющая последовательность SGR из ECMA -48.

Все остальное он передает ncurses, который печатает управляющие символы в нотации каретки. Но из-за ошибки вwatchвторой символ строки нотации вставки сразу перезаписывается, и то, что должно было быть ^[[, выходит как ^[в выводе watch.

… и только команда clear.

Сценарий оболочки вообще не цитируется:

watch -n 10 clear > /dev/pts/0 ; netstat -tupn 2>/dev/null | grep -v 3306 > /dev/pts/0

Итак, это два последовательных конвейера:

watch -n 10 clear > /dev/pts/0
netstat -tupn 2>/dev/null | grep -v 3306 > /dev/pts/0

Перенаправление происходит до запуска команд, и в двух случаях стандартный вывод перенаправляется на псевдотерминал -, который в любом случае был открыт для . Фактически они не являются -операторами :

.
watch -n 10 clear 
netstat -tupn 2>/dev/null | grep -v 3306

Ваша машина делает именно то, что вы ей сказали.

Таким образом, вы повторно просматриваете вывод одной только команды clear, вывод которой не обрабатывается как управляющая последовательность, а просто печатается в виде ломаных знаков вставки.

Выйдите из watch, чтобы выполнить команду netstatодин раз. & #9786;

7
28.04.2021, 23:25

Теги

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