Los terminales "redimensionables" como tales son el resultado de NAWS ( Negotiate About Window Sizede la opción de tamaño de ventana Telnet RFC 1073 ).
Si está conectado directamente a la computadora mediante un puerto serie, no hay negociación involucrada y la computadora no tiene conocimiento directo del tamaño de pantalla de su terminal.
Si una terminal puede negociar el tamaño, la computadora enviará SIGWINCH a las aplicaciones que se ejecutan en el terminal, diciéndoles que actualicen su noción del de la pantalla.
Cuando la computadora no conoce el tamaño de la pantalla, generalmente establece el tamaño mostrado por stty -a(filas y columnas) en cero. Para uso interactivo, esto es un poco hostil, y algunos sistemas usan variables de entorno LINESy COLUMNSpara ayudar. Los valores asignados pueden derivarse de la descripción del terminal; más a menudo son simplemente codificados. La convención para estas variables requiere que surtan efecto a menos que se supriman explícitamente, por ejemplo, en la use_envfunción de aplicaciones de maldiciones . En el lado positivo, esas variables pueden ser útiles cuando no hay información confiable disponible. En el lado negativo, no existe un método conveniente para alterar esas variables.
El resizeprograma (una utilidad provista con xterm) puede usar la secuencia de escape del informe de posición del cursor estilo VT100 para determinar el tamaño de la pantalla. Esto se puede ejecutar desde la línea de comandos; (de nuevo) no hay una forma conveniente de hacerlo automáticamente. Como efecto secundario, resizeactualiza la información sobre las filas / columnas vistas por stty. Su uso para proporcionar variables de entorno actualizadas es principalmente útil para casos como este, dónde LINESy COLUMNS se establecen, y debe actualizarse.
[[ $(tty) == /dev/ttyS0 ]] && trap res2 DEBUGa una de las configuraciones de perfil de shell (por ejemplo/etc/profile,~/.bash_profile). Esto hará que se ejecute después de cada comando (lo que sería bueno si cambia el tamaño de ventanas / paneles con screen / tmux / terminal-emulator).