2 minuti
[Guida] Come personalizzare il prompt della shell Bash
Nonostante chiunque usi un sistema Linux abbia a che fare più o meno di frequente con il terminale, forse non tutti sanno che è possibile personalizzare il prompt della shell a livello di informazioni mostrate e colorazione. Questo può risultarci utile sia se vogliamo togliere/aggiungere le info mostrate, sia se vogliamo soltanto cambiare il colore (per esempio per adattarlo al tema che usiamo nel nostro sistema). Innanzitutto c’è da sapere che la configurazione viene salvata in una variabile di ambiente PS1: quindi, per controllare quella attuale, diamo da terminale
$ echo $PS1
È probabile che di default la variabile sia settata a [\u@\h \W]\$ o qualcosa di simile, e in particolare ecco il significato dei singoli componenti:
- \u mostra l’username corrente
- \h hostname
- \W directory corrente
- \S mostra # se siamo root, oppure $
Per personalizzare il prompt dobbiamo quindi modificare questa variabile aggiungendo oppure togliendo i componenti relativi alle informazioni che vogliamo vedere. Supponiamo per esempio di volerlo modificare rispetto al precedente, affinchè tra le parentesi venga mostrato solo l’username: in questo caso possiamo digitare da terminale
$ export PS1="[\u]\$"
Finchè questo comando viene eseguito così da terminale, gli effetti saranno relativi soltanto alla sessione in corso; se vogliamo renderli definitivi dobbiamo invece aggiungerlo al file ~/.bash_profile oppure ~/.bashrc.
Per intervenire sui colori invece la sintassi sarà del tipo \e[x;ym$PS1 \e[m, dove:
- \e[ indica che inizia lo schema dei colori
- x;y è il codice relativo al colore
- \e[m segnala la fine dello schema dei colori
In particolare, ecco la lista dei codici dei colori (se vogliamo che il colore sia acceso basta rimpiazzare lo 0 con 1):
| Colore | Codice |
|---|---|
| Nero | 0;30 |
| Rosso | 0;31 |
| Verde | 0;32 |
| Marrone | 0;33 |
| Blu | 0;34 |
| Viola | 0;35 |
| Ciano | 0;36 |
Riprendiamo il comando precedente, stavolta però vogliamo che il prompt venga mostrato con una colorazione verde: in questo caso daremo
$ export PS1="\e[0;32m[\u]\$ \e[m"
308 parole
2022-08-09 14:00