[Shell] Bug d'affichage des chaines de caractères (résolu)

Questions et astuces concernant l'installation et la configuration d'archlinux
Répondre
Avatar de l’utilisateur
PillOow
Daikyu
Messages : 68
Inscription : mer. 18 juin 2008, 22:07

[Shell] Bug d'affichage des chaines de caractères (résolu)

Message par PillOow »

Bonsoir à tous !

Je suis victime, je pense, d'un zolie bug. Mais comme 99% des problèmes se situent entre le la chaise et le clavier :bonk: . En effet, le texte que je tape sur un terminal, s'il est trop long, reviens au début de la ligne et si je continue de taper, il passe par dessus mon invite de commande. Et ça sur TOUT les terminaux ! Que ce soit sous X ou pas, sur le terminal de ma GUI ou même sur Tilda. Mais comme un dessin vaut mieux qu'un long discours.

TADAAAM !

Image

Si je maximize la fenêtre, je peux taper plus de texte avant que que ça ne passe par dessus mon invite. Puis plein d'autres petites bizzareries qui viennent du même problème. A part dans le .bashrc, je vois pas où regarder.

A votre avis, je fais un rapport de bug ? Mais à qui ? :shock:
Ou p'tete qu'il y a une solution !? :bravo:
Dernière modification par PillOow le mer. 25 juin 2008, 21:52, modifié 1 fois.
Avatar de l’utilisateur
tuxce
Maître du Kyudo
Messages : 6677
Inscription : mer. 12 sept. 2007, 16:03

Message par tuxce »

salut, avant de se précipiter pour remplir un bug, testes quelque petites choses comme par exemple créer un autre utilisateur et regarde s'il y a les mêmes symptomes.

si c'est le cas, est ce que tu as modifié un fichier système tel que /etc/{profile*,inputrc}

si c'est pas le cas, vu que tu as de la couleur sur ton prompt, tu as du personnaliser, le fichier de conf de ton shell (bash?), poste le, bref, faut faire le tour

sinon, un truc plus simple qui peut arriver, est ce que ca s'arrange si tu redimensionnes la fenetre (pendant le problème d'affichage), parce qu'il peut arriver que le shell ne se rende pas d'un redimensionnement pendant une commande.
Avatar de l’utilisateur
Calimero
Elfe
Messages : 692
Inscription : ven. 02 mai 2008, 18:16
Localisation : Nantes (44)

Message par Calimero »

Est-ce que ça passe réellement par-dessus ce que tu écris ?

Je veux dire, par exemple, tu tapes "echo je suis une phrase longue qui ne sert à rien sauf à voir si elle sera écrite en entier sur la ligne en dessous"

...qu'est-ce que tu as ?

Soit :
je suis une phrase longue qui ne sert à rien sauf à voir si elle sera écrite en entier sur la ligne en dessous

Soit un truc du genre :
bash: oir: command not found

C'est pour savoir si c'est uniquement un bug d'affichage, ou si ça va chercher plus loin.

C'est peut-être totalement inutile ce que je raconte là...
Mes trucs : LiveCD http://ctkarch.org/ ; Blog, guide Arch, etc… http://calimeroteknik.free.fr/
In a world without walls and fences, who needs windows and gates ?
Avatar de l’utilisateur
Skunnyk
Maître du Kyudo
Messages : 1137
Inscription : mer. 06 sept. 2006, 21:31
Localisation : IRC
Contact :

Message par Skunnyk »

j'ai le même problème de temps en temps, surtout en ssh, via n'importe quel terminal, et même via putty sur windwos sur certains serveurs ... mais j'avoue que je n'ai jamais cherché à regler le problème ...
Avatar de l’utilisateur
PillOow
Daikyu
Messages : 68
Inscription : mer. 18 juin 2008, 22:07

Message par PillOow »

Bonsoir à tous !
salut, avant de se précipiter pour remplir un bug, testes quelque petites choses comme par exemple créer un autre utilisateur et regarde s'il y a les mêmes symptomes.

si c'est le cas, est ce que tu as modifié un fichier système tel que /etc/{profile*,inputrc}
Ca marche avec un nouvel user !!! :D Donc, dans la logique, je dois vérifier si y'a pas quelque chose de toukaca dans les profile* et le inputrc* c'est ça ? Je vais regarder ça de plus près. Merci beaucoup tuxce. Viens faire un poutou.
:majorette:

Bon c'est pas encore totalement réglé mais je suis sur la bonne voie ! Parce que c'est bien chiant quand même.
C'est peut-être totalement inutile ce que je raconte là...
Mais non mon garçon, il faut tout essayer dans la vie ! D'ailleurs j'ai essayé ta soluce avant l'useradd. ;)
Avatar de l’utilisateur
tuxce
Maître du Kyudo
Messages : 6677
Inscription : mer. 12 sept. 2007, 16:03

Message par tuxce »

PillOow a écrit : Ca marche avec un nouvel user !!! :D Donc, dans la logique, je dois vérifier si y'a pas quelque chose de toukaca dans les profile* et le inputrc* c'est ça ?
par "ca marche", tu veux dire que tu as le même problème ou qu'il n'y a pas le même souci avec un nouvel utilisateur?
Avatar de l’utilisateur
PillOow
Daikyu
Messages : 68
Inscription : mer. 18 juin 2008, 22:07

Message par PillOow »

Non, ça fonctionne niquel, j'ai plus ce vilain "bug" ! Les caractères défilent sous l'invite normalement, si je me log avec mon login habituel, ça remerdouille.

