Parfois, un écran de terminal est foiré et lorsque nous utilisons man ls
pour lire les pages de manuel, ou appuyez sur la flèche HAUT pour revenir aux commandes précédentes de l'historique, l'écran n'affichera pas les caractères au bon endroit. (par exemple, traitez la fin de l'écran comme une partie au milieu de l'écran).
La commande reset
est essayée et ne fonctionnera pas. Une façon qui fonctionne est de vous déconnecter ou de fermer la fenêtre, puis de redimensionner la fenêtre, puis de faire ssh
(ou de fermer cet onglet, de redimensionner la fenêtre, puis d'ouvrir un nouvel onglet pour obtenir un nouveau shell ).
Mais de cette façon, nous perdrons tout ce que nous avons fait précédemment, comme le démarrage d'une console de machine virtuelle, etc. Donc, si nous ne fermons pas le shell, existe-t-il un moyen de résoudre ce problème?
(cela s'est déjà produit juste à l'intérieur de Fedora, et aussi pour un Macbook ssh
dans une boîte RHEL 5.4).
pdate: Je me souviens maintenant de la façon dont cela s'est passé dans Fedora: j'ai ouvert un terminal et fait un FreeVM pour utiliser une console d'une machine virtuelle (un shell). Je pense qu'il était de taille 80 x 25, puis après un certain temps, j'ai redimensionné le terminal à 130 x 50 environ, puis le "shell interne" (de la VM) a commencé à se comporter bizarrement).
Si vous utilisez bash, vérifiez si l'option "checkwinsize" est activée dans votre session en utilisant
shopt | grep checkwinsize
Si vous n'obtenez pas
checkwinsize on
puis l'activer avec
shopt -s checkwinsize
La documentation de Bash indique pour l'attribut "checkwinsize":
"S'il est défini, Bash vérifie la taille de la fenêtre après chaque commande et, si nécessaire, met à jour les valeurs de LINES et COLUMNS."
Si vous aimez le paramètre, vous pouvez activer checkwinsize
dans votre ~/.bashrc
.
shopt -s checkwinsize
shopt -u checkwinsize
Tu peux essayer Ctrl+L. Il efface et/ou redessine l'écran du terminal, selon le programme.
l'ajout de ces options à docker exec semblait résoudre mon problème
-e COLUMNS=$COLUMNS -e LINES=$LINES -e TERM=$TERM
J'ai eu le même problème et aucune des recettes ci-dessus n'a fonctionné pour moi car je crois que mon bash ne reçoit jamais les signaux SIGWINCH
, qui sont piégés par son processus parent.
J'ai finalement trouvé une solution. J'ai ajouté à mon .bashrc
:
export Prompt_COMMAND="resize &>/dev/null ; $Prompt_COMMAND"
Maintenant, chaque fois que je reçois une nouvelle invite, ma fenêtre est réajustée.
Merci à Kmonkey pour l'amélioration de Prompt_COMMAND.
Je rencontre de temps en temps le même problème en utilisant zsh sur macOS. Une simple invocation de la commande reset
configure à nouveau le terminal à mon goût.
Je voulais juste ajouter à ce qu'Arcadien avait déjà mentionné. L'activation de checkwinsize fait l'affaire, mais pour moi, ce qui était nécessaire était de réinitialiser la taille de la fenêtre pour qu'elle fonctionne correctement. Je suppose que le checkwinsize était censé éliminer cela, mais ça valait quand même le coup. Essayez simplement de changer la taille de la fenêtre ou de ne pas l'agrandir et de l'agrandir après cette option.
J'ai eu le même problème que vous et c'est ce que j'ai fait:
J'ai un .profile
configuration dans mon utilisateur, c'est donc là que je fais toutes mes modifications.
Il existe un package appelé xterm
qui est disponible via apt-get
Je ne connais pas yum
. Mais j'ai fait une installation locale à partir des sources car je n'ai pas de privilèges d'installation. LIEN: http://invisible-island.net/xterm/#download
./configure --prefix=/the/path/you/want/to/install/to
make
make install
J'ai exporté le chemin dans mon profil et l'ai invoqué au même endroit
export PATH=$PATH:/the/path/you/want/to/install/to
resize
Alors maintenant, chaque fois que je me connecte, la taille du terminal est définie en conséquence par redimensionnement.
Essayez stty sane
. il devrait faire ce dont vous avez besoin.
Eh bien, c'est un problème courant et il devrait y avoir une solution simple.
Si d'autres mesures comme Ctrl + A Ctrl + L ne fonctionnent pas, essayez d'utiliser stty
:
stty -a | grep rows
: Récupère le nombre de lignes et de colonnes.speed 38400 baud; rows 33; columns 133; line = 0;
stty
doit être différente.speed 38400 baud; rows 47; columns 177; line = 0;
stty rows N
et stty columns N
où N est le "vrai" nombre (en dehors de l'écran). Exemple: $ stty rows 33; stty columns 133
Si vous utilisez Terminator, vous pouvez ignorer les trois premières étapes car il affiche le nombre de colonnes et de lignes en haut.
Vous n'avez pas besoin de redimensionner vos fenêtres de terminal pour exécuter cela. Les administrateurs se connectent généralement à partir d'ordinateurs différents et lorsque les moniteurs connectés diffèrent en taille (résolution), une fenêtre maximisée aura une taille différente sur chaque ordinateur. Il est en fait assez difficile de ne pas se rencontrer fréquemment.
Et le résultat n'est pas seulement que certaines pages de manuel ne s'affichent pas correctement. C'est à peu près tout ce qui utilise un pager - les premières lignes sont souvent manquantes (par exemple). Et ne pensez même pas à utiliser VIM dans un terminal aussi mal aligné. Vous voulez mettre en surbrillance la ligne 3 (V) afin de la remplacer, mais quand vous le faites, le texte en surbrillance est celui de une autre ligne.