На самом деле я думаю, что ответ здесь лучше, поэтому лучше пометить как dup другой способ
ilkkachu
Ответы:
165
Часто, например, в терминале Unix / Linux (Bash) вы будете использовать команды moreили lessили catдля просмотра файла. Когда вы делаете это, и файл не предназначен для просмотра (например, /bin/ls), вы получите вывод, подобный этому:
Здесь происходит то, что вы только что попытались просмотреть файл, который является программой. Исполняемый файл, который не предназначен для просмотра стандартными средствами просмотра, как я упоминал выше.
метод № 1 - сброс
Чтобы исправить эту проблему, вы можете сделать следующее:
Хит-контроль + C пару раз ( Ctrl+ C)
Введите команду resetи нажмите Return
Это обычно должно вернуть ваш терминал в более нормальный режим. Я упомяну еще одну вещь, когда вы сделаете шаги выше, вы будете вводить их вслепую в свой терминал. Так что просто убедитесь, что вы печатаете правильно.
Способ № 2 - в здравом уме
Как указано в комментариях @sendmoreinfo, вам, возможно, повезет больше, если вы воспользуетесь следующими командами, если вышеприведенное не сработает:
$ stty sane
$ tput rs1
определение типа файлов
Между прочим, если вы натолкнулись на файл и не уверены, что он испортит ваш терминал, вы можете проверить файл с помощью команды, fileкоторая сообщит тип файла.
Например, с /bin/lsэтим файлом отображается следующий вывод:
resetэто не 100% лекарство от конечного безумия. Попробуйте с stty saneпоследующим tput rs1.
sendmoreinfo
@sendmoreinfo - спасибо. Я добавил ваше предложение в ответ. Я использовал, stty saneно никогда tput.
SLM
1
на самом деле, мне нужно больше исследовать это. сброс должен отправить строку rs1. Хороший тест (по крайней мере для xterm) - сделать курсор невидимым и посмотреть, вернет ли его сброс.
sendmoreinfo
4
resetработал в моем случае
code_monk
1
clearтакже работает для легких случаев.
Навин
36
У меня был случай, когда ни одна из обычных уловок resetили stty saneработала (после случайного вызова printPython bytearray). Я имел успех со способом 2, перечисленным в этом полезном блоге .
Я знаю, что это старый, но это единственный ответ выше, который работал для меня! Спасибо
Jredd
Это echo -e "\033c"помогло мне очистить сеанс терминального входа в систему с SSH, который был перепутан после a cat /etc/localtime.
Pro Backup
Это работало с OpenBSD, когда все остальные - нет.
ГВС
1
Дальнейшие эксперименты с screen (1) показали, что принудительная отладка всех сеансов (-D) и последующая выдача команд сброса на базовый экран терминала может решить эту проблему. может также потребоваться переименовать поврежденные имена окон, которые могут повторно отображать те же двоичные данные на терминале, вызывая его повреждение (и затем снова сбрасывать).
математика
1
Мой размер терминала (LINES) был сокращен примерно вдвое после использования vi при подключении к консоли удаленного хоста linux через SOL. Удаленный сеанс имел LINES = 24, тогда как мой локальный сеанс MAC имел LINES = 51. echo -e "\ 033c" работал для меня, но ни одно из других исправлений, которые я пробовал, не помогло ('stty sane', tput rs1, tput sgr0, reset).
Марк
7
Ни один предыдущий ответ не работал для меня. Но, похоже, это помогло .bashrc add:
alias fix='reset; stty sane; tput rs1; clear; echo -e "\033c"'
и затем, когда проблема возникает, напечатайте это (даже если вы, вероятно, не можете видеть это!)
(ctl-c, ctl-c, ctl-c)
fix
Большое спасибо предыдущим заявителям. Кроме того, как примечание, причина того, что ваш терминал работает неправильно при отображении этих исполняемых файлов (или хранилищ ключей и т. Д.), Заключается в том, что эти файлы часто содержат двоичные последовательности, которые являются управляющими кодами. Управляющие коды могут выполнять случайные действия, например переключаться на набор графических символов, устанавливать один и тот же цвет переднего плана и фона и т. Д.
То же самое случилось Ничто не сработало для меня, только этот комбо ...
Правда
1
Я назвал мойsane
kodeninja
4
tmuxпользователи могли бы посылать все эти команды в свою оболочку, но сброс не повышается до tmuxпанели.
Создайте новое окно tmux:
ctrl-B ctmux list-panes
как правило, обратите внимание на номер панели, который, по вашему мнению, не работает 0. Давайте назовем этоPPP
Выберите окно tmux, где XXXуказан номер окна, который не обязательно совпадает с номером панели.
ctrl-B XXXtmux send-key -R -t PPP
Затем вы увидите все команды в других ответах на этот вопрос, которые попали в вашу оболочку, но не сработали! Может быть, слепой tmux send-key -R -t PPPбудет работать, но я не могу проверить.
У меня почти такой же псевдоним, как в предыдущем посте, с одним небольшим изменением ( tput resetвместо rs1) и одной добавленной командой ( setterm -reset):
Ничто из вышеперечисленного не помогло мне. Тем не менее, Джек Уэйси упомянул tmux, поэтому я просто побежал tmux, снова вышел и все вернулось на круги своя.
В дополнение к другим ответам, советующим, как сбросить настройки терминала, я полагал, что коррупцию нельзя избежать, если ее не охранять должным образом. Поэтому я лучше отправлю вывод в простой текстовый конвертер cat -v:
docker logs myjenkinscontainer 2>&1 | cat -v
Просмотр и редактирование двоичных файлов представляется возможным с помощью hexdump -Cи vi -R( :%!xxd -g1для шестнадцатеричного представления и :%!xxd -g1 -rдля сохранения шестнадцатеричных изменений).
reset
.Ответы:
Часто, например, в терминале Unix / Linux (Bash) вы будете использовать команды
more
илиless
илиcat
для просмотра файла. Когда вы делаете это, и файл не предназначен для просмотра (например,/bin/ls
), вы получите вывод, подобный этому:Здесь происходит то, что вы только что попытались просмотреть файл, который является программой. Исполняемый файл, который не предназначен для просмотра стандартными средствами просмотра, как я упоминал выше.
метод № 1 - сброс
Чтобы исправить эту проблему, вы можете сделать следующее:
reset
и нажмите ReturnЭто обычно должно вернуть ваш терминал в более нормальный режим. Я упомяну еще одну вещь, когда вы сделаете шаги выше, вы будете вводить их вслепую в свой терминал. Так что просто убедитесь, что вы печатаете правильно.
Способ № 2 - в здравом уме
Как указано в комментариях @sendmoreinfo, вам, возможно, повезет больше, если вы воспользуетесь следующими командами, если вышеприведенное не сработает:
определение типа файлов
Между прочим, если вы натолкнулись на файл и не уверены, что он испортит ваш терминал, вы можете проверить файл с помощью команды,
file
которая сообщит тип файла.Например, с
/bin/ls
этим файлом отображается следующий вывод:источник
reset
это не 100% лекарство от конечного безумия. Попробуйте сstty sane
последующимtput rs1
.stty sane
но никогдаtput
.reset
работал в моем случаеclear
также работает для легких случаев.У меня был случай, когда ни одна из обычных уловок
reset
илиstty sane
работала (после случайного вызоваprint
Python bytearray). Я имел успех со способом 2, перечисленным в этом полезном блоге .С тех пор я создал самый полезный псевдоним:
источник
echo -e "\033c"
помогло мне очистить сеанс терминального входа в систему с SSH, который был перепутан после acat /etc/localtime
.Ни один предыдущий ответ не работал для меня. Но, похоже, это помогло .bashrc add:
и затем, когда проблема возникает, напечатайте это (даже если вы, вероятно, не можете видеть это!)
Большое спасибо предыдущим заявителям. Кроме того, как примечание, причина того, что ваш терминал работает неправильно при отображении этих исполняемых файлов (или хранилищ ключей и т. Д.), Заключается в том, что эти файлы часто содержат двоичные последовательности, которые являются управляющими кодами. Управляющие коды могут выполнять случайные действия, например переключаться на набор графических символов, устанавливать один и тот же цвет переднего плана и фона и т. Д.
источник
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
):источник
Ничто из вышеперечисленного не помогло мне. Тем не менее, Джек Уэйси упомянул tmux, поэтому я просто побежал
tmux
, снова вышел и все вернулось на круги своя.источник
В дополнение к другим ответам, советующим, как сбросить настройки терминала, я полагал, что коррупцию нельзя избежать, если ее не охранять должным образом. Поэтому я лучше отправлю вывод в простой текстовый конвертер
cat -v
:Просмотр и редактирование двоичных файлов представляется возможным с помощью
hexdump -C
иvi -R
(:%!xxd -g1
для шестнадцатеричного представления и:%!xxd -g1 -r
для сохранения шестнадцатеричных изменений).источник