Il Nuovo Anno si avvicina e non abbiamo voglia di pensare al lavoro serio.
Tutti cercano di decorare qualcosa per le festività: la casa, l'ufficio, il posto di lavoro... Facciamo anche noi qualcosa di speciale! Ad esempio, l'invito della riga di comando. In un certo senso, la riga di comando è anche un posto di lavoro.
In alcune distribuzioni è già "decorata":

In altre è grigia e discreta:

Noi possiamo fare, ad esempio, così:

Certo, ognuno ha i propri gusti. Se questa decorazione ti sembra eccessiva e inappropriata, sappi che questa opinione è del tutto valida. Se vuoi anche tu aggiungere un po' di atmosfera natalizia, continua a leggere questo breve articolo di Cloud4Y.
Per iniziare, spiegherò come "si colora" l'output del terminale. Si fa attraverso sequenze di escape. Più precisamente, attraverso sequenze di codici di controllo del terminale ANSI/VT100. Questo implica che il tuo emulatore di terminale deve supportare questo standard, altrimenti non ci sarà alcuna magia natalizia. E sì, si presume che il tuo $SHELL sia bash.
Le sequenze di escape vengono chiamate così perché all'inizio di ognuna di esse c'è il carattere ASCII "escape". Ci sono molte sequenze di controllo e queste permettono, ad esempio, di visualizzare le impostazioni del terminale, gestire la visualizzazione e il movimento del cursore, cambiare il carattere, eliminare e nascondere il testo. Noi sceglieremo tra tutte queste possibilità una: la modifica del colore del testo e dello sfondo.
Eseguiamo la sequenza di codice *ESC*[{attr1};...;{attrn}m
Come carattere Escape viene utilizzata la sua forma ottale, cioè 33. Per quanto riguarda gli attributi, ecco un breve elenco dei possibili valori:
0 Ripristina tutti gli attributi
1 Bright (brillante)
2 Dim (diminuito)
4 Underscore (sottolineato)
5 Blink (lampeggiante)
7 Reverse (invertito)
8 Hidden (nascondi testo)
Foreground Colours (colore del testo, questo colore viene utilizzato per visualizzare il testo):
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)
Si noti che se ora si comanda nel terminale: echo 33[0;31mqualche testo 33[0m’
… si otterrà prevedibilmente in output un'astrusa sequenza monocromatica:

Perché? Perché era necessario utilizzare le funzionalità avanzate del comando echo. È sufficiente aggiungere un'opzione: echo -e '33[0;31mtesto qualche 33[0m'
Ora l'output apparirà correttamente:
![]()
Abbiamo capito come colorare l'output nel terminale. Ora vediamo come colorare il prompt dei comandi.
Questo si fa modificando la variabile PS1. Questa variabile controlla il prompt dei comandi. Anche il suo aspetto può essere cambiato, compreso tramite sequenze di escape. Ma c'è una piccola differenza: la sequenza deve iniziare con il carattere “[”, e terminarla con il carattere “]”, altrimenti verrà visualizzata nel terminale.
Tutte le possibili sequenze di comandi sono descritte dettagliatamente nel manuale di bash, quindi consiglio ai lettori di scegliere autonomamente cosa preferiscono osservare nel prompt dei comandi. Come esempio, fornirò 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 strano incantesimo:
[33[34;1m] — attiviamo il colore blu brillante (secondo attributo) del testo
t – visualizziamo l'ora attuale nel formato HH: MM: SS
[33[0m] – ripristina le impostazioni del colore del testo
, — solo una virgola (inaspettato, vero?)
[ 33[32m] — attiviamo il colore verde del testo
u@l@h – mostriamo il nome utente, il numero del terminale e il nome host breve, separandoli con il simbolo “@”
[33[0m] — ripristiniamo di nuovo le impostazioni del colore del testo
: — solo due punti (sorprendentemente!)
[ 33[33m] — attiviamo il colore giallo del testo
W – mostriamo il nome della directory corrente
[33[0m] — ripristiniamo di nuovo le impostazioni del colore del testo
, — un'altra virgola (chi l'avrebbe mai pensato!)
[ 33[31m] — attiviamo il colore rosso del testo
! — mostriamo il numero del comando nel terminale
[33[0m] — non dimentichiamo di ripristinare le impostazioni del colore del testo
$ — mostriamo “#” per root e “$” per tutti gli altri
n – nuova riga. Perché? Per far iniziare il comando dal margine sinistro della finestra, e non dalla posizione finale del prompt dei comandi.
Dove ridefinire la variabile? È più logico farlo in ~/.bashrc.
L'aspetto del prompt è limitato solo dalla tua fantasia. In teoria, nulla ti impedisce di utilizzare gli strumenti descritti sopra per creare un prompt della riga di comando a forma di albero di Natale. Tuttavia, un tale prompt risulterebbe molto ingombrante e il lavoro non diventerebbe più comodo. Puoi semplicemente visualizzare l'albero sopra il prompt della riga di comando all'accesso al sistema (dobbiamo comunque modificare ~/ .bashrc). Sfida te stesso! E grazie per l'attenzione.

Cosa altro è utile leggere nel blog
→
→
→
→
→
Iscriviti alla nostra newsletter -canale per non perdere i prossimi articoli! Pubblicheremo non più di due volte alla settimana e solo su questioni importanti. Inoltre, ricordiamo che il provider cloud aziendale Cloud4Y ha lanciato un'offerta "Cloud FZ-152 a prezzo normale". Puoi fare domanda .
Fonte: habr.com
