Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
tutoriel:formater_le_texte_dans_le_terminal_avec_tput [Le 26/08/2018, 19:25]
zococo [Problèmes connus]
tutoriel:formater_le_texte_dans_le_terminal_avec_tput [Le 31/03/2023, 13:48] (Version actuelle)
176.128.237.48 [Insérer et effacer du texte]
Ligne 1: Ligne 1:
-{{tag>​Bionic Xenial console tutoriel ​formater_le_texte_dans_le_terminal_avec_tput BROUILLON}}+{{tag>​Bionic Xenial console ​terminal ​tutoriel ​tput_formater_le_texte_dans_le_terminal}}
  
 ---- ----
  
-====== ​tput, jouer avec le curseur et les couleurs dans le terminal ======+====== ​Tput, jouer avec le curseur et les couleurs dans le terminal ======
  
-tput est un utilitaire qui utilise la base de données terminfo pour modifier le paramétrage du terminal. Il permet d'​initialiser ou réinitialiser le terminal.+Tput est un utilitaire qui utilise la base de données terminfo pour modifier le paramétrage du terminal. Il permet d'​initialiser ou réinitialiser le terminal.
  
-tput peut notamment être utilisé pour déplacer le curseur à l'​intérieur du terminal et ajouter un peu de décoration au texte (couleur, formatage). Il peut aussi permettre de personnaliser l'​invite de commande.+Tput peut notamment être utilisé pour déplacer le curseur à l'​intérieur du terminal et ajouter un peu de décoration au texte (couleur, formatage). Il peut aussi permettre de personnaliser l'​invite de commande.
  
 Ce tutoriel donne quelques pistes pour utiliser la couleur et déplacer le curseur à l'​intérieur du terminal, avec et sans tput. Ce tutoriel donne quelques pistes pour utiliser la couleur et déplacer le curseur à l'​intérieur du terminal, avec et sans tput.
Ligne 28: Ligne 28:
  
 Les codes numérotés 30 à 37 permettent de définir la couleur du texte (foreground),​ les codes 40 à 47 concernent l'​arrière plan (background). Voici la liste de ces codes : Les codes numérotés 30 à 37 permettent de définir la couleur du texte (foreground),​ les codes 40 à 47 concernent l'​arrière plan (background). Voici la liste de ces codes :
- +^ Code ^  Couleur ​ ^  ^ 
-30 et 40 noir +30 et 40 noir|  | 
-31 et 41 rouge +31 et 41 rouge|  | 
-32 et 42 vert +32 et 42 vert|  | 
-33 et 43 jaune +33 et 43 jaune|  | 
-34 et 44 bleu +34 et 44 bleu|  | 
-35 et 45 rose +35 et 45 rose|  | 
-36 et 46 cyan +36 et 46 cyan|  | 
-37 et 47 gris+37 et 47 gris|  |
  
 ==== La décoration ==== ==== La décoration ====
  
-Quelques éléments de formatage du texte peuvent également être définis. ​Il sont activés par les code ssuivants ​+Quelques éléments de formatage du texte peuvent également être définis. ​Ils sont activés par les codes suivants ​
-gras +^ code ^ effet ^ 
-soulignement +gras| | 
-clignotant (ne fonctionne pas avec tous les terminaux) +soulignement ​| | 
-surlignement+clignotant (ne fonctionne pas avec tous les terminaux) ​| | 
 +surlignement ​| |
  
 ==== Retour au formatage par défaut : code 0 ==== ==== Retour au formatage par défaut : code 0 ====
Ligne 54: Ligne 55:
 La méthode la plus simple consiste à se faire succéder les différents codes dans leur intégralité. Exemple d'un texte jaune, gras sur fond rouge, avec un mot passé en surligné : La méthode la plus simple consiste à se faire succéder les différents codes dans leur intégralité. Exemple d'un texte jaune, gras sur fond rouge, avec un mot passé en surligné :
 <​code>​ <​code>​
-echo -e "Voici le \033[33m\033[1m\033[4m\033[41mle \033[7mtexte\033[0m mis en forme."​+echo -e "Voici le \033[33m\033[1m\033[4m\033[41mle \033[7mtexte\033[0m mis en forme."​
 </​code>​ </​code>​
  
