GNU/Linux >> Tutoriels Linux >  >> Linux

Comment ajouter une icône à l'invite bash

En fait, oui, vous pouvez.

Dans les versions récentes de Bash, au moins 4 (je pouvais le faire en 4.2 et 4.3), vous pouvez rendre les emoji avec l'hex.

Utilisez le echo -e drapeau.

collez un emoji que vous avez recherché et faites un hexdump pour voir de quoi il est composé :

plasmarob ~ $ echo -n ""| hexdump

0000000 f0 9f 87 ba f0 9f 87 b8                        
0000008

Et puis prenez cette ligne du haut et échappez à chaque paire d'hexagones avec \x :

plasmarob ~ $ echo -e 'See? \xf0\x9f\x87\xba\xf0\x9f\x87\xb8'
See? 

En fait, j'ai modifié le mien pour qu'il soit :

plasmarob ~ ⚡

Alors oui, trouvez-en un comme celui-ci et essayez de l'ajouter à votre .bashrc ou .bash_profile .

Modifier :Quelque chose avec SO ou le rendu du navigateur peut avoir changé parce que le drapeau dans ce message est maintenant rendu comme un caractère "US". YMMV mais je suppose que cela fonctionnera toujours dans les versions indiquées de bash.


De nos jours, vous pouvez ajouter des emoji si vous avez une police compatible avec les emoji. Je suppose que ce n'était pas une option facilement viable lorsque la question a été initialement publiée

J'ai écrit ce billet de blog à ce sujet il y a quelques années.

Je ne sais pas pour les drapeaux américains, mais export PS1="\360\237\232\251 > " obtient un indicateur dans votre invite.

J'ai également écrit un outil shell pour faciliter un peu l'impression des échappements pour l'écho ou l'invite du shell. Ça s'appelle emo


Non désolé. Les terminaux ne font pas de graphiques.

Pour une description complète de ce que vous pouvez faire, voir l'INVITE section de la page de manuel bash(1) :

INVITE

Lors d'une exécution interactive, bash affiche l'invite principale PS1 lorsqu'il est prêt à lire une commande, et l'invite secondaire PS2 lorsqu'il a besoin de plus d'entrées pour terminer une commande. Bash permet de personnaliser ces chaînes d'invite en insérant un certain nombre de caractères spéciaux échappés par une barre oblique inverse qui sont décodés comme suit :

\a     an ASCII bell character (07)
\d     the date in "Weekday Month Date" format (e.g., "Tue May 26")
\D{format}
       the  format  is  passed to strftime(3) and the result is inserted into the
       prompt string; an empty format results in a locale-specific time
       representation. The braces are required
\e     an ASCII escape character (033)
\h     the hostname up to the first ‘.’
\H     the hostname
\j     the number of jobs currently managed by the shell
\l     the basename of the shell’s terminal device name
\n     newline
\r     carriage return
\s     the name of the shell, the basename of $0 (the portion following the final
       slash)
\t     the current time in 24-hour HH:MM:SS format
\T     the current time in 12-hour HH:MM:SS format
\@     the current time in 12-hour am/pm format
\A     the current time in 24-hour HH:MM format
\u     the username of the current user
\v     the version of bash (e.g., 2.00)
\V     the release of bash, version + patch level (e.g., 2.00.0)
\w     the current working directory, with $HOME abbreviated with a tilde (uses the
       value of the PROMPT_DIRTRIM variable)
\W     the basename of the current working directory, with $HOME abbreviated with a
       tilde
\!     the history number of this command
\#     the command number of this command
\$     if the effective UID is 0, a #, otherwise a $
\nnn   the character corresponding to the octal number nnn
\\     a backslash
\[     begin a sequence of non-printing characters, which could be used to embed a
       terminal control sequence into the prompt
\]     end a sequence of non-printing characters

Le numéro de commande et le numéro d'historique sont généralement différents :le numéro d'historique d'une commande est sa position dans la liste d'historique, qui peut inclure des commandes restaurées à partir du fichier d'historique (voir HISTOIRE ci-dessous), tandis que le numéro de commande est la position dans la séquence des commandes exécutées pendant la session shell en cours. Une fois la chaîne décodée, elle est étendue via l'expansion des paramètres, la substitution de commande, l'expansion arithmétique et la suppression des guillemets, sous réserve de la valeur de l'option shell promptvars (voir la description de la commande shopt sous COMMANDES SHELL BUILTIN ci-dessous).

Le \e , \[ et \] les séquences d'échappement méritent une attention particulière. Avec ceux-ci, vous pouvez insérer des codes d'échappement ANSI pour ordonner au terminal de changer la couleur de premier plan, la couleur d'arrière-plan, de déplacer le curseur, d'effacer des parties de l'écran et de faire d'autres astuces.

C'est, par exemple, comment votre invite change de couleur. \[\e[0;31m\] définit la couleur de premier plan sur rouge, et \[\e[0;0m\] le réinitialise à la valeur par défaut.


Linux
  1. Comment raccourcir l'invite Bash sous Linux ?

  2. La commande "eval" dans Bash ?

  3. Comment trouver le nombre de cœurs dans Ubuntu

  4. Comment puis-je compter le nombre de caractères dans une variable Bash

  5. Comment afficher le chemin actuel dans l'invite de commande dans le sh (pas bash) de Linux ?

Comment utiliser la commande Bash let {avec exemples}

Comment utiliser la commande de lecture Bash

Comment personnaliser l'invite Bash sous Linux

Comment obtenir le nombre de processeurs/cœurs sous Linux

Comment rechercher des fichiers avec des dizaines de critères avec la commande Bash Find

Comment puis-je trouver le numéro de ligne dans Bash lorsqu'une erreur s'est produite ?