phhsnews.com


phhsnews.com / Comment personnaliser (et coloriser) votre invite de bascule

Comment personnaliser (et coloriser) votre invite de bascule


La plupart des distributions Linux configurent l'invite Bash pour ressembler àusername @ hostname: directory $. Mais vous pouvez configurer l'invite Bash pour qu'elle contienne ce que vous voulez, et même choisir les couleurs que vous voulez.

Les exemples d'étapes ici ont été réalisés sur Ubuntu 16.04 LTS. Le processus doit être identique sur les autres distributions Linux, bien que l'invite Bash par défaut et les paramètres du fichier .bashrc puissent être légèrement différents.

Où la variable d'invite est stockée

Votre configuration d'invite Bash est stockée dans votre utilisateur fichier .bashrc du compte, qui est à~ / .bashrc. Donc, si votre nom d'utilisateur est bob, le fichier est/home/bob/.bashrc.

Vous pouvez ouvrir le fichier pour voir la variable Bash actuelle. Nous utiliserons nano comme éditeur de texte, bien que vous puissiez également utiliser vi, emacs ou tout autre éditeur de texte avec lequel vous êtes à l'aise. Ouvrez un terminal et exécutez:

nano ~ / .bashrc

Faites défiler jusqu'à la sectionPS1 =. La première variable semble plutôt compliquée car elle inclut des informations de couleur - nous l'expliquerons plus tard. La deuxième variable, sans information de couleur, se lit comme suit: <$

$ {debian_chroot: + ($ debian_chroot)}  u @  h:  w  $

Ceci est encore un peu compliqué en raison du$ {debian_chroot: + ($ debian_chroot)}bits. Ils indiquent simplement à Bash de vous informer si vous utilisez un environnement de chroot Debian et ne seront normalement pas affichés. En ignorant ceux-ci, voici la structure par défaut de la variable d'invite Bash:

 u @  h:  w  $
