Presto il Nuovo Anno, non ho voglia di pensare a lavori seri.
Tutti cercano di decorare qualcosa per la festa: casa, ufficio, postazione di lavoro... Facciamo anche noi qualche decorazione! Ad esempio, il terminale. In un certo senso, la riga di comando è anche un luogo di lavoro.
In alcune distribuzioni è già "decorato":

In altre è grigio e poco attraente:

Ma possiamo farlo, ad esempio, in questo modo:

Certo, per gusto e colore ci sono diversi evidenziatori. Se questa decorazione ti sembra troppo vistosa e inappropriata, sappi che questo punto di vista ha pieno diritto di esistere. E se anche a te piace aggiungere un po' di atmosfera natalizia, leggi il breve articolo festivo di Cloud4Y.
Iniziamo spiegando come "decorare" l'output del terminale. Questo avviene tramite sequenze di escape. E per essere più precisi: tramite sequenze di codice di controllo ANSI/VT100 del terminale. Ciò significa automaticamente che il tuo emulatore di terminale deve supportare questo standard, altrimenti il miracolo natalizio non avverrà. E sì, si presume che tu abbia bash come $SHELL.
Queste comandi sono chiamati sequenze di escape perché ognuno di essi inizia con il simbolo ASCII "escape". Ci sono molte sequenze di controllo, e permettono, per esempio, di visualizzare le impostazioni del terminale, gestire la visualizzazione e il movimento del cursore, cambiare il carattere, cancellare e nascondere il testo. Noi sceglieremo una possibilità tra tutte: cambiare il colore del testo e dello sfondo.
Eseguiamo la sequenza di codice *ESC*[{attr1};...;{attrn}m
Come simbolo Escape viene utilizzata la sua forma ottale, quindi 33. Per quanto riguarda gli attributi, ecco un breve elenco dei possibili valori:
0 Ripristinare tutti gli attributi
1 Bright (maggiore luminosità)
2 Dim (attenuazione)
4 Underscore (sottolineatura)
5 Blink (lampeggiamento)
7 Reverse (inversione)
8 Hidden (nascondere testo)
Foreground Colours (colore del testo che verrà visualizzato):
30 Black (nero)
31 Red (rosso)
32 Green (verde)
33 Yellow (giallo)
34 Blue (blu)
35 Magenta (magenta)
36 Cyan (ciano)
37 White (bianco)
Background Colours (colore dello sfondo):
40 Black (nero)
41 Red (rosso)
42 Green (verde)
43 Yellow (giallo)
44 Blue (blu)
45 Magenta (magenta)
46 Cyan (ciano)
47 White (bianco)
Nota che se ora dai il comando nel terminale: echo 33[0;31mqualche testo 33[0m’
… prevedibilmente riceverai in output un abbracadabra monocromatico:

Perché? Perché dovevi utilizzare le capacità avanzate del comando echo. Basta aggiungere un'opzione: echo -e ‘ 33[0;31mtesto qualche 33[0m’
Ora l'output sarà visualizzato correttamente:
![]()
Abbiamo capito come colorare l'output nel terminale. Ora vediamo come colorare il prompt della riga di comando.
Questo avviene modificando la variabile PS1. Questa variabile controlla il prompt della riga di comando. Il suo aspetto può essere cambiato, anche utilizzando sequenze di escape. Ma c'è una piccola differenza: la sequenza deve iniziare con il simbolo “[”, e finire con il simbolo “]”, altrimenti verrà visualizzata nel terminale.
Tutte le possibili sequenze di comando sono dettagliatamente descritte nel manuale di bash, quindi suggerisco ai lettori di scegliere autonomamente cosa preferiscono vedere nel prompt della riga di comando. Come esempio, ecco il mio valore per la variabile PS1:
[ 33[34;1m]t[ 33[0m],[ 33[32m]u@l@h[ 33[0m]:[ 33[33m]W[ 33[0m],[ 33
[31m]![ 33[0m]$n
Decifro questo terribile incantesimo:
[ 33[34;1m] — attiviamo il colore blu brillante (secondo attributo) del font
t – visualizziamo l'ora corrente nel formato HH:MM:SS
[ 33[0m] – ripristiniamo le impostazioni del colore del font
, — solo una virgola (inaspettato, vero?)
[ 33[32m] — attiviamo il colore verde del font
u@l@h – visualizziamo il nome utente, il numero del terminale e il nome breve dell'host, separati dal simbolo “@”
[ 33[0m] — ripristiniamo di nuovo le impostazioni del colore del font
: — solo due punti (improvvisamente!)
[ 33[33m] — attiviamo il colore giallo del font
W – visualizziamo il nome della directory corrente
[ 33[0m] — ripristiniamo di nuovo le impostazioni del colore del font
, — un'altra virgola (chi l'avrebbe mai detto!)
[ 33[31m] — attiviamo il colore rosso del font
! — visualizziamo il numero del comando nel terminale
[ 33[0m] — non dimentichiamo di ripristinare le impostazioni del colore del font
$ — visualizziamo “#” per root e “$” per tutti gli altri
n – interruzione di linea. Perché? Affinché il comando inizi dal lato sinistro della finestra e non dalla posizione finale del prompt della riga di comando.
Dove ridefinire la variabile? È più logico farlo in ~/.bashrc.
L'aspetto del prompt è limitato solo dalla vostra fantasia. In linea di principio, non c'è nulla che vi impedisca, utilizzando gli strumenti sopra descritti, di creare un prompt della riga di comando a forma di albero di Natale. Tuttavia, tale prompt sarà molto ingombrante e sicuramente non renderà il lavoro più comodo. L'albero può essere semplicemente visualizzato sopra il prompt della riga di comando all'accesso nel sistema (dobbiamo comunque modificare ~/.bashrc). Provate! E grazie per l'attenzione.

Cosa altro utile si può leggere nel blog
→
→
→
→
→
Iscriviti al nostro -canale per non perdere il prossimo articolo! Scriviamo non più di due volte a settimana e solo per cose importanti. Ricordiamo anche che il provider cloud aziendale Cloud4Y ha lanciato l'offerta «Cloud FZ-152 al prezzo normale». Puoi fare richiesta .
Fonte: habr.com
