La mayor parte de la pregunta está en el título, pero para explicar un poco:
En la mayoría de Linux que puedo find /usr/share/terminfo -type f
. Pero en la máquina Solaris que tengo cerca, este directorio ni siquiera existe.
Podría iterar sobre una lista de terminales y hacer algo como:
for TERM in xterm xtermc xterm-color xterm-256color screen rxvt
do
tput cols >/dev/null 2>/dev/null && echo "$TERM available"
done
Pero es lento. ¿Alguna opción para descubrir la ruta utilizada por tput
las definiciones de terminal y ejecutar "find" yo mismo?
El programa infocmp en "cualquier" sistema que admite terminfo muestra el nombre de ruta donde encuentra la descripción del terminal para el terminal actual. Por ejemplo (AIX en este caso):
Para ncurses, es más complicado, porque puede tener múltiples bases de datos terminfo, y las entradas no necesitan ser archivos individuales. El valor predeterminado es una sola base de datos y un archivo por entrada , por compatibilidad con los sistemas Unix.
La
-D
opción para tic e infocmp (agregado a fines de 2011 ) es una forma de mostrar la información adicional. Por ejemplo, en mi Debian7, puedo ver esto:En mi máquina FreeBSD 10, uso bases de datos hash:
Alternativamente, uno puede usar el
toe
programa para producir un informe de todas las entradas de terminal disponibles. El uso de las opciones-s
y le-a
permite combinar cosas (como elconflict
programa):fuente
En Linux puede usar
strace
para ver qué llamadas al sistema usa un programa. Lo siguiente enumerará todas las llamadas al sistema "abierto (2)" y las filtrarásed
para mostrar, con suerte, el archivo terminfo utilizadotput
para traducir la capacidad terminfo para el terminal actual.Tenga en cuenta que esa expresión sed supone que sus archivos terminfo se almacenan en una ruta con el patrón "terminfo". Si eso le preocupa, podría usar una suposición diferente y elegir la última llamada del sistema "abierta".
Finalmente, puede volcar la lista de rutas de búsqueda de terminfo usando
infocmp -D
otic -D
. Estos enumerarán sus rutas de búsqueda terminfo compiladas. Estos son los mismos caminos buscados por las maldiciones.fuente
Estaba enfrentando el mismo problema con un Zyxel NSA310
la solución que funcionó para mí fue
El consejo fue dado aquí:
https://better-coding.com/solved-xterm-256color-unknown-terminal-type/
fuente