Я попробовал команду 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
работала (после случайного вызова print
Python 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
.