Manchmal ist ein Terminalbildschirm durcheinander, und wenn wir man ls
die Hilfeseiten lesen oder den Aufwärtspfeil drücken, um zu den vorherigen Befehlen im Verlauf zu gelangen, werden auf dem Bildschirm Zeichen angezeigt, die nicht an der richtigen Stelle angezeigt werden. (Behandeln Sie beispielsweise das Ende des Bildschirms als eine Stelle in der Mitte des Bildschirms.)
Der Befehl reset
wird versucht und es würde nicht funktionieren. Eine Möglichkeit besteht darin, sich abzumelden oder das Fenster zu schließen, die Größe des Fensters zuerst zu ändern und dann zu tun ssh
(oder diese Registerkarte zu schließen und die Größe des Fensters zu ändern und dann eine neue Registerkarte zu öffnen, um eine neue Shell zu erhalten).
Auf diese Weise verlieren wir jedoch alles, was wir zuvor getan haben, z. B. das Starten einer Konsole einer virtuellen Maschine usw. Wenn wir also die Shell nicht schließen, gibt es eine Möglichkeit, dieses Problem zu beheben?
(Dies geschah zuvor direkt in Fedora und auch für ein Macbook ssh
in eine RHEL 5.4-Box).
Update: Ich erinnere mich jetzt, wie es in Fedora passiert ist: Ich habe ein Terminal geöffnet und eine FreeVM ausgeführt, um eine Konsole einer virtuellen Maschine (eine Shell) zu verwenden. Ich glaube, es war eine Größe von 80 x 25 und nach einer Weile habe ich die Größe des Terminals ungefähr auf 130 x 50 geändert, und dann hat sich die "innere Hülle" (der VM) merkwürdig verhalten.
reset
das Problem nicht behoben wird.^Jreset^J
, wo^J
drücktctrl-J
. Oder (auf Grafikterminals) können Sie dieReset
Schaltfläche ausprobieren . Außerdem sind einige Programme einfach nicht auf sich ändernde Terminalgrößen vorbereitet (ja, alte Software lebt und funktioniert nicht) oder verhalten sich einfach schlecht, wenn das Terminal zu klein wird.Antworten:
Wenn Sie bash verwenden, überprüfen Sie, ob die Option "checkwinsize" in Ihrer Sitzung mit aktiviert wurde
Wenn Sie nicht bekommen
dann aktiviere es mit
In der Bash-Dokumentation steht für das Attribut "checkwinsize":
Wenn Ihnen die Einstellung gefällt, können Sie sie
checkwinsize
in Ihrem aktivieren~/.bashrc
.shopt -s checkwinsize
shopt -u checkwinsize
quelle
Sie können Ctrl+ versuchen L. Je nach Programm wird der Terminalbildschirm gelöscht und / oder neu gezeichnet.
quelle
Das Hinzufügen dieser Optionen zu Docker Exec schien mein Problem zu lösen
quelle
Ich hatte das gleiche Problem und keines der oben genannten Rezepte hat für mich funktioniert, da ich glaube, dass meine Bash niemals die
SIGWINCH
Signale empfängt , die von ihrem übergeordneten Prozess abgefangen werden.Ich habe endlich eine Lösung gefunden. Ich fügte hinzu
.bashrc
:Jedes Mal, wenn ich eine neue Eingabeaufforderung erhalte, wird mein Fenster neu angepasst.
Vielen Dank an UKmonkey für die PROMPT_COMMAND-Verbesserung.
quelle
export PROMPT_COMMAND="resize &>/dev/null; $PROMPT_COMMAND"
damit der alte Eingabeaufforderungsbefehl, wie auch immer er seinIch wollte nur hinzufügen, was Arcadien bereits erwähnt hatte. Die Checkwinsize-Aktivierung macht den Trick, aber für mich war es notwendig, die Größe des Fensters zurückzusetzen, damit es richtig funktioniert. Ich denke, die Checkwinsize sollte dies beseitigen, aber dennoch einen Versuch wert. Versuchen Sie einfach, die Größe des Fensters zu ändern oder die Maximierung aufzuheben und nach dieser Option zu maximieren.
quelle
Ich habe von Zeit zu Zeit das gleiche Problem mit zsh unter macOS. Ein einfacher
reset
Befehlsaufruf richtet das Terminal wieder nach meinen Wünschen ein.quelle
reset
dies für sie nicht funktionierte, und dies war in der Tat der Punkt der Frage ...reset
in diesem Fall gearbeitet. Ich habe diese Antwort hinzugefügt, um allen zu helfen, die auf einem MacOS mit dem gleichen Problem konfrontiert sind und keine Kenntnis vonreset
Befehlen haben.reset
funktioniert auf Windows Putty mit Ubuntu 16.04!Ich hatte das gleiche Problem wie Sie und dies ist, was ich getan habe:
Ich habe ein
.profile
Setup in meinem Benutzer, so dass ich alle meine Änderungen dort vornehme.Es gibt ein Paket mit dem Namen,
xterm
das über erhältlich ist, von demapt-get
ich nichts weißyum
. Ich habe jedoch eine lokale Installation von der Quelle aus durchgeführt, da ich keine Installationsberechtigungen habe. LINK: http://invisible-island.net/xterm/#downloadIch habe den Pfad in mein Profil exportiert und an derselben Stelle aufgerufen
Jedes Mal, wenn ich mich anmelde, wird die Terminalgröße durch Ändern der Größe entsprechend festgelegt.
quelle
Nun, das ist ein häufiges Problem und es sollte eine einfache Lösung geben.
Wenn andere Maßnahmen wie Strg + A Strg + L nicht funktionieren, versuchen Sie Folgendes
stty
:Oder: Verlassen Sie den Bildschirm (Strg + AD, um die Verbindung zu trennen) und melden Sie sich von Ihrer SSH-Sitzung ab.
stty -a | grep rows
: Ermittelt die Anzahl der Zeilen und Spalten.Beispiel:
speed 38400 baud; rows 33; columns 133; line = 0;
stty
Ausgabe sollte unterschiedlich sein.Beispiel:
speed 38400 baud; rows 47; columns 177; line = 0;
stty rows N
undstty columns N
wobei N die "echte" Zahl ist (außerhalb des Bildschirms). Beispiel:$ stty rows 33; stty columns 133
Wenn Sie Terminator verwenden , können Sie die ersten drei Schritte überspringen, da oben die Anzahl der Spalten und Zeilen angezeigt wird.
Sie müssen die Größe Ihrer Terminalfenster nicht ändern, um darauf zugreifen zu können. Administratoren melden sich normalerweise von verschiedenen Computern aus an. Wenn sich die Größe (Auflösung) der angeschlossenen Monitore unterscheidet, hat ein maximiertes Fenster auf jedem Computer eine andere Größe. Es ist eigentlich ziemlich schwierig, nicht häufig darauf zu stoßen.
Und das Ergebnis ist nicht nur, dass manche Manpages nicht richtig angezeigt werden. Es ist so ziemlich alles, was einen Pager benutzt - die ersten paar Zeilen fehlen oft (zum Beispiel). Und denken Sie nicht einmal daran, VIM in einem derart falsch ausgerichteten Terminal einzusetzen. Sie möchten Zeile 3 (V) hervorheben, um sie zu ersetzen. Wenn Sie dies jedoch tun, ist der hervorgehobene Text der einer anderen Zeile.
quelle
Versuchen Sie es
stty sane
. Es sollte tun, was Sie brauchen.quelle