uindique votre nom d'utilisateur,@indique le signe @, hindique le nom d'hôte (nom de l'ordinateur),:indique le caractère: windique le répertoire de travail et $indique un $ si vous êtes un compte utilisateur normal ou # si vous êtes root. Donc, en mettant tout cela ensemble, vous obteneznom d'utilisateur @ nom_hôte: répertoire_direction $.

Pour modifier votre invite Bash, il vous suffit d'ajouter, supprimer ou réorganiser les caractères spéciaux dans la variable PS1. Mais il y a beaucoup plus de variables que celles que vous pouvez utiliser par défaut.

Laissez l'éditeur de texte pour le moment dans nano, appuyez sur Ctrl + X pour quitter. Nous allons vous montrer comment expérimenter avec des variables avant d'en écrire une nouvelle dans votre fichier .bashrc

Comment créer une invite de bascule personnalisée

Votre configuration d'invite Bash est stockée dans la variable PS1. Pour enregistrer le contenu de la variable PS1 dans une nouvelle variable, exécutez la commande suivante:

DEFAULT = $ PS1

Vous pouvez maintenant définir la variable PS1 sur différentes valeurs à expérimenter. Par exemple, la première ligne ici définirait votre invite à une invite de base "utilisateur $", tandis que la seconde définirait votre invite à une invite de base "user: répertoire_travail $"

PS1 = " u  $" PS1 = " u:  w  $"

Si vous voulez revenir à votre invite par défaut, exécutez la commande suivante:

PS1 = $ DEFAULT

Bash sera restauré à son invite par défaut au fait que vous avez enregistré ces paramètres par défaut plus tôt. Notez que les modifications que vous apportez ici ne sont que temporaires pour la session Bash en cours. Vous pouvez donc vous déconnecter et vous reconnecter ou fermer et rouvrir la fenêtre du terminal pour revenir à l'invite par défaut. Mais la ligne ci-dessus permet de revenir facilement à votre invite par défaut Bash sans les tracas de se déconnecter ou de fermer une fenêtre.

Vous pouvez ajouter des caractères ou du texte à la variable. Donc, pour préfixer l'invite par défaut avec "Hello World", vous pouvez utiliser:

PS1 = "Hello World  u @  h:  w  $"

Maintenant que vous avez les bases, vous juste besoin de savoir ce que sont tous les caractères spéciaux. Vous ne vous soucierez probablement pas de beaucoup d'entre eux, mais voici la liste complète telle qu'elle apparaît dans le manuel Bash:

  • Un caractère de cloche: a
  • La date, au format "Jour semaine mois" ( par exemple, "Mar May 26"): d
  • Le format est passé à strftime (3) et le résultat est inséré dans la chaîne d'invite; un format vide entraîne une représentation temporelle spécifique aux paramètres régionaux. Les accolades sont obligatoires: D {format}
  • Un caractère d'échappement: e
  • Le nom d'hôte, jusqu'au premier '.': h
  • Le nom d'hôte: H
  • Le nombre de jobs actuellement gérés par le shell: j
  • Le nom de base du terminal du shell: l
  • A newline: n
  • Un retour chariot: r
  • Le nom du shell, le nom de base de $ 0 (la partie qui suit la barre oblique finale): s
  • L'heure, en 24 heures HH: MM: format SS: t
  • L'heure, en heures HH : MM: format SS: T
  • L'heure, au format 12 heures am / pm: @
  • L'heure, en format HH: MM 24 heures: A
  • Le nom d'utilisateur de l'utilisateur actuel: u
  • La version de Bash (par exemple, 2.00): v
  • La version de Bash, version + patchlevel (par exemple, 2.00. 0): V
  • Le répertoire de travail actuel, avec $ HOME abrégé avec un tilde (utilise la variable $ PROMPT_DIRTRIM): w
  • Le nom de base de $ PWD, avec $ HOME abrégé avec un tilde: W
  • Le numéro d'historique de cette commande:!
  • Le numéro de commande de cette commande: #
  • Si l'UID effectif est 0 , #, sinon $: $
  • Le caractère dont le code ASCII est la valeur octale nnn: nnn
  • Une barre oblique inversée:\
  • Commencer une séquence de non caractères d'impression. Cela pourrait être utilisé pour intégrer une séquence de contrôle de terminal dans l'invite: [
  • Terminer une séquence de caractères non imprimables:]

Donc, si vous vouliez ajouter la date et l'heure à votre invite Bash et placez le répertoire de travail sur commande sur une deuxième ligne, vous pouvez utiliser la construction suivante:

PS1 = "[ d  t]  u @  h  n  w  $"

Les crochets ici ne sont pas du tout nécessaires, mais aident à casser les choses visuellement et à rendre la ligne plus facile à lire. Comme nous l'avons déjà évoqué, vous pouvez ajouter du texte ou des caractères normaux à la variable que vous aimez, alors n'hésitez pas à utiliser ce qui fonctionne pour vous.

Il y a un truc plus puissant à savoir: Vous pouvez ajouter la sortie de n'importe quelle commande à l'invite. Chaque fois que l'invite apparaît, Bash exécutera la commande et remplira les informations actuelles. Pour ce faire, il suffit d'inclure toute commande que vous souhaitez exécuter entre deux caractères'. Ce n'est pas une apostrophe - c'est l'accent grave, qui apparaît au-dessus de la touche Tab de votre clavier.

Par exemple, supposons que vous vouliez voir la version du noyau Linux dans l'invite. Vous pourriez utiliser une ligne comme celle-ci:

PS1 = " u @  h sur 'uname -s -r'  w  $"

Comme autre exemple, disons que vous voulez voir le temps de disponibilité du système et moyenne de chargement, telle qu'affichée par la commandeuptime. Vous pouvez utiliser la construction suivante, qui met le temps de disponibilité sur sa propre ligne avant le reste de l'invite

PS1 = "('uptime')  n  u @  h:  w $"

Sentez-vous libre pour expérimenter avec différents caractères spéciaux et commandes pour assembler votre invite de commande idéale

Comment ajouter des couleurs à votre invite de bas

Une fois que vous avez trouvé votre invite préférée, vous pouvez y ajouter des couleurs. C'est en fait très simple, mais cela rend la variable très désordonnée et compliquée si vous ne comprenez pas ce que vous regardez.

Par exemple, la variable d'invite de couleur par défaut précédente était:

$ {debian_chroot : + ($ debian_chroot)}  [ 033 [01; 32m ]  u      033 [00m ]:  [ 033 [01; 34m ]  w  [ 033 [00m  ]  $

Ou, en supprimant les bits debian_chroot une fois de plus:

 [ 033 [01; 32m ]  u @  h  [ 033 [00m ]:  [ 033 [01; 34m ]  w  [ 033 [00m ]  $

Il s'agit en fait juste de la variable u @ h: w $, mais avec des informations de couleur. Vraiment, nous pouvons le décomposer en quelques sections:

 [033 [01; 32m ]   u @  h   [ 033 [00m ] :   [ 033 [01; 34m ]   w   [ 033 [00m ]   $ 

La première section est la u @ hbit, précédé d'une information de couleur qui le rend vert. Le deuxième est le caractère:, précédé d'une information de couleur qui supprime toute coloration. Le troisième est le bit w, précédé d'une information de couleur qui le rend bleu. Le quatrième est le bit $, précédé d'une information de couleur qui supprime toute coloration.

Une fois que vous avez compris comment construire les tags de couleur, vous pouvez ajouter les couleurs que vous voulez aux sections de votre Bash vous invite à aimer.

Voici ce que vous devez savoir: Vous devez inclure toutes les informations de code de couleur entre les caractères [et]. A l'intérieur du tag, vous devez commencer par 033 [ou e [pour indiquer à Bash qu'il s'agit d'informations de couleur. Les deux 033 [et e <font la même chose. e <est plus court, donc plus pratique à utiliser, mais nous utiliserons 033 [ici car il correspond à ce qui est utilisé par défaut. À la fin de la balise, vous devez terminer parm pour indiquer la fin d'une balise de couleur

En procédant comme suit, voici à quoi ressemblera chaque balise de couleur. La seule différence est l'information que vous ajoutez à la place de COLOR pour définir la couleur réelle:

 [ 033 [ COLOR  m ]

Bash vous permet de changer la couleur du texte de premier plan, ajoutez des attributs comme "gras" ou "souligné" au texte et définissez une couleur d'arrière-plan

Voici les valeurs du texte de premier plan:

  • Noir: 30
  • Bleu: 34
  • Cyan: 36
  • Vert: 32
  • Violet: 35
  • Rouge: 31
  • Blanc: 37
  • Jaune: 33

Par exemple, puisque le texte violet est le code couleur 32, vous utiliserez [ 033 [ 32 m ]pour le texte en violet.

Vous pouvez également spécifier un attribut pour le texte. Cet attribut doit être ajouté avant le numéro de couleur, séparé par un point-virgule (;).

Voici les valeurs des attributs de texte:

  • Texte normal: 0
  • Texte gras ou clair: 1 (Cela dépend de l'émulateur de terminal.)
  • Texte atténué: 2
  • Texte souligné: 4
  • Texte clignotant: 5 (Cela ne fonctionne pas dans la plupart des émulateurs de terminal.)
  • Texte inversé: 7 (Ceci inverse les couleurs de premier plan et d'arrière-plan voir le texte noir sur fond blanc si le texte actuel est un texte blanc sur fond noir.)
  • Texte masqué: 8

Il n'est pas nécessaire d'inclure l'attribut de texte normal.

Par exemple, comme le texte rouge est le code 31 et le texte gras le code 1, vous devez utiliser [ 033 [ 1; 31 m ]pour le texte en gras rouge.

Vous pouvez également spécifier une couleur de fond, mais vous ne pouvez pas ajouter un attribut à une couleur de fond

Voici les valeurs des couleurs de fond:

  • Fond noir: 40
  • Fond bleu: 44
  • Fond cyan: 46
  • Fond vert: 42
  • Fond violet: 45
  • Fond rouge: 41
  • Fond blanc: 47
  • Fond jaune: 43

Par exemple, comme un fond bleu est le code 44, [033 [ 44 m ]indiquerait un arrière-plan bleu.

Vous pouvez spécifier la couleur de premier plan et de fond Mots clés. Par exemple, 42 représente un fond vert et 31 représente un texte rouge. Ainsi, pour que l'invite par défaut devienne du texte rouge sur un fond vert, vous utiliseriez:

PS1 = " [ 033 [ 42  m ]  [ 033 [ 31  m ]  u @  h:  w  $ "

Nous ne spécifions ici qu'une seule couleur de fond, puis une seule couleur de texte de premier plan, qui commence au début de l'invite et est appliquée à tout le texte dans l'invite. Toutefois, vous pouvez spécifier autant de tags de couleur que vous le souhaitez dans la variable pour colorier les différentes sections de votre invite.

Les couleurs du texte d'arrière-plan et d'avant-plan ne dépassent pas l'invite sauf si vous spécifiez le code de couleur 00 . Vous pouvez également utiliser cette balise dans la variable pour réinitialiser la mise en forme à la valeur par défaut quelque part dans votre invite. Par exemple, la ligne suivante terminerait toute la coloration avant le caractère $

PS1 = " [ 033 [ 42  m ]  [ 033 [ > 31  m ]  u00a0  :  w \ [ 033 [ 00  m ]  $ "

Comment définir votre nouvelle invite par défaut

Si vous faites des essais avec des couleurs, vous devriez avoir une invite Bash que vous aimez dans la session en cours. Mais vous voudrez probablement rendre cette nouvelle invite permanente afin qu'elle soit automatiquement utilisée dans toutes vos sessions Bash.

Pour ce faire, vous devez juste changer le contenu de la variable PS1 dans le fichier .bashrc, que nous avons examiné plus tôt.

Ouvrez le fichier .bashrc dans votre éditeur de texte préféré, comme ceci:

nano ~ / .bashrc

Faites défiler vers le bas et localisez la section PS1 =. Remplacez simplement la variable par défaut avec votre variable personnalisée. Vous voudrez probablement quitter la$ {debian_chroot: + ($ debian_chroot)}bits seulement, cependant, ils n'apparaîtront que si vous êtes dans un environnement chroot,

Entrez votre variable PS1 colorée sousif [" $ color_prompt "= oui]; puisligne. Entrez la variable sans couleurs sous la ligneelse

Enregistrez le fichier et fermez votre éditeur de texte. Par exemple, pour enregistrer le fichier dans nano, appuyez sur Ctrl + O, appuyez sur Entrée, puis appuyez sur Ctrl + X pour quitter.

La prochaine fois que vous démarrerez un nouveau shell Bash, par exemple, en vous connectant au terminal ou En ouvrant une nouvelle fenêtre de terminal, vous verrez votre invite personnalisée.


Comment nettoyer l'ancien plastique jauni sur les ordinateurs et les systèmes de jeux rétro

Comment nettoyer l'ancien plastique jauni sur les ordinateurs et les systèmes de jeux rétro

Vous avez déjà remarqué que vos vieux gadgets ont pris une horrible couleur jaune depuis que vous les avez achetés? Les anciens Macs, Commodores, systèmes Nintendo et autres machines ont l'air affreux 30 ans plus tard - mais il y a un moyen de les réanimer. Pourquoi le vieux plastique devient jaune (et comment vous pouvez le rendre blanc) le jaunissement se produit grâce à un retardateur de flamme appelé brome dans ces vieux plastiques ABS.

(how-top)

MoviePass, l'abonnement de 9,95 $ à un cinéma, vaut le détour

MoviePass, l'abonnement de 9,95 $ à un cinéma, vaut le détour

Jeune couple attrayant regardant une salle de cinéma MoviePass offre une expérience sans précédent pour les cinéphiles: 9,99 $ par mois film dans les théâtres tous les jours. Oui, tu l'as bien lu. Vous pouvez regarder une trentaine de films dans les cinémas tous les mois pour dix dollars. Puisque c'est moins cher qu'un seul billet dans la plupart des endroits, les gens affluaient vers elle.

(how-top)