"Resizable" Terminals als solche sind ein Ergebnis von NAWS ( Negotiate About Window Sizevon 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 SIGWINCHan 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 LINESund 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 resizeProgramm (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. resizeAktualisiert 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 LINESund COLUMNS sind festgelegt und aktualisiert werden soll.
[[ $(tty) == /dev/ttyS0 ]] && trap res2 DEBUGzu 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).