En realidad, creo que las respuestas aquí son mejores, así que mejor marque como dup a la inversa
ilkkachu
Respuestas:
165
Muchas veces cuando se encuentra en una terminal de Unix / Linux (Bash), por ejemplo, que va a utilizar los comandos moreo lesso catver un archivo. Cuando haces esto y el archivo no está destinado a ser visto (como /bin/ls), obtendrás una salida como esta:
Lo que está sucediendo aquí es que acabas de intentar ver un archivo que es un programa. Un ejecutable que no está destinado a ser visto con los espectadores estándar como mencioné anteriormente.
método # 1 - restablecer
Para solucionar este problema, puede hacer lo siguiente:
Presiona Control + C un par de veces ( Ctrl+ C)
Escribe el comando resety presiona regresar
Esto generalmente debería volver a poner su terminal en un modo más normal. Mencionaré una cosa más, cuando sigas los pasos anteriores, los escribirás a ciegas en tu terminal. Así que solo asegúrate de escribirlo correctamente.
método # 2 - stty cuerdo
Como se sugiere en los comentarios de @sendmoreinfo, es posible que tengas más suerte usando los siguientes comandos si lo anterior no funciona:
$ stty sane
$ tput rs1
determinar el tipo de un archivo
Por cierto, si te encuentras con un archivo y no estás seguro de si va a estropear tu terminal, puedes inspeccionar el archivo usando el comando fileque informará el tipo de archivo que es.
Por ejemplo, con /bin/lsese archivo se muestra el siguiente resultado:
resetNo es una cura al 100% para la locura terminal. Intenta stty saneseguido por tput rs1.
sendmoreinfo
@sendmoreinfo: gracias. Agregué su sugerencia a la respuesta. Lo había usado stty sanepero nunca tput.
slm
1
en realidad, necesito investigar esto más. Se supone que reset debe enviar la cadena rs1. Una buena prueba (para xterm, al menos) es hacer que el cursor sea invisible y ver si el restablecimiento lo recupera.
sendmoreinfo
44
resetfuncionó en mi caso
code_monk
1
clearTambién funciona para casos leves.
Navin
36
He tenido una ocasión en la que ninguno de los trucos habituales, reseto stty sane, funcionó (después de llamar accidentalmente printa un python bytearray). Tuve éxito con el método 2 que aparece en este útil blog .
Sé que esto es viejo, ¡pero esta es la única respuesta anterior que funcionó para mí! Gracias
jredd
Esto echo -e "\033c"me ayudó a limpiar una sesión de terminal de inicio de sesión SSH confusa de caracteres que se mezcló después de a cat /etc/localtime.
Pro Backup
Esto funcionó con OpenBSD, cuando todos los demás no lo hicieron.
ACS
1
una mayor experimentación con la pantalla (1) descubrió que la desconexión forzada de todas las sesiones (-D) y luego la emisión de los comandos de reinicio a la pantalla del terminal subyacente, podría solucionar el problema. También es posible que deba cambiar el nombre de los nombres de ventanas corruptos que pueden volver a mostrar los mismos datos binarios en el terminal, lo que hace que se dañen (y luego se restablecen una vez más).
matemáticas
1
El tamaño de mi terminal (LÍNEAS) se redujo aproximadamente a la mitad después de usar vi mientras me conectaba a la consola de un host remoto de Linux a través de SOL. La sesión remota tenía LINES = 24 mientras que mi sesión MAC local tenía LINES = 51. echo -e "\ 033c" funcionó para mí, pero ninguna de las otras soluciones que probé funcionó ('stty sane', tput rs1, tput sgr0, reset).
Mark
7
Ninguna respuesta previa única funcionó para mí. Pero esto parecía hacer el truco en .bashrc add:
alias fix='reset; stty sane; tput rs1; clear; echo -e "\033c"'
y luego, cuando ocurra el problema, escriba esto (¡aunque probablemente no pueda verlo!)
(ctl-c, ctl-c, ctl-c)
fix
Muchas gracias a los remitentes anteriores. Además, como nota al margen, la razón por la cual su terminal se vuelve inestable al mostrar esos archivos ejecutables (o almacenes de claves, etc.) es que esos archivos a menudo contienen secuencias binarias que son códigos de control. Los códigos de control pueden hacer cosas aleatorias como cambiar a un conjunto de caracteres gráficos, establecer los colores de primer plano y de fondo en la misma cosa, etc.
Lo mismo sucedió Nada funcionó para mí, solo este combo ...
Verdadero
1
Llamé a misane
qodeninja
4
tmuxlos usuarios pueden enviar todos estos comandos a su shell, pero el restablecimiento no se eleva al tmuxpanel.
Crear nueva ventana de tmux:
ctrl-B ctmux list-panes
tenga en cuenta el número de panel que cree que está borked, por lo general 0. Vamos a llamarloPPP
Seleccione la ventana tmux, donde XXXestá el número de la ventana que está borked, no necesariamente el mismo que el número del panel.
ctrl-B XXXtmux send-key -R -t PPP
Luego verá todos los comandos en las otras respuestas a esta pregunta que llegó a su shell, ¡pero no funcionó! Tal vez una ciega tmux send-key -R -t PPPfuncione, pero no puedo probar.
Además de otras respuestas que aconsejan cómo restablecer el terminal, pensé que la corrupción no se puede evitar a menos que esté debidamente protegida. Así que mejor envío la salida a un simple conversor de texto cat -v:
docker logs myjenkinscontainer 2>&1 | cat -v
Ver y editar archivos binarios parece posible con hexdump -Cy vi -R( :%!xxd -g1para una vista hexadecimal y :%!xxd -g1 -rpara guardar los cambios hexadecimales).
reset
.Respuestas:
Muchas veces cuando se encuentra en una terminal de Unix / Linux (Bash), por ejemplo, que va a utilizar los comandos
more
oless
ocat
ver un archivo. Cuando haces esto y el archivo no está destinado a ser visto (como/bin/ls
), obtendrás una salida como esta:Lo que está sucediendo aquí es que acabas de intentar ver un archivo que es un programa. Un ejecutable que no está destinado a ser visto con los espectadores estándar como mencioné anteriormente.
método # 1 - restablecer
Para solucionar este problema, puede hacer lo siguiente:
reset
y presiona regresarEsto generalmente debería volver a poner su terminal en un modo más normal. Mencionaré una cosa más, cuando sigas los pasos anteriores, los escribirás a ciegas en tu terminal. Así que solo asegúrate de escribirlo correctamente.
método # 2 - stty cuerdo
Como se sugiere en los comentarios de @sendmoreinfo, es posible que tengas más suerte usando los siguientes comandos si lo anterior no funciona:
determinar el tipo de un archivo
Por cierto, si te encuentras con un archivo y no estás seguro de si va a estropear tu terminal, puedes inspeccionar el archivo usando el comando
file
que informará el tipo de archivo que es.Por ejemplo, con
/bin/ls
ese archivo se muestra el siguiente resultado:fuente
reset
No es una cura al 100% para la locura terminal. Intentastty sane
seguido portput rs1
.stty sane
pero nuncatput
.reset
funcionó en mi casoclear
También funciona para casos leves.He tenido una ocasión en la que ninguno de los trucos habituales,
reset
ostty sane
, funcionó (después de llamar accidentalmenteprint
a un python bytearray). Tuve éxito con el método 2 que aparece en este útil blog .Desde entonces he creado un alias más útil:
fuente
echo -e "\033c"
me ayudó a limpiar una sesión de terminal de inicio de sesión SSH confusa de caracteres que se mezcló después de acat /etc/localtime
.Ninguna respuesta previa única funcionó para mí. Pero esto parecía hacer el truco en .bashrc add:
y luego, cuando ocurra el problema, escriba esto (¡aunque probablemente no pueda verlo!)
Muchas gracias a los remitentes anteriores. Además, como nota al margen, la razón por la cual su terminal se vuelve inestable al mostrar esos archivos ejecutables (o almacenes de claves, etc.) es que esos archivos a menudo contienen secuencias binarias que son códigos de control. Los códigos de control pueden hacer cosas aleatorias como cambiar a un conjunto de caracteres gráficos, establecer los colores de primer plano y de fondo en la misma cosa, etc.
fuente
sane
tmux
los usuarios pueden enviar todos estos comandos a su shell, pero el restablecimiento no se eleva altmux
panel.Crear nueva ventana de tmux:
ctrl-B c
tmux list-panes
tenga en cuenta el número de panel que cree que está borked, por lo general0
. Vamos a llamarloPPP
Seleccione la ventana tmux, donde
XXX
está el número de la ventana que está borked, no necesariamente el mismo que el número del panel.ctrl-B XXX
tmux send-key -R -t PPP
Luego verá todos los comandos en las otras respuestas a esta pregunta que llegó a su shell, ¡pero no funcionó! Tal vez una ciega
tmux send-key -R -t PPP
funcione, pero no puedo probar.fuente
Tengo casi el mismo alias que la publicación anterior, con un pequeño cambio (en
tput reset
lugar ders1
) y un comando agregado (setterm -reset
):fuente
Nada de lo anterior me ayudó. Sin embargo, Jack Wasey mencionó tmux, así que simplemente corrí
tmux
, salí nuevamente y todo volvió a la normalidad.fuente
Además de otras respuestas que aconsejan cómo restablecer el terminal, pensé que la corrupción no se puede evitar a menos que esté debidamente protegida. Así que mejor envío la salida a un simple conversor de texto
cat -v
:Ver y editar archivos binarios parece posible con
hexdump -C
yvi -R
(:%!xxd -g1
para una vista hexadecimal y:%!xxd -g1 -r
para guardar los cambios hexadecimales).fuente