Albero di Natale sulla riga di comando

Il nuovo anno sta arrivando, non voglio più pensare al lavoro serio.

Tutti cercano di decorare qualcosa per le vacanze: casa, ufficio, posto di lavoro... Decoriamo qualcosa anche noi! Ad esempio, un prompt della riga di comando. In una certa misura, la riga di comando è anche un luogo di lavoro.

In alcune distribuzioni è già “decorato”:

Albero di Natale sulla riga di comando

In altri, è grigio e poco appariscente:

Albero di Natale sulla riga di comando

E possiamo fare, ad esempio, in questo modo:

Albero di Natale sulla riga di comando

Naturalmente tutti i pennarelli hanno gusti e colori diversi. Se tale colorazione ti sembra di cattivo gusto e inappropriata, sappi che questo punto di vista ha tutto il diritto alla vita. E se vuoi aggiungere anche un po' di spirito di Capodanno, continua a leggere un breve articolo di Capodanno di Cloud4Y.

Innanzitutto, spiegherò come viene "colorato" l'output del terminale. Questo viene fatto utilizzando sequenze di escape. O più precisamente, le sequenze dei codici di controllo del terminale ANSI/VT100. Ciò significa automaticamente che il tuo emulatore di terminale deve supportare questo standard, altrimenti il ​​miracolo di Capodanno non avverrà. E sì, si presume che $SHELL sia la tua bash.

Questi comandi sono chiamati sequenze di escape perché all'inizio di ognuno di essi c'è un carattere ASCII “escape”. Esistono numerose sequenze di controllo e consentono, ad esempio, di visualizzare le impostazioni del terminale, controllare la visualizzazione e il movimento del cursore, modificare il carattere, eliminare e nascondere il testo. Ne sceglieremo una tra tutte le varietà di possibilità: cambiando il colore del testo e dello sfondo.

Eseguire la sequenza di codici *ESC*[{attr1};...;{attrn}m
Come simbolo Fuga viene utilizzata la sua forma ottale, cioè 33. Per quanto riguarda gli attributi, ecco un breve elenco di possibili valori:

0 Reimposta tutti gli attributi
1 Luminoso (maggiore luminosità)
2 Fioco
4 Sottolineare
5 Battito di ciglia
7 Inversione
8 Nascosto (nascondi testo)

Colori di primo piano (colore della penna, il testo viene visualizzato in questo colore):
30 Nero
31 Rosso
32 Verde
33 Giallo
34 Blu
35 Magenta (magenta)
36 Ciano (blu)
37 Bianco

Colori di sfondo (colore della carta o colore di sfondo):
40 Nero
41 Rosso
42 Verde
43 Giallo
44 Blu
45 Magenta (magenta)
46 Ciano (blu)
47 Bianco

Tieni presente che se ora comandi nel terminale: echo 33[0;31mнекоторый текст 33[0m’

... quindi otterrai prevedibilmente un gobbledygook monocromatico in uscita:

Albero di Natale sulla riga di comando

Perché? Perché era necessario utilizzare le funzionalità avanzate del comando echo. È sufficiente aggiungere una chiave: echo -e ‘ 33[0;31mнекоторый текст 33[0m’

L'output ora apparirà corretto:

Albero di Natale sulla riga di comando

Abbiamo risolto la colorazione dell'output sul terminale. Vediamo ora come colorare il prompt dei comandi.

Questo viene fatto modificando la variabile PS1. La variabile è responsabile del prompt della riga di comando. È anche possibile modificarne l'aspetto, incluso l'utilizzo di sequenze di escape. Ma c’è una leggera differenza: è necessario iniziare la sequenza con il simbolo “[”, e terminano con il simbolo “]”, altrimenti verrà inviato al terminale.

Tutte le possibili sequenze di comandi sono descritte in dettaglio nel manuale di bash, quindi invito i lettori a scegliere da soli cosa preferiscono vedere al prompt della riga di comando. Ad 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

Decifrerò questo terribile incantesimo:

[ 33[34;1m] - attiva il colore del carattere blu brillante (secondo attributo).
t – visualizzare l'ora corrente nel formato HH:MM:SS
[ 33[0m] – ripristinare le impostazioni del colore del carattere
, - solo una virgola (inaspettato, vero?)
[ 33[32m] - attiva il colore del carattere verde
u@l@h – visualizzare il nome utente, il numero del dispositivo terminale e il nome host breve, separati dal simbolo “@”.
[ 33[0m] - ripristina nuovamente le impostazioni del colore del carattere
: - solo i due punti (all'improvviso!)
[ 33[33m] - attiva il colore del carattere giallo
W – visualizzare il nome della directory corrente
[ 33[0m] - ripristina nuovamente le impostazioni del colore del carattere
, - un'altra virgola (chi l'avrebbe mai detto!)
[ 33[31m] - attiva il colore del carattere rosso
! — visualizza il numero del comando nel terminale
[ 33[0m] - non dimenticare di ripristinare le impostazioni del colore del carattere
$ - stampa "#" per root e "$" per tutti gli altri
n - traslazione di linea. Per quello? In modo che il comando inizi dal bordo sinistro della finestra, anziché alla fine del prompt della riga di comando.

Dove ridefinire una variabile? Il posto più logico per farlo è ~/.bashrc.

L'aspetto dell'invito è limitato solo dalla tua immaginazione. In linea di principio, nulla impedisce di creare un prompt della riga di comando sotto forma di albero di Natale utilizzando gli strumenti sopra descritti. È vero, un simile invito sarà molto ingombrante e il lavoro non diventerà sicuramente più conveniente. L'albero di Natale può essere semplicemente visualizzato sopra il prompt della riga di comando quando si accede (dobbiamo ancora modificare ~/.bashrc). Fallo! E grazie per la tua attenzione.

Albero di Natale sulla riga di comando

Cos'altro puoi leggere sul blog? Cloud4Y

Configurazione di top in GNU/Linux
Pentester in prima linea nella sicurezza informatica
Startup in grado di sorprendere
I cuscini sono necessari in un data center?
La casa costruita da un robot

Iscriviti al nostro Telegram-channel per non perdere il prossimo articolo! Scriviamo non più di due volte a settimana e solo per affari. Vi ricordiamo inoltre che il cloud provider aziendale Cloud4Y ha lanciato la promozione “FZ-152 Cloud al prezzo normale”. Puoi candidarti fino al 31 dicembre.

Fonte: habr.com

Aggiungi un commento