Colorare il Prompt del bash


Riprendiamo il discorso riguardante il Prompt del terminale Linux, nell’articolo precedente, abbiamo parlato di come modificare l’output del bashrc, utilizzando variabili d’ambiente e personalizzando le scritte da visualizzare.

In questo articolo invece voglio spiegarvi come aggiungere dei colori alla stringa PS1, che abbiamo modificato in precedenza con lo scorso articolo.

I principi sono simili a quelli di “echo“. In pratica si utilizzano dei tag, abbastanza confusionari che permettono di cambiare il colore.

\[ comuncia una sequenza di caratteri non stampabili
\] termina la sequenza di caratteri non stampabili
Esempio: “\[Questo Testo non verrà stampato\]

Semplice vero se sarebbe solo questo? Questi sono solo i due tag di apertura e di chiusura, necessari per inserire il colore. All’interno di questi tag dobbiamo inserire il codice del colore

\e[_m È il codice utilizzato per dire al sistema che i numeri successivi si riferiscono ad un colore.

Avremmo dunque un codice simile a questo: \[\e[_m\] per inizializzare un colore e questo codice \[\e[m\] per terminarlo. Notate che non ho inserito il carattere “_”, questo carattere deve essere sostituito con il codice del colore.

PS1=’\[\e[0;31m\]\u\[\e[m\] \[\e[1;34m\]\w\[\e[m\] \[\e[0;31m\]\$ \[\e[m\]\[\e[0;32m\]
Fornisce il nome utente in rosso, la directory attuale in blu, il testo digitato in and text-typing in verde.

Ricordo le variabili di ambiente per il bashrc:

\d – Data
\w – Directory corrente
\u – Nome dell’utente
\t – Ora corrente
\s – Nome della shell

e i colori:

Nero 0;30 Grigio scuro 1;30
Blu 0;34 Blu brillante 1;34
Verde 0;32 Verde brillante 1;32
Ciano 0;36 Ciano brillante 1;36
Rosso 0;31 Rosso brillante 1;31
Viola 0;35 Viola brillante 1;35
Marrone 0;33 Giallo 1;33
Grigio chiaro 0;37 Bianco 1;37

Fatemi sapere se sono stato esaustivo, sarò felice di togliervi i dubbi.

Ricordate che ogni tag colore deve essere aperto e chiuso.

\[\e[numcolore m\] Apre il tag
\[\e[m\] Chiude il tag