Flux rss
Collection CommentCaMarche.net

Coloration de l'invite de commande (shell)

Publié par Kharec, dernière mise à jour le dimanche 23 novembre 2008 à 18:56:21 par Ssylvainsab


Pourquoi le faire?


En personnalisant la couleur des caractères de l'invite (ou du shell), vous la rendez plus lisible. Si vous adoptez une convention de couleurs, vous pouvez transmettre du sens selon la couleur, ce qui évite d'avoir une invite trop longue.

Quelles informations peuvent être transmises par les couleurs?


Vous pouvez afficher l'invite en vert pour une première machine hôte et en bleu pour une autre, ou bien en vert si le système n'est pas chargé, en jaune s'il l'est un peu et en rouge si presque toutes les ressources sont utilisées. Ou plus simplement, vous choisissez une couleur pour une invite root, une autre pour une MC ...

Les techniques


Deux techniques sont possibles. La plus utilisée (mais pas la plus efficace) consiste à insérer des caractères d'échappement (ils ont une signification spéciale pour l'interpréteur). La chaîne suivante affiche l'invite en bleu:
$ PS1="\[\033[0;34m\][\u@\h]\[\033[0m\]"
Cette méthode souffre de deux inconvénients: sa syntaxe est peu lisible, donc sujette aux erreurs de saisie, et elle n'est utilisable que si la fenêtre de terminal supporte les séquence d'échappement ANSI, ce qui n'est pas le cas de beaucoup de terminaux, ni de logiciels d'émulations de terminaux. Adoptez plutôt la technique se basant sur tput.

Technique de tput


Lorsque vous colorisez l'invite (ou le shell) avec tput, vos définitions sont portables vers d'autres émulateurs de terminaux. tput sait quelles séquences d'échappement sont à utiliser, ce qui vous épargne cette fastidieuse recherche.
$ BLUE=$ (tput setaf 4)
$ BLACK=$ (tput setaf 0)
$ PS1="\ [$BLUE\] \u@\h] \ [$BLACK\] "
Etudions ces lignes:
La première ligne de l'exemple exploite tput pour définir une variable qui contient la séquence de caractères pour forcer la couleur de premier plan en Bleu (pour les prochains caractères à afficher). La deuxième ligne fait de même pour le noir. Il devient inutile de connaître les séquences d'échappement, puisque tput gère un fichier de correspondance des descriptions pour tous les terminaux, fichier qu'il consulte pour trouver la séquence appropriée au terminal physique ou émulé. La troisième ligne, enfin, utilise les deux variable $BLUE et $BLACK dans la définition de la variable d'invite $PS1.
Mais tput peut faire bien plus que coloriser les caractères de l'invite.

NB: Vous pouvez afficher la liste complète par les commandes man tput et man terminfo.
[Shell] Commande shell sous Windows !!!! (Résolu) Bonjour à tous, je travail sous windows avec mysql et il me faudrai la ligne de commande shell> , est-ce que quelqu'un s'y connaît à savoir que je cherche à faire une importation de base de données pour travailler avec le logiciel Cacti.... www.commentcamarche.net/forum/affich-2582766-shell-commande-shell-sous-windows
Probleme de commandes shell (Résolu) OS : mandrake 10.1 salut, j'ai un probleme avec mes commandes shell; Le fait d'ecrire mes variable d'envorinnement sous la forme $(nom_de_la_variable), me renvoit des messages d'erreur; Alors quand je les ecris sous la forme... www.commentcamarche.net/forum/affich-1387548-probleme-de-commandes-shell
[PERL]-Exécuter une commande interactive (Résolu) Bonjour, je souhaite exécuter en PERL la commande shell suivante et récupérer le résultat : usr/local/bin/sudo /usr/bin/nsradmin www.commentcamarche.net/forum/affich-2429292-perl-executer-une-commande-interactive
[Shell] Accès aux dernières commandes de l'historiqueLe shell Linux/Unix regorge de fonctionnalités permettant de gagner du temps. Ainsi, il est possible de remonter dans l'historique des dernières commandes grâce aux flèches de navigation en appuyant sur la flèche du haut. Mais il y a moyen... www.commentcamarche.net/faq/sujet-971-shell-acces-aux-dernieres-commandes-de-l-historique
Invite de commande plein écran avec le pointeurSi vous avez besoin d'une invite de commandes en plein écran, voici comment faire : Ouvrir l'invite de commande, et agrandir la fenêtre (elle n'est malgré tout pas en plein écran). Cliquez droit sur la décoration de la fenêtre (en haut). Allez... www.commentcamarche.net/faq/sujet-9283-invite-de-commande-plein-ecran-avec-le-pointeur
Empêcher la fermeture automatique de l'invite de commandesIl arrive parfois, voir souvent que la fenêtre d'invite de commandes se ferme quand on veut voir des informations, comme son IP... Pour parer à ce problème il suffit de lancer l'invite de commande via cmd /K (à taper dans une fenêtre Exécuter... www.commentcamarche.net/faq/sujet-8833-empecher-la-fermeture-automatique-de-l-invite-de-commandes
Commande Taille+nom fichier (Résolu)Bonjour, voilà, je me met à faire une liste (par tableur) de fichiers avec leur taille respective j'aimerai savoir si une commande shell pourrai me renvoyer juste ces informations (sans le propriétaire la date d'accès etc) et je me... www.commentcamarche.net/forum/affich-3757731-commande-taille-nom-fichier
Mémoriser des commandes sur Ubuntu (Résolu)bonsoir, je souhaiterai savoir si y a un moyen d'éxecuter automatiquement des commandes shell au démarage. Notament pour activer le hdparm -d1 automatiquement (parce que sinon mes dvd sont illisibles) je débute sur ubuntu .... merci www.commentcamarche.net/forum/affich-2148228-memoriser-des-commandes-sur-ubuntu
Créer une nouvelle commande terminal (Résolu)Bonjour, Je cherche à ajouter une commande shell pour le terminal linux. J'ai le fichier "script.sh". Je peux l'exécuter en faisant ./script.sh, mais je voudrais l'associer à une commande (de nom "script" par exemple). Je n'arrive... www.commentcamarche.net/forum/affich-3440918-creer-une-nouvelle-commande-terminal
Systèmes UNIX - Le shellIntroduction au shell L'interpréteur de commandes est l'interface entre l'utilisateur et le système d'exploitation, d'où son nom anglais «shell», qui signifie «coquille». Le shell est ainsi chargé de faire l'intermédiaire entre le système... www.commentcamarche.net/contents/unix/unix-shell.php3
Linux - Le shellIntroduction au shell L'interpréteur de commandes est l'interface entre l'utilisateur et le système d'exploitation, d'où son nom anglais «shell», qui signifie «coquille». Le shell est ainsi chargé de faire l'intermédiaire le système... www.commentcamarche.net/contents/linux/linshell.php3
Commandes LinuxTableau des principales commandes Linux Commande Description équivalent DOS ls liste le contenu d'un répertoire dir cd change de répertoire cd cd .. répertoire parent cd.. mkdir crée un nouveau... www.commentcamarche.net/contents/linux/lincomm.php3