Al utilizar el comando cat en una terminal Linux (especialmente dentro de tmux) para mostrar un archivo, si este es binario, pueden aparecer caracteres extraños y corruptos en la línea de comandos, incluyendo el prompt. Este fenómeno ocurre cuando la interpretación de la terminal se ve alterada por datos binarios.
Causa del problema
La situación se produce porque la terminal interpreta bytes del archivo binario como secuencias de control VT100/ANSI o reglas de combinación UTF-8. Esto provoca:
- La ejecución de secuencias de control que pueden cambiar el juego de caracteres, los colores o incluso activar modos gráficos
- El shell (bash) y tmux dibujan el prompt en este estado alterado
- La apariencia de caracteres extraños como "┴e┼┴" que en realidad son símbolos gráficos
Importante: este problema afecta solo al estado visual de la terminal, no al sistema de archivos ni al shell.
Soluciones inmediatas
Método 1: Comando reset
La solución más sencilla es utilizar el comando reset:
# Presiona Enter para asegurar que estás en una nueva línea
reset
El comando reset envía secuencias de reinicio completas y configuraciones de juego de caracteres por defecto, restaurando el estado original de la terminal.
Método 2: Secuencia manual de reinicio
Si el comando reset no está disponible, puedes enviar manualmente una secuencia de escape:
echo -e '\033c'
Método 3: Reiniciar el panel de tmux
Otra opción es simplemente salir del penel o ventana actual de tmux y abrir uno nuevo, lo que creará una terminal completamente limpia.
Prevención de futuros incidentes
Verificar tipo de archivo
Antes de intentar visualizar un archivo desconocido, utiliza el comando file para determinar su tipo:
archivo_desconocido.bin
Alternativas a cat para archivos binarios
Evita usar cat directamente con archivos que no son de texto. Considera estas alternativas:
# Utilizando less (detecta automáticamente archivos binarios)
menos archivo_desconocido.bin
# Visualización en hexadecimal con xxd
xxd archivo_desconocido.bin | menos
# Otra opción con od
od -c archivo_desconocido.bin | menos
Uso de herramientas especializadas
Para inspeccionar el contenido real de archivos binarios, herramientas como hexdump -C o xxd son más adecuadas que cat:
hexdump -C archivo_desconocido.bin | head -n 20
Conclusión
La interpretación incorrecta de bytes binarios como códigos de control causa la corrupción visual en la terminal. El comando reset o la apertura de un nuevo panel en tmux resuelven el problema inmediatamente sin necesidad de reiniciar el sistema.