-Cette mise en forme peut se condenser ainsi, en séparant les formatage ​par un ';'​ :+Cette mise en forme peut se condenser ainsi, en séparant les formatages ​par un ';'​ :
 <​code>​ <​code>​
-echo -e "Voici le \e[33;​1;​4;​41mle \E[7mtexte\033[0m mis en forme selon la forme condensée."​+echo -e "Voici le \e[33;​1;​4;​41mle \E[7mtexte\033[0m mis en forme selon la forme condensée."​
 </​code>​ </​code>​
  
Ligne 124: Ligne 125:
  
 ===== Méthode tput un peu plus ergonomique ===== ===== Méthode tput un peu plus ergonomique =====
 +L'​utilisation de la commande tput appartenant au paquet ncurses permet d'​utiliser une notation plus aidée à appréhender par l'​utilisateur.
 +
 +<note help>​Comment savoir si la librairie ncurses est installée sur mon système ?
 +
 +En général la librairie est installée par défaut. La commande dpkg -l permet de s'en assurer :
 +<​code>​
 +$ dpkg -l *ncurses*
 +Souhait=inconnU/​Installé/​suppRimé/​Purgé/​H=à garder
 +| État=Non/​Installé/​fichier-Config/​dépaqUeté/​échec-conFig/​H=semi-installé/​W=attend-traitement-déclenchements
 +|/ Err?​=(aucune)/​besoin Réinstallation (État,Err: majuscule=mauvais)
 +||/ Nom                 ​Version ​       Architecture ​  ​Description
 ++++-===================-==============-==============-============================================
 +ii  libncurses5:​amd64 ​  ​6.0+20160213-1 amd64          shared libraries for terminal handling
 +ii  libncurses5:​i386 ​   6.0+20160213-1 i386           ​shared libraries for terminal handling
 +ii  libncursesw5:​amd64 ​ 6.0+20160213-1 amd64          shared libraries for terminal handling (wide
 +ii  ncurses-base ​       6.0+20160213-1 all            basic terminal type definitions
 +ii  ncurses-bin ​        ​6.0+20160213-1 amd64          terminal-related programs and man pages
 +un  ncurses-runtime ​    <​aucune> ​      <​aucune> ​      ​(aucune description n'est disponible)
 +ii  ncurses-term ​       6.0+20160213-1 all            additional terminal type definition
 +</​code>​
 +
 +Si libncurses apparaît dans la liste, le paquet ncurses est installé. Une autre manière un peu simpliste mais très efficace de le savoir consiste tout simplement à saisir '​tput'​ dans le terminal :
 +<​code>​
 +$ tput
 +usage: tput [-V] [-S] [-T term] capname
 +</​code>​
 +</​note>​
 +
 +<note tip>​Installation du paquet ncurses
 +
 +Fin 2018, la dernière version de la libriairie ncurses présente dans les dépôts est la version 5. Elle s'​installe ainsi :
 +<​code>​
 +$ sudo apt-get install libncurses5
 +</​code>​
 +</​note>​
 ==== Mise en couleur ==== ==== Mise en couleur ====
 === Mise en couleur du texte (échappement ANSI) : setaf === === Mise en couleur du texte (échappement ANSI) : setaf ===
Ligne 130: Ligne 166:
 syntaxe : syntaxe :
 <​code>​ <​code>​
-tput setaf [code_couleur]+tput setaf [code_couleur]
 </​code>​ </​code>​
  
Ligne 136: Ligne 172:
 La commande setf ne paraît pas fonctionner dans les terminaux xterm. La commande setf ne paraît pas fonctionner dans les terminaux xterm.
 <​code>​ <​code>​
-tput setf [code_couleur]+tput setf [code_couleur]
 </​code>​ </​code>​
  
 === Mise en couleur de l'​arrière plan (background - échappement ANSI) : setab === === Mise en couleur de l'​arrière plan (background - échappement ANSI) : setab ===
 <​code>​ <​code>​
-tput setab [code_couleur]+tput setab [code_couleur]
 </​code>​ </​code>​
  
Ligne 147: Ligne 183:
 La commande setb ne paraît pas fonctionner dans les terminaux xterm. La commande setb ne paraît pas fonctionner dans les terminaux xterm.
 <​code>​ <​code>​
-tput setb [code_couleur]+tput setb [code_couleur]
 </​code>​ </​code>​
  
Ligne 162: Ligne 198:
 Le nombre des couleurs possible est désormais généralement égal à 256 au moins. Pour le vérifier, il suffit de saisir dans le terminal la commande suivante : Le nombre des couleurs possible est désormais généralement égal à 256 au moins. Pour le vérifier, il suffit de saisir dans le terminal la commande suivante :
 <​code>​ <​code>​
-tput colors+tput colors
 </​code>​ </​code>​
 Si le retour de la commande est '​256',​ vous pouvez étendre votre terrain de jeux. Le code couleur doit être annoncé sur 3 chiffres (de 001 à 256). Si le retour de la commande est '​256',​ vous pouvez étendre votre terrain de jeux. Le code couleur doit être annoncé sur 3 chiffres (de 001 à 256).
Ligne 168: Ligne 204:
 Syntaxe de base de tput Syntaxe de base de tput
 <​code>​ <​code>​
-echo "Texte ordinaire "​$(tput setaf 3; tput setab 1)"​jaune sur fond rouge"​$(tput sgr0)" à nouveau ordinaire."​+echo "Texte ordinaire "​$(tput setaf 3; tput setab 1)"​jaune sur fond rouge"​$(tput sgr0)" à nouveau ordinaire."​
 </​code>​ </​code>​
-Cette syntaxe ​put être rendue plus compréhensible en utilisant des variables bien choisies. Ainsi, dans l'​exemple suivant, l'​afichage ​de $rouge place le texte en rouge, celui de $ordinaire rétabli les paramètres par défaut :+Cette syntaxe ​peut être rendue plus compréhensible en utilisant des variables bien choisies. Ainsi, dans l'​exemple suivant, l’affichage ​de $rouge place le texte en rouge, celui de $ordinaire rétabli les paramètres par défaut :
 <​code>​ <​code>​
-rouge=$(tput setaf 1) +rouge=$(tput setaf 1) 
-ordinairel=$(tput sgr0) +$ ordinaire=$(tput sgr0) 
-echo "avant ""​$rouge""​Le Texte""​$ordinaire""​ après"​+echo "avant ""​$rouge""​Le Texte""​$ordinaire""​ après"​
 </​code>​ </​code>​
 === Un script en guise d'​aide-mémoire === === Un script en guise d'​aide-mémoire ===
 Pour afficher les 8 couleurs principales : Pour afficher les 8 couleurs principales :
 <​code>​ <​code>​
 +#!/bin/bash
 couleurs=(Noir Rouge Vert Jaune Bleu Magenta Cyan Blanc); ​ couleurs=(Noir Rouge Vert Jaune Bleu Magenta Cyan Blanc); ​
 for i in $(seq 1 7);  for i in $(seq 1 7); 
Ligne 184: Ligne 221:
  echo -e " $(tput setaf $i)${couleurs[$i]}\tTexte$(tput sgr0)\t$(tput bold)$(tput setaf $i)Texte$(tput sgr0)\t$(tput sgr 0 1)$(tput setaf $i)Texte$(tput sgr0)\t(tput setaf $i)"; ​  echo -e " $(tput setaf $i)${couleurs[$i]}\tTexte$(tput sgr0)\t$(tput bold)$(tput setaf $i)Texte$(tput sgr0)\t$(tput sgr 0 1)$(tput setaf $i)Texte$(tput sgr0)\t(tput setaf $i)"; ​
  done  done
-et le résulat :+exit 0;
 </​code>​ </​code>​
 +et le résultat :
 +{{ :​tutoriel:​tput_xenial_01.png?​direct&​600 |}}
 Pour visualiser les 256 couleurs possibles Pour visualiser les 256 couleurs possibles
 <​code>​ <​code>​
-for i in {0..256};do o=00$i;echo -ne "​${o:​${#​o}-3:​3} "​$(tput setaf $i;tput setab $i)" ​  "​$(tput sgr0);​done; ​+for i in {0..256};do o=00$i;echo -ne "​${o:​${#​o}-3:​3} "​$(tput setaf $i;tput setab $i)" ​  "​$(tput sgr0);​done; ​
 </​code>​ </​code>​
 +{{ :​administration:​tput_xenial_02.png?​direct&​600 |}}
 ==== S'​informer sur les dimensions du terminal ==== ==== S'​informer sur les dimensions du terminal ====
 tput lines et tput cols permettent de déterminer le nombre de ligne et de colonnes du terminal. tput lines et tput cols permettent de déterminer le nombre de ligne et de colonnes du terminal.
Ligne 284: Ligne 323:
 Effacement de l'​ensemble de l'​écran et déplacement du curseur en position 0,0 (en haut à gauche) Effacement de l'​ensemble de l'​écran et déplacement du curseur en position 0,0 (en haut à gauche)
 <​code>​ <​code>​
-tput clear Efface l’écran et place le curseur à 0,0 +tput clear
 </​code>​ </​code>​
 Pour obtenir davantage d'​informations sur tput (en anglais, of course) : ne pas oublier le manuel Pour obtenir davantage d'​informations sur tput (en anglais, of course) : ne pas oublier le manuel
Ligne 300: Ligne 339:
   * [[https://​www.admin-linux.fr/​bash-de-la-couleur-dans-le-shell/​|Bash : De la couleur dans le shell]] ​ **(fr)**   * [[https://​www.admin-linux.fr/​bash-de-la-couleur-dans-le-shell/​|Bash : De la couleur dans le shell]] ​ **(fr)**
   * [[https://​unix.stackexchange.com/​questions/​269077/​tput-setaf-color-table-how-to-determine-color-codes|Connaître les couleurs disponibles avec setaf]] ​ **(en)**   * [[https://​unix.stackexchange.com/​questions/​269077/​tput-setaf-color-table-how-to-determine-color-codes|Connaître les couleurs disponibles avec setaf]] ​ **(en)**
-  * [[http://​tldp.org/​HOWTO/​Bash-Prompt-HOWTO/​x361.html|Mouvement du curseur]] ​ **(en)**+  * [[https://​tldp.org/​HOWTO/​Bash-Prompt-HOWTO/​x361.html|Mouvement du curseur]] ​ **(en)**
  
 Tput Tput
Ligne 310: Ligne 349:
   * [[http://​www.linuxcommand.org/​lc3_adv_tput.php|Créer une horloge]] ​ **(en)**   * [[http://​www.linuxcommand.org/​lc3_adv_tput.php|Créer une horloge]] ​ **(en)**
   * [[https://​en.wikipedia.org/​wiki/​Tput|Tput sur wikipedia]] ​ **(en)**   * [[https://​en.wikipedia.org/​wiki/​Tput|Tput sur wikipedia]] ​ **(en)**
-  * [[http://​man7.org/​linux/​man-pages/​man1/​tput.1.html|Page man]]  **(en)**+  * [[https://​man7.org/​linux/​man-pages/​man1/​tput.1.html|Page man]]  **(en)**
   * [[https://​www.gnu.org/​software/​termutils/​manual/​termutils-2.0/​html_chapter/​tput_1.html|tput sur gnu.org]]   * [[https://​www.gnu.org/​software/​termutils/​manual/​termutils-2.0/​html_chapter/​tput_1.html|tput sur gnu.org]]
   * [[https://​www.thegeekstuff.com/​2011/​01/​tput-command-examples/​|9 UNIX / Linux tput Examples: Control Your Terminal Color and Cursor]] ​ **(en)**   * [[https://​www.thegeekstuff.com/​2011/​01/​tput-command-examples/​|9 UNIX / Linux tput Examples: Control Your Terminal Color and Cursor]] ​ **(en)**
  • tutoriel/formater_le_texte_dans_le_terminal_avec_tput.1535304343.txt.gz
  • Dernière modification: Le 26/08/2018, 19:25
  • par zococo