J'ai récemment fait un clear
sur mon terminal et j'ai constaté que les caractères suivants étaient imprimés sur la ligne ci-dessus:
[unknown character]3;J
J'ai fait un clear | hexdump
pour examiner cela et a constaté que les caractères suivants avaient été imprimés:
ESC [ 3 ; J ESC [ H ESC [ 2 J
J'ai essayé de taper ces touches dans mon terminal, et j'ai remarqué que bien que l'écran ne s'efface pas, seul le premier J est apparu. Est-ce un bug dans le terminal?
Il s'agit de ce que l'on appelle une "séquence ESCape" et de la séquence de caractères utilisée pour indiquer au clavier en verre que votre session de terminal émule (selon votre $TERM
variable d'environnement) pour "effacer l'écran".
ESC [ 3 ; J ESC [ H ESC [ 2 J
est choisi en fonction de la valeur de votre variable d'environnement TERM
. (echo $TERM
). Si $TERM
ne correspond pas au type de terminal que vous utilisez, clear
choisira la mauvaise chaîne.
Quel est votre $TERM
? Quel genre de terminal?
Par exemple, je tape sur un terminal Gnome ( Ctrl Alt T sur ma connexion graphique Ubuntu 14.04) et
$ echo $TERM
xterm-color
$ clear | od -bc
0000000 033 133 110 033 133 062 112
033 [ H 033 [ 2 J
0000007
$ clear
efface mon écran en silence.
Lorsque je suis connecté à un Ctrl Alt F1 session, mon $TERM
commence comme "linux"
, et est défini sur xterm-color
par mon ~/.bashrc
Commencez par lire man tput;man terminfo
, et lisez les pages man
mentionnées dans leur SEE ALSO
sections.