Intenté el comando cat
con un archivo ejecutable:
cat /bin/ls
Ahora no puedo leer ninguna palabra en este terminal (consola de Linux). ¿Cómo puedo arreglarlo?
Intenté el comando cat
con un archivo ejecutable:
cat /bin/ls
Ahora no puedo leer ninguna palabra en este terminal (consola de Linux). ¿Cómo puedo arreglarlo?
Respuestas:
Muchas veces cuando se encuentra en una terminal de Unix / Linux (Bash), por ejemplo, que va a utilizar los comandos more
o less
o cat
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.
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.
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
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:
$ 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
No es una cura al 100% para la locura terminal. Intenta stty sane
seguido por tput rs1
.
stty sane
pero nunca tput
.
reset
funcionó en mi caso
clear
También funciona para casos leves.
He tenido una ocasión en la que ninguno de los trucos habituales, reset
o stty sane
, funcionó (después de llamar accidentalmente print
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:
alias fix='echo -e "\033c"'
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
.
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.
sane
tmux
los usuarios pueden enviar todos estos comandos a su shell, pero el restablecimiento no se eleva al tmux
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 general 0
. 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.
Tengo casi el mismo alias que la publicación anterior, con un pequeño cambio (en tput reset
lugar de rs1
) y un comando agregado ( setterm -reset
):
alias clr='echo -e "\033c" ; stty sane; setterm -reset; reset; tput reset; clear'
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 -C
y vi -R
( :%!xxd -g1
para una vista hexadecimal y :%!xxd -g1 -r
para guardar los cambios hexadecimales).
reset
.