Pagine man colorate
Le pagine man colorate aiutano a trovare, a colpo d’occhio, le informazioni più utili all’interno della pagine di aiuto visualizzata e migliorano la comprensione.
I terminali Linux sono capaci di cose come colorare il testo o aumentarne il peso (grassetto), così da rendere più gradevole e produttiva la sessione di lavoro, attraverso le terminal capabilities. Tra le applicazioni che supportano le termcap c’è anche il pager delle pagine man: less.
Alcune variabili speciali permettono di stabilire i colori da utilizzare; se queste vengono inserite nel file speciale .bashrc, saranno disponibili come variabili di ambiente e le pagine man saranno sempre colorate.
Ecco cosa si potrebbe inserire in .bashrc:
export LESS_TERMCAP_mb=$'\E[01;31m' export LESS_TERMCAP_md=$'\E[01;31m' export LESS_TERMCAP_me=$'\E[0m' export LESS_TERMCAP_se=$'\E[0m' export LESS_TERMCAP_so=$'\E[01;44;33m' export LESS_TERMCAP_ue=$'\E[0m' export LESS_TERMCAP_us=$'\E[01;32m'
In questo modo il comando man man mostrerà:

Questo metodo produce però alcuni effetti collaterali sgradevoli. Ecco cosa accade digitando env:

Questo accade, probabilmente, perché env ricorre ad un pager sensibile alle termcap. Se si pensa di non poter sopravvivere un giorno in più, in questo mondo troppo colorato che elenca in modo così squinternato le variabili di sistema, si possono comunque avere le pagine man colorate senza questo effetto collaterale semplicemente creando un nuovo file eseguibile, ad esempio in /usr/bin:
$ sudo touch /usr/bin/handbook Parola d'ordine: $ sudo chmod a+x /usr/bin/handbook
All’interno del file handbook ci sarà lo script bash:
#!/bin/bash
REQUIRED_PAGE=$@
export LESS_TERMCAP_mb=$'\E[01;31m'
export LESS_TERMCAP_md=$'\E[01;31m'
export LESS_TERMCAP_me=$'\E[0m'
export LESS_TERMCAP_se=$'\E[0m'
export LESS_TERMCAP_so=$'\E[01;44;33m'
export LESS_TERMCAP_ue=$'\E[0m'
case $TERM in
xterm)
export LESS_TERMCAP_us=$'\E[01;34m'
;;
*)
export LESS_TERMCAP_us=$'\E[01;32m'
;;
esac
man $REQUIRED_PAGE
EXIT_STATUS=$?
unset LESS_TERMCAP_mb
unset LESS_TERMCAP_md
unset LESS_TERMCAP_me
unset LESS_TERMCAP_se
unset LESS_TERMCAP_so
unset LESS_TERMCAP_ue
unset LESS_TERMCAP_us
exit $EXIT_STATUS
In questo modo le pagine man colorate saranno accessibili con il comando handbook:

Approfondimento
Per sapere cosa viene colorato dalle variabili LESS_TERMCAP_xy si deve fare riferimento alla pagine man termcap, al cui interno cercare la spiegazione dei codici mb, md, me, se, so, ue, us. Ad esempio, us indica l’inizio della sottolineatura, mentre ue ne indica la fine.
I valori numerici a due cifre che iniziano con 0, come quello segnato in grassetto in LESS_TERMCAP_so=$’\E[01;44;33m’, permettono di specificare alcune proprietà del testo:
- 00 = nessuno
- 01 = grassetto
- 04 = sottolineato
- 05 = lampeggiante
- 07 = rovesciato
- 08 = nascosto
I valori numerici a due cifre che iniziano con il numero 3, come quello segnato in grassetto in LESS_TERMCAP_so=$’\E[01;44;33m’ colorano il testo:
- 30 = nero
- 31 = rosso
- 32 = verde
- 33 = giallo
- 34 = blu
- 35 = magenta
- 36 = azzurro
- 37 = bianco
I valori numerici a due cifre che inizia con 4, come quello segnato in grassetto in LESS_TERMCAP_so=$’\E[01;44;33m’, specificano il colore dello sfondo:
- 40 = nero
- 41 = rosso
- 42 = verde
- 43 = giallo
- 44 = blu
- 45 = magenta
- 46 = azzurro
- 47 = bianco
E con questo è tutto.
ClaudioT :: ago.02.2007 :: Fedora, Linux, Tutorial :: 1 Comment »
Un’altra possibilità è mettere in .bashrc questa funzione:
senv () {
unset LESS_TERMCAP_mb
unset LESS_TERMCAP_md
unset LESS_TERMCAP_me
unset LESS_TERMCAP_se
unset LESS_TERMCAP_so
unset LESS_TERMCAP_ue
unset LESS_TERMCAP_us
env
export LESS_TERMCAP_mb=$’\E[01;31m’
export LESS_TERMCAP_md=$’\E[01;31m’
export LESS_TERMCAP_me=$’\E[0m’
export LESS_TERMCAP_se=$’\E[0m’
export LESS_TERMCAP_so=$’\E[01;44;33m’
export LESS_TERMCAP_ue=$’\E[0m’
export LESS_TERMCAP_us=$’\E[01;32m’
}
Basta poi digitare senv invece di env e si ha l’output senza colori.
È una soluzione alternativa e secondo il mio modesto parere meno intrusiva.