Come cambiare il colore del tuo terminale Linux

Puoi aggiungere colore al tuo terminale Linux usando speciali impostazioni di codifica ANSI, sia dinamicamente in un comando terminale o nei file di configurazione, o puoi usare temi già pronti nel tuo emulatore di terminale. In entrambi i casi, il nostalgico testo verde o ambra su uno schermo nero è del tutto opzionale. Questo articolo dimostra come si può rendere Linux colorato (o monocromatico) come si vuole.

Capacità del terminale

I sistemi moderni di solito hanno come impostazione predefinita almeno xterm-256color, ma se si prova ad aggiungere colore al terminale senza successo, si dovrebbe controllare l’impostazione TERM.

Storicamente, i terminali Unix erano letteralmente questo: punti fisici all’estremità letterale (terminazione) di un sistema informatico condiviso dove gli utenti potevano scrivere comandi. Erano unici rispetto alle telescriventi (che è il motivo per cui abbiamo ancora oggi dispositivi /dev/tty in Linux) che erano spesso utilizzati per impartire comandi in remoto. I terminali avevano monitor CRT incorporati, così gli utenti potevano sedersi ad un terminale nel loro ufficio per interagire direttamente con il mainframe. I monitor CRT erano costosi, sia da produrre che da controllare; era più facile avere un computer che sputava un testo ASCII grezzo piuttosto che preoccuparsi dell’anti-aliasing e di altri accorgimenti che gli informatici moderni danno per scontati. Tuttavia, gli sviluppi nella tecnologia avvenivano velocemente anche allora, e divenne subito evidente che, man mano che i nuovi terminali di visualizzazione video venivano progettati, avevano bisogno di nuove capacità per essere disponibili su una base opzionale.

Per esempio, il nuovo ed elegante VT100 rilasciato nel 1978 supportava il colore ANSI, quindi se un utente identificava il tipo di terminale come vt100, allora un computer poteva fornire output a colori, mentre un dispositivo seriale di base poteva non avere tale opzione. Lo stesso principio si applica oggi, ed è impostato dalla variabile d’ambiente TERM. Puoi controllare la tua definizione di TERM con echo:

$ echo $TERM
xterm-256color

L’obsoleto (ma ancora mantenuto su alcuni sistemi nell’interesse della compatibilità all’indietro) file /etc/termcap definiva le capacità di terminali e stampanti. La versione moderna di questo è terminfo, situato in /etc o /usr/share, a seconda della vostra distribuzione. Questi file elencano le caratteristiche disponibili in diversi tipi di terminali, molte delle quali sono definite dall’hardware storico: ci sono definizioni per vt100 fino a vt220, così come per emulatori software moderni come xterm e Xfce. La maggior parte del software non si preoccupa del tipo di terminale che stai usando; in rari casi, potresti ricevere un avviso o un errore su un tipo di terminale errato quando accedi a un server che controlla le caratteristiche compatibili. Se il tuo terminale è impostato su un profilo con poche caratteristiche, ma sai che l’emulatore che usi è in grado di fare di più, allora puoi cambiare la tua impostazione definendo la variabile d’ambiente TERM. Puoi farlo esportando la variabile TERM nel tuo file di configurazione ~/.bashrc:

export TERM=xterm-256color

Salva il file e ricarica le tue impostazioni:

$ source ~/.bashrc

Codici colore ANSI

I terminali moderni hanno ereditato le sequenze di escape ANSI per le caratteristiche “meta”. Queste sono sequenze speciali di caratteri che un terminale interpreta come azioni invece di caratteri. Per esempio, questa sequenza cancella lo schermo fino al prossimo prompt:

$ printf `3 

Or you can use dircolors directly:

$ dircolors --print-database

# image formats
.jpg 01;35
.jpeg 01;35
.mjpg 01;35
.mjpeg 01;35
.gif 01;35
.bmp 01;35
.pbm 01;35
.tif 01;35
.tiff 01;35

If that looks cryptic, it’s because it is. The first digit after a file type is the attribute code, and it has six options:

  • 00 none
  • 01 bold
  • 04 underscore
  • 05 blink
  • 07 reverse
  • 08 concealed

The next digit is the color code in a simplified form. You can get the color code by taking the final digit of the ANSII code (32 for green foreground, 42 for green background; 31 or 41 for red, and so on).

Your distribution probably sets LS_COLORS globally, so all users on your system inherit the same colors. If you want a customized set of colors, you can use dircolors for that. First, generate a local copy of your color settings:

$ dircolors --print-database > ~/.dircolors

Modifica la tua lista locale come desideri. Quando sei soddisfatto delle tue scelte, salva il file. Le tue impostazioni di colore sono solo un database e non possono essere usate direttamente da ls, ma puoi usare dircolors per ottenere shellcode che puoi usare per impostare LS_COLORS:

$ dircolors --bourne-shell ~/.dircolors
LS_COLORS='rs=0:di=01;34:ln=01;36:mh=00:
pi=40;33:so=01;35:do=01;35:bd=40;33;01:
cd=40;33;01:or=40;31;01:mi=00:su=37;41:
sg=30;43:ca=30;41:tw=30;42:ow=34;

export LS_COLORS

Copia e incolla l’output nel tuo file ~/.bashrc e ricarica. In alternativa, puoi scaricare l’output direttamente nel tuo file .bashrc e ricaricare.

$ dircolors --bourne-shell ~/.dircolors >> ~/.bashrc
$ source ~/.bashrc

Puoi anche fare in modo che Bash risolva .dircolors al lancio invece di fare la conversione manualmente. Realisticamente, probabilmente non cambierai spesso i colori, quindi questo potrebbe essere eccessivamente aggressivo, ma è un’opzione se hai intenzione di cambiare spesso il tuo schema di colori. Nel tuo file .bashrc, aggiungi questa regola:

] && eval "`dircolors --sh $HOME/.dircolors`"

Se hai un file .dircolors nella tua home directory, Bash lo valuta al lancio e imposta LS_COLORS di conseguenza.

Color

I colori nel tuo terminale sono un modo semplice per darti un rapido riferimento visivo per informazioni specifiche. Tuttavia, potresti non voler fare affidamento su di loro troppo pesantemente. Dopo tutto, i colori non sono universali, quindi se qualcun altro usa il vostro sistema, potrebbe non vedere i colori nello stesso modo in cui li vedete voi. Inoltre, se usi una varietà di strumenti per interagire con i computer, potresti anche scoprire che alcuni terminali o connessioni remote non forniscono i colori che ti aspetti (o non li forniscono affatto).

Questi avvertimenti a parte, i colori possono essere utili e divertenti in alcuni flussi di lavoro, quindi crea un database .dircolor e personalizzalo a tuo piacimento.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.