Sapin de Noël sur la ligne de commande

Bientôt la nouvelle année, je ne veux pas penser à un travail sérieux.

Tout le monde essaie de décorer quelque chose pour les vacances: maison, bureau, lieu de travail ... Laissez-nous et nous allons décorer quelque chose! Par exemple, une invite de commande. Dans une certaine mesure, la ligne de commande est également un lieu de travail.

Dans certaines distributions, il est déjà "décoré":



Dans d'autres, il est gris et discret:



Et nous pouvons faire, par exemple, comme ceci:



Bien sûr, le goût et la couleur de tous les marqueurs sont différents. Si une telle coloration vous semble maladroite et inappropriée, sachez que ce point de vue a tout à fait droit à la vie. Et si vous souhaitez également ajouter un peu d'humeur du Nouvel An, lisez la suite pour un petit article du Nouvel An de Cloud4Y.

Tout d'abord, je vais expliquer comment la sortie du terminal est "colorée". Cela se fait à l'aide de séquences d'échappement. Et plus précisément - les séquences de codes de contrôle du terminal ANSI / VT100. Ce qui signifie automatiquement que votre émulateur de terminal doit prendre en charge cette norme, sinon le miracle du Nouvel An ne se produira pas. Et oui, on suppose que vous avez $ SHELL bash.

Ces commandes sont appelées séquences d'échappement pour la raison qu'au début de chacune d'elles se trouve le caractère d'échappement ASCII. Il existe de nombreuses séquences de contrôle, et elles permettent, par exemple, d'afficher les paramètres du terminal, de contrôler l'affichage et le mouvement du curseur, de changer la police, de supprimer et de masquer le texte. Nous choisirons l'une des nombreuses possibilités - changer la couleur du texte et de l'arrière-plan.

Nous exécutons la séquence de code *ESC*[{attr1};...;{attrn}m
En tant que caractère d' échappement , sa forme octale, c'est-à-dire \ 033, est utilisée . Quant aux attributs, voici une courte liste de valeurs possibles:

0 Réinitialisez tous les attributs.
1 lumineux
2 Dim
4 Souligné (souligné)
5 Clignotement
7 Marche arrière
8 Masqué (masquer le texte)

Couleurs de premier plan (couleur du stylo, le texte est affiché dans cette couleur):
30 Noir
31 Rouge
32 Vert
33 Jaune
34 Bleu
35 Magenta (magenta)
36 Cyan (bleu)
37 Blanc

Couleurs d'arrière-plan (couleur du papier ou couleur d'arrière-plan):
40 Noir
41 Rouge
42 Vert
43 Jaune
44 Bleu
45 Magenta (Magenta)
46 Cyan (bleu)
47 Blanc

Veuillez noter que si vous commandez maintenant dans le terminal: echo \033[0;31m \033[0m'

... alors vous obtiendrez comme prévu un abracadabra monochrome en sortie:



Pourquoi? Parce qu'il était nécessaire d'utiliser les fonctionnalités avancées de la commande echo. Il suffit d'ajouter une clé: echo -e '\033[0;31m \033[0m'

Maintenant, la sortie sera correcte:



Avec la coloration de la sortie vers le terminal triée. Voyons maintenant comment coloriser l'invite de ligne de commande.

Cela se fait en modifiant la variable PS1. La variable est responsable de l'invite de ligne de commande. Son apparence peut également être modifiée, notamment en utilisant des séquences d'échappement. Mais il y a une légère différence: vous devez commencer la séquence avec le caractère " \ [ ", et terminer avec le caractère " \] ", sinon elle sera affichée sur le terminal.

Toutes les séquences de commandes possibles sont décrites en détail dans le manuel bash, donc je suggère aux lecteurs de choisir eux-mêmes ce qu'ils aiment observer à l'invite de commande. À titre d'exemple, je donnerai ma valeur à la variable PS1:

\[\033[34;1m\]\t\[\033[0m\],\[\033[32m\]\u@\l@\h\[\033[0m\]:\[\033[33m\]\W\[\033[0m\],\[\033
[31m\]\!\[\033[0m\]\$\n

Je vais déchiffrer ce terrible sort:

\ [\ 033 [34; 1m \] - activer la couleur de police bleu vif (deuxième attribut)
\ t - affiche l'heure actuelle au format HH: MM: SS
\ [\ 033 [0m \] - réinitialiser les paramètres de couleur de police
, - juste une virgule (de façon inattendue, non?)
\ [\ 033 [32m \] - allume la couleur verte de la police
\ u @ \ l @ \ h - affiche le nom d'utilisateur, le numéro de terminal et le nom d'hôte abrégé, séparés par le symbole "@"
[\ 033 [0m \] - réinitialiser à nouveau les paramètres de couleur de police
: - juste un colon (tout d'un coup!)
\ [\ 033 [33m \] - active la couleur jaune de la police
\ W - affiche le nom du répertoire courant
[\ 033 [0m \] - réinitialiser à nouveau les paramètres de couleur de police
- une autre virgule (qui aurait pensé!)
\ [\ 033 [31m \] - allume la couleur rouge de la police
\! - imprimer le numéro de commande dans le terminal
[\ 033 [0m \] - n'oubliez pas de réinitialiser les paramètres de couleur de police
\ $ - affiche «#» pour root et «$» pour tout le monde
\ n - saut de ligne. Pourquoi? Pour que la commande démarre à partir du bord gauche de la fenêtre et non à partir de la position de fin de l'invite de commande.

Où remplacer une variable? La façon la plus logique de le faire est dans ~ / .bashrc.

L'apparence de l'invitation n'est limitée que par votre imagination. En principe, rien ne vous empêche d'utiliser les outils ci-dessus pour créer une invite de ligne de commande sous la forme d'un arbre de Noël. Certes, une telle invitation sera très lourde et le travail ne sera certainement pas plus pratique. L'arbre de Noël peut simplement être affiché au-dessus de l'invite de ligne de commande lors de la connexion (nous devons encore modifier ~ / .bashrc). Allez-y! Et merci d'avoir regardé.



Quoi d'autre est utile de lire sur le blog Cloud4Y

Configurer top dans GNU / Linux
→ Les pentesters à la pointe de la cybersécurité
→ Des startups qui peuvent surprendre
Avez-vous besoin d'oreillers dans le centre de données?
→ La maison que le robot a construite

Abonnez-vous à notre chaîne Telegram pour ne pas manquer un autre article! Nous écrivons pas plus de deux fois par semaine et uniquement pour affaires. Nous vous rappelons également que Cloud4Y, le fournisseur de cloud d'entreprise, a lancé la promotion «FZ-152 Cloud pour le prix d'une promotion régulière». Vous pouvez postuler jusqu'au 31 décembre .

Source: https://habr.com/ru/post/fr480788/


All Articles