Я попробовал команду catс исполняемым файлом:
cat /bin/ls
Теперь я не могу прочитать ни слова в этом терминале (консоль Linux). Как я могу это исправить?
Я попробовал команду catс исполняемым файлом:
cat /bin/ls
Теперь я не могу прочитать ни слова в этом терминале (консоль Linux). Как я могу это исправить?
Ответы:
Часто, например, в терминале Unix / Linux (Bash) вы будете использовать команды moreили lessили catдля просмотра файла. Когда вы делаете это, и файл не предназначен для просмотра (например, /bin/ls), вы получите вывод, подобный этому:

Здесь происходит то, что вы только что попытались просмотреть файл, который является программой. Исполняемый файл, который не предназначен для просмотра стандартными средствами просмотра, как я упоминал выше.
Чтобы исправить эту проблему, вы можете сделать следующее:
resetи нажмите ReturnЭто обычно должно вернуть ваш терминал в более нормальный режим. Я упомяну еще одну вещь, когда вы сделаете шаги выше, вы будете вводить их вслепую в свой терминал. Так что просто убедитесь, что вы печатаете правильно.
Как указано в комментариях @sendmoreinfo, вам, возможно, повезет больше, если вы воспользуетесь следующими командами, если вышеприведенное не сработает:
$ stty sane
$ tput rs1
Между прочим, если вы натолкнулись на файл и не уверены, что он испортит ваш терминал, вы можете проверить файл с помощью команды, fileкоторая сообщит тип файла.
Например, с /bin/lsэтим файлом отображается следующий вывод:
$ file /bin/ls
/bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, stripped
resetэто не 100% лекарство от конечного безумия. Попробуйте с stty saneпоследующим tput rs1.
stty saneно никогда tput.
resetработал в моем случае
clearтакже работает для легких случаев.
У меня был случай, когда ни одна из обычных уловок resetили stty saneработала (после случайного вызова printPython bytearray). Я имел успех со способом 2, перечисленным в этом полезном блоге .
С тех пор я создал самый полезный псевдоним:
alias fix='echo -e "\033c"'
echo -e "\033c"помогло мне очистить сеанс терминального входа в систему с SSH, который был перепутан после a cat /etc/localtime.
Ни один предыдущий ответ не работал для меня. Но, похоже, это помогло .bashrc add:
alias fix='reset; stty sane; tput rs1; clear; echo -e "\033c"'
и затем, когда проблема возникает, напечатайте это (даже если вы, вероятно, не можете видеть это!)
(ctl-c, ctl-c, ctl-c)
fix
Большое спасибо предыдущим заявителям. Кроме того, как примечание, причина того, что ваш терминал работает неправильно при отображении этих исполняемых файлов (или хранилищ ключей и т. Д.), Заключается в том, что эти файлы часто содержат двоичные последовательности, которые являются управляющими кодами. Управляющие коды могут выполнять случайные действия, например переключаться на набор графических символов, устанавливать один и тот же цвет переднего плана и фона и т. Д.
sane
tmuxпользователи могли бы посылать все эти команды в свою оболочку, но сброс не повышается до tmuxпанели.
Создайте новое окно tmux:
ctrl-B c
tmux list-panes
как правило, обратите внимание на номер панели, который, по вашему мнению, не работает 0. Давайте назовем этоPPP
Выберите окно tmux, где XXXуказан номер окна, который не обязательно совпадает с номером панели.
ctrl-B XXX
tmux send-key -R -t PPP
Затем вы увидите все команды в других ответах на этот вопрос, которые попали в вашу оболочку, но не сработали! Может быть, слепой tmux send-key -R -t PPPбудет работать, но я не могу проверить.
У меня почти такой же псевдоним, как в предыдущем посте, с одним небольшим изменением ( tput resetвместо rs1) и одной добавленной командой ( setterm -reset):
alias clr='echo -e "\033c" ; stty sane; setterm -reset; reset; tput reset; clear'
В дополнение к другим ответам, советующим, как сбросить настройки терминала, я полагал, что коррупцию нельзя избежать, если ее не охранять должным образом. Поэтому я лучше отправлю вывод в простой текстовый конвертер cat -v:
docker logs myjenkinscontainer 2>&1 | cat -v
Просмотр и редактирование двоичных файлов представляется возможным с помощью hexdump -Cи vi -R( :%!xxd -g1для шестнадцатеричного представления и :%!xxd -g1 -rдля сохранения шестнадцатеричных изменений).
reset.