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 31/08/2018, 20:50]
zococo
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 41: Ligne 41:
  
 Quelques éléments de formatage du texte peuvent également être définis. Ils sont activés par les codes suivants : Quelques éléments de formatage du texte peuvent également être définis. Ils sont activés par les codes suivants :
-^ code ^ effet ^ +^ code ^ effet ^
 | 1 | gras| | | 1 | gras| |
 | 4 | soulignement | | | 4 | soulignement | |
Ligne 55: 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 formatages 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 126:
 ===== 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. 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 302: 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 312: 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.1535741434.txt.gz
  • Dernière modification: Le 31/08/2018, 20:50
  • par zococo