GNU/Linux >> Tutoriales Linux >  >> Linux

¿Por qué no puedo desplazarme en la terminal?

Para reinicializar el terminal, un simple reset arreglará esto. Para obtener más información y opciones, man reset


La respuesta de @James Henstridge a esta pregunta de AskUbuntu parece identificar el error correctamente, ya que el terminal se atasca en un modo de "direccionamiento del cursor", lo que sea que eso signifique.

Su primera solución, el comando $ tput rmcup , funciona, aunque no hay mucho en el camino de la explicación. Entonces, traté de averiguarlo.

man tput nos dice que

El tput utilidad utiliza el terminfo base de datos para hacer que los valores de las capacidades e información dependientes del terminal estén disponibles para el shell (consulte sh(1)), para inicializar o restablecer el terminal, o devolver el nombre largo del tipo de terminal solicitado.

terminfo tampoco está muy útilmente documentado. La fuente más completa que puedo encontrar es un artículo de tldp.org. Evidentemente terminfo es una base de datos de diferentes terminales y qué comandos y capacidades tienen. ¿Presumiblemente cada instalación de Linux tiene una? Entonces, ¿puedes usar diferentes terminales?

man terminfo indica que sus archivos están en /etc/terminfo/*/* , pero en Ubuntu 16.04 solo encontré un README allí. Los archivos reales están en /lib/terminfo/*/*; p.ej. /lib/terminfo/l/linux , ¿cuál es probablemente el archivo más relevante para la mayoría de los lectores? No puedo decirlo, porque estos archivos no son legibles por humanos. El artículo de tldp.org vinculado anteriormente establece que infocmp se puede usar para ver su fuente, pero eso no es cierto:

$ infocmp /lib/terminfo/l/linux
infocmp: couldn't open terminfo file /lib/terminfo/l/linux.

El artículo también menciona archivos de código fuente /etc/termcap y /etc/terminfo.src , pero estos no existen en Ubuntu 16.04. Encontré un conjunto de /usr/share/vte/termcap*/ directorios que contienen xterm legible por humanos archivos Tendría que adivinar que todo esto se conecta a la terminal de GNOME que estoy usando, que es la predeterminada para Ubuntu, pero estoy cansado de tratar de averiguar cómo.

El man página para terminfo Sin embargo, tiene una jota más útil. Debajo de sus 'Capacidades predefinidas' hay una 'Cadena variable' exit_ca_mode con 'capname' ("nombre de la capacidad", supongo) rmcup con la descripción strings to end programs using cup . La descripción no es muy útil, pero el nombre de la variable sí; esto debe referirse a la capacidad de una terminal para salir del 'modo de direccionamiento del cursor', que es en lo que está atascada la terminal.

Entonces, $ tput rmcup debe usar tput para acceder al terminfo base de datos y active el exit_ca_mode del terminal actual capacidad rmcup , que elimina el modo de direccionamiento del cursor y devuelve el terminal a su comportamiento de desplazamiento normal.


Linux
  1. ¿Por qué (y cómo) el uso de Cat en archivos binarios arruinó la terminal?

  2. ¿Dónde está el archivo de encabezado <conio.h> en Linux? ¿Por qué no puedo encontrar <conio.h>?

  3. ¿Cómo puedo ver el atributo WMClass de una ventana en Xorg (linux)?

  4. ¿Cómo puedo evitar o interrumpir copiar/pegar accidentalmente en la terminal?

  5. ¿Cómo puedo verificar qué definiciones de terminal están disponibles?

Por qué uso rxvt como mi terminal

La línea de comandos de Linux puede traer diversión desde lejos

Mira videos de YouTube en la terminal de Linux

Por qué todavía me encanta Alpine para el correo electrónico en la terminal de Linux

¿Por qué se requiere el segmento .bss?

¿Cómo verificar HZ en la terminal?