Parfois, un écran de terminal est perturbé et lorsque nous man ls
lisons les pages de manuel ou que nous appuyons sur la flèche vers le haut pour accéder aux commandes précédentes de l'historique, l'écran affiche les caractères qui ne sont pas au bon endroit. (par exemple, traitez la fin d’écran comme si elle se trouvait au milieu de l’écran).
La commande reset
est essayée et ça ne marchera pas. Une méthode qui fonctionne consiste à se déconnecter ou à fermer la fenêtre, puis à redimensionner la fenêtre, puis à le faire ssh
(ou à fermer cet onglet et à redimensionner la fenêtre, puis ouvrir un nouvel onglet pour obtenir un nouveau shell).
Mais de cette façon, nous perdrons tout ce que nous avions fait précédemment, tel que le démarrage d’une console de machine virtuelle, etc. Ainsi, si nous ne fermons pas le shell, existe-t-il un moyen de résoudre ce problème?
(Cela s'est déjà passé juste à l'intérieur de Fedora, et aussi pour un Macbook ssh
dans une boîte RHEL 5.4).
Mise à jour: Je me souviens maintenant de ce qui s'est passé dans Fedora: j'ai ouvert un terminal et créé une FreeVM pour utiliser la console d'une machine virtuelle (un shell). Je pense que c'était au format 80 x 25, puis au bout d'un moment, j'ai redimensionné le terminal à environ 130 x 50, puis la "coque interne" (de la machine virtuelle) a commencé à se comporter de manière étrange).
reset
cela ne résout pas le problème.^Jreset^J
, où^J
signifie pressantctrl-J
. Ou (sur les terminaux graphiques), vous pouvez essayer leReset
bouton. En outre, certains programmes ne sont tout simplement pas préparés à la taille des terminaux qui les modifient (oui, les logiciels antiques sont toujours d'actualité) ou tout simplement mal se comporter lorsque le terminal devient trop petit.Réponses:
Si vous utilisez bash, vérifiez si l’option "checkwinsize" est activée dans votre session en utilisant
Si vous n'obtenez pas
puis l'activer avec
La documentation Bash dit pour l'attribut "checkwinsize":
Si vous aimez le réglage, vous pouvez l'activer
checkwinsize
dans votre~/.bashrc
.shopt -s checkwinsize
shopt -u checkwinsize
la source
Vous pouvez essayer Ctrl+ L. Il efface et / ou redessine l'écran du terminal, en fonction du programme.
la source
l'ajout de ces options au docker exec semblait résoudre mon problème
la source
J'ai eu le même problème et aucune des recettes ci-dessus n'a fonctionné pour moi parce que je crois que ma bash ne reçoit jamais les
SIGWINCH
signaux, qui sont piégés par son processus parent.J'ai finalement trouvé une solution. J'ai ajouté à mon
.bashrc
:Maintenant, chaque fois que je reçois une nouvelle invite, ma fenêtre est réajustée.
Merci à UKmonkey pour l’amélioration de PROMPT_COMMAND.
la source
export PROMPT_COMMAND="resize &>/dev/null; $PROMPT_COMMAND"
Je voulais juste ajouter à ce qu'Arcadien avait déjà mentionné. L'activation de checkwinsize fait l'affaire, mais pour moi, il était nécessaire de redéfinir la taille de la fenêtre pour qu'elle fonctionne correctement. J'imagine que le checkwinsize était censé éliminer cela, mais valait quand même le coup. Essayez simplement de changer la taille de la fenêtre ou de la minimiser et de la maximiser après avoir affiché cette option.
la source
Je rencontre de temps en temps le même problème en utilisant zsh sur macOS. Un simple appel de
reset
commande redéfinit le terminal à mon goût.la source
reset
ne fonctionnait pas pour eux, et c'était en fait le but de la question ....reset
travaillé dans ce cas. J'ai ajouté cette réponse pour aider tous ceux qui rencontrent le même problème sous MacOS et ne sont pas au courant desreset
commandes.reset
fonctionne sur Windows Putty avec Ubuntu 16.04!J'ai eu le même problème que vous et voici ce que j'ai fait:
j'ai une
.profile
configuration dans mon utilisateur, donc c'est là que je fais toutes mes modifications.Il existe un paquet appelé
xterm
qui est disponible par le biais deapt-get
je ne sais pasyum
. 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/#downloadJ'ai exporté le chemin dans mon profil et je l'ai invoqué au même endroit
Alors maintenant, chaque fois que je me connecte, la taille du terminal est définie en conséquence par redimensionnement.
la source
Eh bien, c'est un problème commun et il devrait y avoir une solution simple.
Si d'autres mesures telles que Ctrl + A Ctrl + L ne fonctionnent pas, essayez d'utiliser
stty
:Ou: laissez l'écran (Ctrl + AD pour le détacher) et déconnectez-vous de votre session SSH.
stty -a | grep rows
: Obtenir le nombre de lignes et de colonnes.Exemple:
speed 38400 baud; rows 33; columns 133; line = 0;
stty
sortie devrait être différente.Exemple:
speed 38400 baud; rows 47; columns 177; line = 0;
stty rows N
etstty columns N
où N est le nombre "réel" (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 elles indiquent le nombre de colonnes et de lignes en haut.
Il n'est pas nécessaire de redimensionner les fenêtres de votre terminal pour y faire face. Les administrateurs se connectent généralement à partir de différents ordinateurs. Lorsque la taille (résolution) des moniteurs connectés est différente, une fenêtre agrandie a une taille différente sur chaque ordinateur. En fait, il est plutôt difficile de ne pas tomber aussi souvent dans cette situation.
Et le résultat n'est pas simplement que certaines pages de manuel ne s'affichent pas correctement. C'est à peu près tout ce qui utilise un téléavertisseur - les premières lignes manquent souvent (par exemple). Et ne pensez même pas à utiliser VIM dans un terminal aussi mal aligné. Vous souhaitez mettre la ligne 3 (V) en surbrillance pour la remplacer, mais lorsque vous le faites, le texte en surbrillance est celui d’une autre ligne.
la source
Essayez
stty sane
. il devrait faire ce dont vous avez besoin.la source