Ciao a tutti! Oggi ho deciso di imparare una volta per tutte cosa posso mettere nella variabile d’ambiente PS1
, quella che viene stampata in console prima di ogni comando. Ho preso qualche appunto per me e ne è venuta fuori una piccola guida, anche per i colori, che vorrei condividere con voi.
PS1 - Informazioni Utili
\u
: Nome utente.\h
: Nome host fino al primo punto (esempio: se l’host è ‘server.example.com’, mostrerà solo ‘server’).\H
: Nome host completo.\w
: Percorso completo della directory corrente.\W
: Basename della directory corrente (esempio: se ti trovi in ‘/home/user/project’,\W
visualizzerà solo ‘project’).\d
: Data in formato abbreviato.\t
: Ora attuale nel formato 24 ore HH:MM:SS.\T
: Ora attuale nel formato 12 ore HH:MM:SS.\@
: Ora attuale nel formato 12 ore AM/PM.\!
: Numero cronologico del comando.\$
: Mostra#
se utente root,$
se altro.
Esempio:
PS1='\u@\h \W \$ '
Questo esempio visualizzerà qualcosa come: utente@host directory_corrente $
Escape ANSI
\033
e \e
sono due modi intercambiabili di rappresentare il carattere ANSI ‘ESC’ (Escape), che ha il valore ASCII 27.
- \033 : Notazione ottale, usata nei terminali Unix e nei file di configurazione della shell.
- \e : Un’altra notazione per rappresentare lo stesso carattere di escape ‘ESC’, utilizzato nei prompt della shell e negli script per formattare il testo.
PS1 - Colori
Sintassi:
\[\033[XX;YY;ZZm\]
\[
e\
] : Racchiudono le sequenze di escape per assicurare che Bash calcoli correttamente la lunghezza del prompt.- \033 o \e : Inizio della sequenza di escape ANSI.
- XX;YY;ZZm : Sequenza di controllo ANSI che specifica come formattare il testo.
- XX : Attributi del testo.
- YY : Colore del testo.
- ZZ : Colore dello sfondo.
- m : Chiude la sequenza di controllo ANSI (SGR - Select Graphic Rendition).
Valori per XX
(Attributi del Testo):
- 0: Resetta tutto al formato di default (nessun colore, nessun stile).
- 1: Attiva il grassetto o aumenta l’intensità (bold).
- 2: Attenua il colore (dim).
- 4: Sottolineato (underline).
- 5: Lampeggiante (blink, ma non sempre supportato da tutti i terminali).
- 7: Inverti i colori (reverse video).
- 8: Testo nascosto (hidden).
- 9: Testo barrato (strikethrough).
- 22: Disattiva il grassetto o il dim.
- 24: Disattiva il sottolineato.
- 25: Disattiva il lampeggio.
- 27: Disattiva l’inversione dei colori.
- 28: Disattiva il testo nascosto.
- 29: Disattiva il testo barrato.
Range di Valori per YY
(Colori del Testo) e ZZ
(Colori dello Sfondo):
-
30-37: Colori del testo standard
- 30: Nero
- 31: Rosso
- 32: Verde
- 33: Giallo
- 34: Blu
- 35: Magenta
- 36: Ciano
- 37: Bianco
-
90-97: Colori del testo brillanti (Bright/High-intensity)
- 90: Nero brillante
- 91: Rosso brillante
- 92: Verde brillante
- 93: Giallo brillante
- 94: Blu brillante
- 95: Magenta brillante
- 96: Ciano brillante
- 97: Bianco brillante
Colori dello Sfondo (Background Colors)
-
40-47: Colori dello sfondo standard
- 40: Sfondo nero
- 41: Sfondo rosso
- 42: Sfondo verde
- 43: Sfondo giallo
- 44: Sfondo blu
- 45: Sfondo magenta
- 46: Sfondo ciano
- 47: Sfondo bianco
-
100-107: Colori dello sfondo brillanti (Bright/High-intensity)
- 100: Sfondo nero brillante
- 101: Sfondo rosso brillante
- 102: Sfondo verde brillante
- 103: Sfondo giallo brillante
- 104: Sfondo blu brillante
- 105: Sfondo magenta brillante
- 106: Sfondo ciano brillante
- 107: Sfondo bianco brillante
Esempio:
PS1='\[\033[1;32m\]\u@\h:\[\033[1;34m\]\w\[\033[0m\]\$ '
Questo visualizzerà il prompt con il nome utente e host in verde grassetto, e il percorso in blu.