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:14]
zococo [Titre 1]
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.
-<note important>​Chaque section aura **un titre de niveau 2** (H2) puis ses sous-sections,​ **un titre de niveau 3** (H3) et ainsi de suite… Remarque : il n'y a que 5 niveaux de titre, ce qui devrait être amplement suffisant.</​note>​ 
- 
 ===== Pré-requis ===== ===== Pré-requis =====
  
Ligne 30: 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 56: 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 126: 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 132: Ligne 166:
 syntaxe : syntaxe :
 <​code>​ <​code>​
-tput setaf [code_couleur]+tput setaf [code_couleur]
 </​code>​ </​code>​
  
Ligne 138: 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 149: 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 164: 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 170: 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 186: 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 286: 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 294: Ligne 331:
 </​code>​ </​code>​
  
-===== Conclusion ===== 
  
-Voila, vous savez maintenant faire le café avec Ubuntu ! 
- 
-===== Problèmes connus===== 
- 
-Si votre café est trop fort, saisissez la commande suivante dans un [[:​terminal]]:​ ... 
  
 ===== Voir aussi ===== ===== Voir aussi =====
  
-  * [[FR http://​www.tux-planet.fr/​les-codes-de-couleurs-en-bash/​|les codes couleurs en bash]] sur le site tux-planet +  * [[http://​www.tux-planet.fr/​les-codes-de-couleurs-en-bash/​|les codes couleurs en bash]] sur le site tux-planet ​ ​**(fr)** 
-  * [[FR https://​www.commentcamarche.com/​faq/​14740-coloration-du-shell-bash|coloration du shell bash]] +  * [[https://​www.commentcamarche.com/​faq/​14740-coloration-du-shell-bash|coloration du shell bash]] ​ ​**(fr)** 
-  * [[EN https://​www.admin-linux.fr/​bash-de-la-couleur-dans-le-shell/​|Bash : De la couleur dans le shell]] +  * [[https://​www.admin-linux.fr/​bash-de-la-couleur-dans-le-shell/​|Bash : De la couleur dans le shell]] ​ ​**(fr)** 
-  * [[EN https://​unix.stackexchange.com/​questions/​269077/​tput-setaf-color-table-how-to-determine-color-codes|Connaître les couleurs disponibles avec setaf]] +  * [[https://​unix.stackexchange.com/​questions/​269077/​tput-setaf-color-table-how-to-determine-color-codes|Connaître les couleurs disponibles avec setaf]] ​ ​**(en)** 
-  * [[EN http://​tldp.org/​HOWTO/​Bash-Prompt-HOWTO/​x361.html|Mouvement du curseur]]+  * [[https://​tldp.org/​HOWTO/​Bash-Prompt-HOWTO/​x361.html|Mouvement du curseur]] ​ ​**(en)**
  
 Tput Tput
-  * [[FR http://​ti1.free.fr/​index.php/​bash-tput/​|Aide-mémoire tput]] +  * [[http://​ti1.free.fr/​index.php/​bash-tput/​|Aide-mémoire tput]] ​ ​**(fr)** 
-  * [[FR https://​www.it-connect.fr/​linux-gestion-dadressage-du-curseur-avec-tput/​|Linux : Gestion d’adressage du curseur avec tput]] +  * [[https://​www.it-connect.fr/​linux-gestion-dadressage-du-curseur-avec-tput/​|Linux : Gestion d’adressage du curseur avec tput]] ​ ​**(fr)** 
-  * [[FR https://​www.commentcamarche.com/​faq/​6458-la-commande-tput|La commande tput]] +  * [[https://​www.commentcamarche.com/​faq/​6458-la-commande-tput|La commande tput]] ​ ​**(fr)** 
-  * [[EN http://​www.tldp.org/​HOWTO/​Bash-Prompt-HOWTO/​x405.html|Coloration et déplacement du curseur avec tput]] +  * [[http://​www.tldp.org/​HOWTO/​Bash-Prompt-HOWTO/​x405.html|Coloration et déplacement du curseur avec tput]] ​ ​**(en)** 
-  * [[EN https://​raymii.org/​s/​snippets/​Bash_Bits_Add_Color_Output_To_Your_Scripts.html|Ajoutez des couleurs aux sorties de vos scripts]] +  * [[https://​raymii.org/​s/​snippets/​Bash_Bits_Add_Color_Output_To_Your_Scripts.html|Ajoutez des couleurs aux sorties de vos scripts]] ​ ​**(en)** 
-  * [[EN http://​www.linuxcommand.org/​lc3_adv_tput.php|Créer une horloge]] +  * [[http://​www.linuxcommand.org/​lc3_adv_tput.php|Créer une horloge]] ​ ​**(en)** 
-  * [[EN https://​en.wikipedia.org/​wiki/​Tput|Tput sur wikipedia]] +  * [[https://​en.wikipedia.org/​wiki/​Tput|Tput sur wikipedia]] ​ ​**(en)** 
-  * [[EN http://​man7.org/​linux/​man-pages/​man1/​tput.1.html|Page man]] +  * [[https://​man7.org/​linux/​man-pages/​man1/​tput.1.html|Page man]]  ​**(en)** 
-  * [[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]] 
-  * [[EN https://​www.thegeekstuff.com/​2011/​01/​tput-command-examples/​|9 UNIX / Linux tput Examples: Control Your Terminal Color and Cursor]] +  * [[https://​www.thegeekstuff.com/​2011/​01/​tput-command-examples/​|9 UNIX / Linux tput Examples: Control Your Terminal Color and Cursor]] ​ ​**(en)** 
-  * [[EN https://​stackoverflow.com/​questions/​14259311/​set-or-change-vertical-position-of-the-cursor|Un menu pour vos scripts]] +  * [[https://​stackoverflow.com/​questions/​14259311/​set-or-change-vertical-position-of-the-cursor|Un menu pour vos scripts]] ​ ​**(en)** 
-  * [[EN https://​stackoverflow.com/​questions/​18893492/​why-is-there-both-setf-setb-and-setaf-setab-in-tput|Why is there both setf/setb and setaf/setab in tput?]]+  * [[https://​stackoverflow.com/​questions/​18893492/​why-is-there-both-setf-setb-and-setaf-setab-in-tput|Why is there both setf/setb and setaf/setab in tput?​]] ​ ​**(en)**
  
 Personnaliser le prompt Personnaliser le prompt
-  * [[FR https://​www.admin-linux.fr/​personnaliser-le-prompt/​|Personnaliser le prompt]] +  * [[https://​www.admin-linux.fr/​personnaliser-le-prompt/​|Personnaliser le prompt]] ​ ​**(fr)** 
-  * [[FR https://​www.commentcamarche.com/​faq/​14740-coloration-du-shell-bash|Coloration de l'​invite de commande]] +  * [[https://​www.commentcamarche.com/​faq/​14740-coloration-du-shell-bash|Coloration de l'​invite de commande]] ​ ​**(fr)** 
-  * [[EN https://​wiki.archlinux.org/​index.php/​Bash/​Prompt_customization|Personnalisation du prompt]]+  * [[https://​wiki.archlinux.org/​index.php/​Bash/​Prompt_customization|Personnalisation du prompt]] ​ ​**(en)**
  
 ---- ----
  
-<note help>Si vous considérez que votre contribution à la page de documentation est significative et/ou que vous souhaitez pouvoir être contacté par les lecteurs, vous avez la possibilité de la signer en ajoutant votre identifiant dans la ligne ci-dessous. Vous pouvez aussi vous abonner aux modifications de la page en cliquant sur "​S'​abonner à la page" (menu en haut à gauche). +//​Contributeurs principaux : [[:​utilisateurs:​zococo|zococo]].//
-</​note>​ +
- +
-//​Contributeurs principaux : [[:​utilisateurs:​votre_identifiant|votre nom ou pseudonyme]],​ [[:​utilisateurs:​autre_identifiant|nom ou pseudo autre]].//​ +
- +
-<note help>Si vous vous êtes basé sur un document existant pour écrire votre article, citez la source originale ! Ceci est indispensable afin de respecter les droits d'​auteur.</​note>​ +
- +
-//Basé sur [[http://​www.document_source.com|« Titre original de l'​article »]] par Auteur Original.//+
  
  • tutoriel/formater_le_texte_dans_le_terminal_avec_tput.1535303656.txt.gz
  • Dernière modification: Le 26/08/2018, 19:14
  • par zococo