"Resizable" Terminals als solche sind ein Ergebnis von NAWS ( Negotiate About Window Size
von RFC 1073 Telnet Window Size Option ).
Wenn Sie über einen seriellen Anschluss direkt mit dem Computer verbunden sind, ist keine Verhandlung erforderlich, und der Computer hat keine direkte Kenntnis über die Bildschirmgröße Ihres Terminals.
Wenn ein Terminal die Größe aushandeln kann, sendet der Computer SIGWINCH
an Anwendungen, die im Terminal ausgeführt werden, und fordert sie auf, ihre Vorstellung von der Bildschirmgröße zu aktualisieren.
Wenn der Computer die Bildschirmgröße nicht kennt, setzt er die durch stty -a
(Zeilen und Spalten) angegebene Größe normalerweise auf Null. Für die interaktive Verwendung ist dies etwas unfreundlich, und einige Systeme verwenden Umgebungsvariablen LINES
und COLUMNS
, um zu helfen. Die zugewiesenen Werte können aus der Klemmenbeschreibung abgeleitet werden; häufiger werden sie einfach hartcodiert. Die Konvention für diese Variablen verlangt, dass sie wirksam werden, sofern sie nicht ausdrücklich unterdrückt werden, z. B. in Fluchanwendungen use_env
. Positiv zu vermerken ist, dass diese Variablen nützlich sein können, wenn keine zuverlässigen Informationen verfügbar sind. Auf der negativen Seite gibt es keine bequeme Methode zum Ändern dieser Variablen.
Das resize
Programm (ein mitgeliefertes Dienstprogramm xterm
) kann die Escape-Sequenz für Cursorpositionsberichte im VT100-Stil verwenden, um die Bildschirmgröße zu bestimmen. Dies kann über die Befehlszeile ausgeführt werden. Es gibt (wieder) keine bequeme Möglichkeit, dies automatisch zu tun. resize
Aktualisiert als Nebeneffekt die Informationen zu Zeilen / Spalten, die von angezeigt werden stty
. Sein Einsatz für aktualisierten Umgebungsvariablen Bereitstellung ist vor allem nützlich für Fälle wie diese, wo LINES
und COLUMNS
sind festgelegt und aktualisiert werden soll.
[[ $(tty) == /dev/ttyS0 ]] && trap res2 DEBUG
zu erhöhen , fügen Sie eine der Shell-Profilkonfigurationen hinzu (z . B./etc/profile
,~/.bash_profile
). Dadurch wird es nach jedem einzelnen Befehl ausgeführt (was nur dann sinnvoll ist, wenn Sie die Größe von Fenstern / Fenstern mit screen / tmux / terminal-emulator ändern).