16.7. Commandes de contrôle du terminal

Commandes modifiant l'état de la console ou du terminal

tput

Initialise et/ou recherche des informations relatives à un terminal depuis les données terminfo. Certaines options permettent différentes manipulations du terminal : tput clear est l'équivalent de clear ; tput reset est l'équivalent de reset.

bash$ tput nom_long
 xterm terminal emulator (X Window System)
 

La commande tput cup X Y déplace le curseur à la position (X,Y) sur le terminal en cours. clear la précède généralement, pour effacer l'écran.

Quelques options intéressantes de tput :

  • bold, pour un texte bien mis en évidence

  • smul souligne le texte dans le terminal

  • smso, affiche à l'envers

  • sgr0 ré-initialise les paramètres du terminal sans pour autant vider l'écran

Exemples de scripts utilisant tput :

Notez que stty offre un jeu de commandes plus conséquent pour le contrôle des terminaux.

infocmp

Cette commande affiche des informations étendues sur le terminal actuel. Il fait référence à la base de données terminfo.

bash$ infocmp
 #       Reconstructed via infocmp from file:
 /usr/share/terminfo/r/rxvt
 rxvt|rxvt terminal emulator (X Window System),
 am, bce, eo, km, mir, msgr, xenl, xon,
 colors#8, cols#80, it#8, lines#24, pairs#64,
 acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
 bel=^G, blink=\E[5m, bold=\E[1m,
 civis=\E[?25l,
 clear=\E[H\E[2J, cnorm=\E[?25h, cr=^M,
 ...
 
reset

Réinitialise les paramètres du terminal et efface son contenu. Comme avec la commande clear, le curseur réapparaît dans le coin supérieur gauche de l'écran.

clear

La commande clear efface simplement le contenu textuel d'une console ou d'un xterm. Le curseur de l'invite réapparaît dans le coin supérieur gauche du terminal. Cette commande peut être utilisée en ligne de commande ou dans un script. Voir l'Exemple 11.25, « Créer des menus en utilisant case ».

resize

Envoie les commandes nécessaires d'ajustement de $TERM et $TERMCAP pour dupliquer la taille (dimensions) du terminal courant.

bash$ resize
set noglob;
 setenv COLUMNS '80';
 setenv LINES '24';
 unset noglob;
                
script

Cet utilitaire sauve dans un fichier toutes les saisies clavier saisies dans le terminal par l'utilisateur. En fait, cela crée un enregistrement de la session.