Sapin de Noël en ligne de commande

La nouvelle année arrive, je ne veux plus penser à un travail sérieux.

Tout le monde essaie de décorer quelque chose pour les vacances : maison, bureau, lieu de travail... Décorons aussi quelque chose ! Par exemple, une invite de ligne de commande. Dans une certaine mesure, la ligne de commande est aussi un lieu de travail.

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

Sapin de Noël en ligne de commande

Dans d'autres, il est gris et discret :

Sapin de Noël en ligne de commande

Et on peut faire par exemple comme ceci :

Sapin de Noël en ligne de commande

Bien entendu, tous les marqueurs ont des goûts et des couleurs différents. Si une telle coloration vous semble ringarde et inappropriée, sachez que ce point de vue a parfaitement droit à la vie. Et si vous souhaitez également ajouter un peu d’esprit du Nouvel An, lisez la suite pour un court 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. Ou 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, $SHELL est supposé être votre fête.

Ces commandes sont appelées séquences d'échappement car au début de chacune d'elles se trouve un caractère ASCII « escape ». 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 du texte. Nous en choisirons une parmi toute la variété de possibilités : changer la couleur du texte et de l'arrière-plan.

Exécuter la séquence de code *ESC*[{attr1};...;{attrn}m
Comme symbole Échapper sa forme octale est utilisée, c'est-à-dire 33. En ce qui concerne les attributs, voici une courte liste de valeurs possibles :

0 Réinitialiser tous les attributs
1 Lumineux (luminosité accrue)
2 Faible
4 Souligner
5 Clignoter
7 Inverse
8 Caché (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 de fond (couleur du papier ou couleur de fond) :
40 Noir
41 Rouge
42 Vert
43 Jaune
44 Bleu
45 Magenta (magenta)
46 Cyan (bleu)
47 Blanc (белый)

Notez que si vous commandez maintenant dans le terminal : echo 33[0;31mнекоторый текст 33[0m’

... alors vous obtiendrez, comme on pouvait s'y attendre, un charabia monochrome en sortie :

Sapin de Noël en ligne de commande

Pourquoi? Parce qu'il fallait utiliser les capacités avancées de la commande echo. Il suffit d'ajouter une clé : echo -e ‘ 33[0;31mнекоторый текст 33[0m’

Le résultat semblera désormais correct :

Sapin de Noël en ligne de commande

Nous avons réglé la coloration de la sortie vers le terminal. Voyons maintenant comment coloriser l'invite 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 à l’aide de séquences d’échappement. Mais il y a une légère différence : il faut commencer la séquence par le symbole «[», et terminez par le symbole «]», sinon il sera envoyé au terminal.

Toutes les séquences de commandes possibles sont décrites en détail dans le manuel de bash, j'invite donc les lecteurs à choisir eux-mêmes ce qu'ils préfèrent voir à l'invite de ligne de commande. A titre d'exemple, je vais donner ma valeur pour la variable PS1 :

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

Je vais déchiffrer ce terrible sortilège :

[ 33[34;1m] - activer la couleur de police bleu vif (deuxième attribut)
t – afficher l'heure actuelle au format HH : MM : SS
[ 33[0m] – réinitialiser les paramètres de couleur de la police
, - juste une virgule (inattendu, non ?)
[ 33[32m] — activer la couleur de police verte
u@l@h – afficher le nom d'utilisateur, le numéro de terminal et le nom d'hôte court, séparés par le symbole « @ »
[ 33[0m] — réinitialiser à nouveau les paramètres de couleur de la police
: - juste un deux-points (tout d'un coup !)
[ 33[33m] — activer la couleur de police jaune
W – afficher le nom du répertoire courant
[ 33[0m] — réinitialiser à nouveau les paramètres de couleur de la police
, - une autre virgule (qui l'aurait cru !)
[ 33[31m] — activez la couleur de police rouge
! — afficher le numéro de commande dans le terminal
[ 33[0m] - n'oubliez pas de réinitialiser les paramètres de couleur de la police
$ — imprimez « # » pour root et « $ » pour tout le monde
n - traduction de ligne. Pour quoi? Pour que la commande démarre sur le bord gauche de la fenêtre, plutôt qu'à la fin de l'invite de ligne de commande.

Où redéfinir une variable ? L'endroit le plus logique pour le faire est ~/.bashrc.

L'apparence de l'invitation n'est limitée que par votre imagination. En principe, rien ne vous empêche de créer une invite de ligne de commande en forme de sapin de Noël à l'aide des outils décrits ci-dessus. Certes, une telle invitation sera très lourde et le travail ne deviendra 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 éditer ~/.bashrc). Allez-y! Et merci pour votre attention.

Sapin de Noël en ligne de commande

Que pouvez-vous lire d'autre sur le blog ? Cloud4Y

Configuration de top dans GNU/Linux
Les pentesters à la pointe de la cybersécurité
Des startups qui peuvent surprendre
Des oreillers sont-ils nécessaires dans un centre de données ?
La maison construite par un robot

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

Source: habr.com

Ajouter un commentaire