J'ai une petite question, où ce trouve le fichier bashrc de l'user que je viens de créer si je ne lui ai pas assigné de /home ? Le problème vient surement de mon .bashrc étant donné que c'est le seul fichier que j'ai modifié. Je vais remettre root temporairement pour voir si ça déconne aussi.

EDIT: Je confirme ! C'est bien mon bashrc qui déconne, je vais le refaire au propre. Je me suis loggué en root, comme le .bashrc dans /root était inexistant, j'avais un prompt par défaut genre bash-3.2#. A partir de là, aucun soucis, les caractères se comportaient normalement. J'ai copié le .bashrc de mon user dans /root. Je me relogue en root et me retrouve avec le même prompt que mon user, et là bug !


La règle semble se confirmer, 99% des problèmes se situent entre la chaise et le clavier. :transpi:
Avatar de l’utilisateur
tuxce
Maître du Kyudo
Messages : 6677
Inscription : mer. 12 sept. 2007, 16:03

Message par tuxce »

bon c'est ce que je voulais te dire :)
parce qu'en tu en as conclu en premier que c'était les /etc/profile et autre alors que vu que ca fonctionne nickel sous un autre user, ce n'est donc que tes fichiers propres.


par contre, un truc qui revient souvent ces derniers temps, c'est le prompt qui ne se met pas par défaut à

Code : Tout sélectionner

[\u@\h \W]\$
et ca, c'est pas normal, (normalement, profile.bash est appelé par profile), c'est peut etre un truc sur le dernier cd d'install....
Avatar de l’utilisateur
PillOow
Daikyu
Messages : 68
Inscription : mer. 18 juin 2008, 22:07

Message par PillOow »

tuxce a écrit :par contre, un truc qui revient souvent ces derniers temps, c'est le prompt qui ne se met pas par défaut à

Code : Tout sélectionner

[\u@\h \W]\$
et ca, c'est pas normal
Que veux-tu dire par là ? Que lorsque qu'on créer un user, il se voit automatiquement attribuer un prompt de ce type normalement ? J'ai pas trop pigé les histoires d'appels de profile.bash par profile. Honnetement, je ne sais même pas à quoi servent ces deux fichiers. Le seul truc que j'ai toujours modifié en ce qui concerne le shell c'est le .bashrc. Jamais eu besoin de voir plus loin. Mais si tu te sens l'envie d'éclairer mes lanternes ! :wink:

Bref, c'est tout pour ce soir, je go :dort:

Merci pour tout !
Avatar de l’utilisateur
lenglemetz
Chu Ko Nu
Messages : 307
Inscription : dim. 27 mai 2007, 22:26
Localisation : France
Contact :

Message par lenglemetz »

Skunnyk a écrit :j'ai le même problème de temps en temps, surtout en ssh, via n'importe quel terminal, et même via putty sur windwos sur certains serveurs ... mais j'avoue que je n'ai jamais cherché à regler le problème ...
On est au moins deux a pas avoir chercher, perso j'ai ce probleme avec screen et aussi ssh mais ça m'arrive qu'une fois de temps en temps. Il est peu etre temps que j'aprofondisse le sujet :]
[Thème] Sujet (état) |<
🎮 @donf_me • 🔥 StreaminG • La TeaM à DonF • 🇫🇷 DonF_Me
Avatar de l’utilisateur
tuxce
Maître du Kyudo
Messages : 6677
Inscription : mer. 12 sept. 2007, 16:03

Message par tuxce »

si j'ai bien compris pour pillOow, c'est systèmatique, c'est pas le même souci.
pour vous c'est de temps en temps, ca m'arrive aussi, on peut le provoquer...
pour vérifier:

Code : Tout sélectionner

echo $LINES $COLUMNS; sleep 5; echo $LINES $COLUMNS
redimensionnez la fenetre pendant le sleep, vous remarquerez que les valeurs de $LINES et $COLUMNS ne changent pas ce qui provoquent des incohérences dans les retours à la ligne

vous pouvez modifier le comportement en indiquant à bash (euh oui, la c'est pour bash :)) de rafraichir les dimensions après chaque commande:

Code : Tout sélectionner

shopt -s checkwinsize

@pillOow: le /etc/profile est lu avant le .bashrc et devrait inclure le /etc/profile.$shell ($shell correspondant à bash par défaut)

Code : Tout sélectionner

man bash
pour plus d'infos
Avatar de l’utilisateur
PillOow
Daikyu
Messages : 68
Inscription : mer. 18 juin 2008, 22:07

Message par PillOow »

Bon et bien c'est résolu !

Le problème venait de ma variable PS1, j'avais l'habitude de customiser mon prompt en utilisant un \033[00m\u par exemple. Mais il fallait utiliser la petite portion de code qui colorise le symbole de cette manière.

\[\033[00m\]\u

Donc il fallait rajouter un \[ a chaque début de code et le terminer par un \] puis ajouter le symbole que l'on veut coloriser.

Voici le code qui déconne:

Code : Tout sélectionner

\033[36m[\033[37m\u\033[36m@\033[37m\h\033[36m:\033[32m\w\033[37m\033[36m]\033[37m\$\033[00m
Et voici celui qui fonctionne:

Code : Tout sélectionner

\[\033[36m\][\[\033[37m\]\u\[\033[36m\]@\[\033[37m\]\h\[\033[36m\]:\[\033[32m\]\w\[\033[36m\]]\[\033[37m\]\$\[\033[00m
Purée j'aime vraiment pas cette syntaxe, c'est un vrai merdier. :merde:
Donc voilà, c'est cool, merci à tous ! :)
Répondre