B.4.2 Personalizzare il prompt

Per personalizzare il prompt è sufficiente impostare la variabile d’ambiente PS1 con la stringa che si desidera venga visualizzata al posto del prompt. Ad esempio, se sulla riga di comando si impartisce il comando seguente

 
$ export PS1=ciao  
verrà visualizzato come prompt la scritta ciao al posto dell’usuale $.

È possibile personalizzare anche i colori utilizzati nella visualizzazione del prompt. Ciò può essere fatto per mezzo di opportune sequenze di escape. Ad esempio, il comando seguente

$ export PS1="\[\033[0;31m\]ciao"
farà visualizzare come prompt la scritta ciao di colore rosso. Questo perché la sequenza di escape \[\033[0;31m\] imposta la visualizzazione con il colore rosso. Si noti che in questo modo tutta la riga di comando risulterà rossa. Per colorare di rosso soltanto il prompt, lasicando inalterata la riga di comando si può utilizzare il comando seguente

$ export PS1="\[\033[0;31m\]ciao\[\033[0m\]"
I comandi impostati funzionano fino a quando la shell non viene chiusa. La riapertura della shell reimposta infatti il prompt al classico $. Per rendere effettive le modifiche ad ogni apertura di una shell è opportuno modificare il file /etc/bashrc, che imposta le caratteristiche della shell a livello di sistema, o il file ~/.bashrc, che imposta le caratterisitiche della shell a livello utente (è meglio utilizzare quest’ultimo per personalizzarsi il proprio prompt).

Di seguito è riportato un esempio del contenuto del file ~/.bashrc che realizza un prompt carino.

# .bashrc
# User specific aliases and functions
# Source global definitions
if [ -f /etc/bashrc ]; then
       . /etc/bashrc
fi
BLACK="\[\033[0;30m\]"
RED="\[\033[0;31m\]"
GREEN="\[\033[0;32m\]"
                                                                        
                                                                        
BROWN="\[\033[0;33m\]"
BLUE="\[\033[0;34m\]"
PURPLE="\[\033[0;35m\]"
CYAN="\[\033[0;36m\]"
LIGHTGRAY="\[\033[0;37m\]"
DARKGRAY="\[\033[1;30m\]"
LIGHTRED="\[\033[1;31m\]"
LIGHTGREEN="\[\033[1;32m\]"
YELLOW="\[\033[1;33m\]"
LIGHTBLUE="\[\033[1;34m\]"
LIGHTPURPLE="\[\033[1;35m\]"
LIGHTCYAN="\[\033[1;36m\]"
WHITE="\[\033[1;37m\]"
NOCOLOR="\[\033[0m\]"
BOLD="\[\033[1m\]"
PS1="$BOLD[$LIGHTCYAN\u$NOCOLOR$BOLD@$LIGHTGREEN\h $LIGHTBLUE\w$NOCOLOR$BOLD]\\$ $NOCOLOR"
export PS1