GNU/Linux >> Linux Esercitazione >  >> Linux

Come aggiungere un'icona al prompt di bash

In realtà, sì, puoi.

Nelle versioni recenti di Bash, almeno 4 (potrei farlo in 4.2 e 4.3), puoi rendere emoji con l'esadecimale.

Usa lo echo -e bandiera.

incolla un'emoji in cui hai cercato e fai un dump esadecimale per vedere di cosa è fatta:

plasmarob ~ $ echo -n ""| hexdump

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

E poi prendi quella linea superiore e sfuggi a ogni coppia di esagoni con \x :

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

In realtà ho modificato il mio in:

plasmarob ~ ⚡

Quindi sì, trovane uno come questo e prova ad aggiungerlo al tuo .bashrc o .bash_profile .

Modifica:qualcosa con SO o il rendering del browser potrebbe essere cambiato perché la bandiera in questo post ora viene visualizzata come un carattere "US". YMMV ma presumo che funzionerà ancora nelle versioni dichiarate di bash.


Al giorno d'oggi, puoi aggiungere emoji se hai un carattere che riconosce le emoji. Immagino che questa non fosse un'opzione facilmente praticabile quando la domanda è stata originariamente pubblicata

Ho scritto questo post sul blog a riguardo un paio di anni fa.

Non so delle bandiere americane, ma export PS1="\360\237\232\251 > " ottiene un flag nel tuo prompt.

Ho anche scritto uno strumento shell per rendere un po' più semplice la stampa degli escape per echo o shell prompt. Si chiama emo


Scusa no. I terminali non fanno grafica.

Per una descrizione completa di ciò che puoi fare, vedere la PROMPTING sezione della pagina man di bash(1):

RICHIESTA

Durante l'esecuzione interattiva, bash visualizza il prompt primario PS1 quando è pronto a leggere un comando e il prompt secondario PS2 quando ha bisogno di più input per completare un comando. Bash consente di personalizzare queste stringhe di prompt inserendo un numero di caratteri speciali con escape backslash che vengono decodificati come segue:

\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

Il numero del comando e il numero della cronologia sono generalmente diversi:il numero della cronologia di un comando è la sua posizione nell'elenco della cronologia, che può includere comandi ripristinati dal file della cronologia (vedere CRONOLOGIA di seguito), mentre il numero del comando è la posizione nella sequenza di comandi eseguiti durante la sessione di shell corrente. Dopo che la stringa è stata decodificata, viene espansa tramite l'espansione dei parametri, la sostituzione dei comandi, l'espansione aritmetica e la rimozione delle virgolette, in base al valore dell'opzione di shell promptvars (vedere la descrizione del comando shopt in COMANDI INCORPORATI DELLA SHELL di seguito).

Il \e , \[ e \] le sequenze di escape meritano un'attenzione speciale. Con questi puoi inserire codici di escape ANSI per comandare al terminale di cambiare il colore di primo piano, il colore di sfondo, spostare il cursore, cancellare parti dello schermo e fare altri trucchi fantasiosi.

Questo è, ad esempio, il modo in cui il tuo prompt cambia colore. \[\e[0;31m\] imposta il colore di primo piano su rosso e \[\e[0;0m\] lo ripristina al valore predefinito.


Linux
  1. Come abbreviare il prompt di Bash in Linux?

  2. Come trovare il numero di core in Ubuntu

  3. Come posso richiamare l'argomento del precedente comando bash?

  4. Come visualizzare il percorso corrente nel prompt dei comandi in sh di Linux (non bash)?

  5. Come trovo il numero di riga in Bash quando si è verificato un errore?

Come utilizzare il comando Bash let {con esempi}

Come utilizzare il comando di lettura Bash

Come personalizzare il prompt di Bash in Linux

Come ottenere il numero di processori/core in Linux

Il comando "eval" in Bash?

Come trovare file con dozzine di criteri con il comando Trova Bash