Skip to navigation
Logo Penaz's Area

cat /dev/random > penaz

Man: Coloriamo l'output dei manuali di Linux


Se abbiamo un terminale che supporta i colori perchè non colorare l'output di Man per renderlo più chiaro?

Salve a tutti, oggi voglio proporvi un paio di piccoli trucchi che vi permetteranno di colorare l'output di Man, in modo da renderlo più comprensibile.

Output Man Colorato

Man è un comando conosciutissimo da tutti gli utenti linux e serve per visualizzare le pagine di aiuto, lo stile con cui vengono formattate le pagine di aiuto è processato da nroff e poi visualizzato da un pager come "Less" per esempio.

Utilizzando il comando

nroff -man /path/file/aiuto.1 | less

otterrete praticamente lo stesso risultato.

Vediamo come fare per colorare il nostro output.

Metodo 1:

Il primo metodo che vi propongo è molto semplice, è sufficiente installare "Most", su gentoo basta usare il seguente comando:

emerge most

e dopodichè sarà sufficiente cambiare la variabile $PAGER con il percorso in cui avete installato most.

export PAGER=/usr/bin/most

se volete che la modifica sia definitiva tale comando dovrà essere inserito all'interno del vostro .bashrc o .zshrc, a seconda della console che usate.

Metodo 2:

Il secondo metodo è un po' più complesso, ma ve lo consiglio caldamente perchè potrete continuare ad usare "less", che ha più funzioni rispetto a most. E poi è presente in praticamente qualunque distribuzione di Linux.

Aggiungete quanto segue al vostro .bashrc o .zshrc

export LESS_TERMCAP_mb=$'\E[01;31m' # Inizio testo lampeggiante
export LESS_TERMCAP_md=$'\E[01;38;5;74m' # Inizio grassetto
export LESS_TERMCAP_me=$'\E[0m' # Fine
export LESS_TERMCAP_se=$'\E[0m' # Fine modo standout
export LESS_TERMCAP_so=$'\E[48;5;25m' # Inizio standout
export LESS_TERMCAP_ue=$'\E[0m' # fine sottolineato
export LESS_TERMCAP_us=$'\E[04;38;5;146m' # Inizio sottolineato

Quando riavvierete la console, automaticamente l'output sarà colorato, se ciò non accadesse sarà necessario fare qualche verifica...

Ovviamente se volete potete tranquillamente modificare i colori come preferite. In questo caso potete fare riferimento alla pagina di wikipedia riguardante gli "ANSI escape codes", seguendo questo link .

Verifiche da fare in caso di problemi

Se l'output non si colora allora sono necessarie alcune verifiche. Iniziamo!

Prima verifica:

Digitate questo comando:

typeset -p LESS_TERMCAP_md | cat -v

Il terminale dovrebbe rispondervi con:

typeset -x LESS_TERMCAP_md="^[[01;31m"

E digitando quest'altro comando:

typeset -p LESS

Dovrebbe ritornarvi:

typeset -x LESS="-r"

Se ciò non accade, allora probabilmente avete inserito gli Export nel file sbagliato, controllatelo, ma il parametro "-r" non sempre è necessario...

Seconda verifica:

Il comando seguente:

echo "${LESS_TERMCAP_md}azzurro${LESS_TERMCAP_me}"

dovrebbe tornarvi:

azzurro

con le impostazioni che vi ho proposto. Se non accade, qualcosa non va con le impostazioni con il vostro terminale.

Terza verifica:

il comando seguente:

bzcat /usr/share/man/man1/ls.1.bz2 | /bin/sh /usr/bin/nroff -mandoc -Tutf8 | head -n 5 | cat -v

Dovrebbe scrivervi le prime righe dell'aiuto di ls, in questo modo:

LS(1)                       User Commands                           LS(1)

N^HNA^HAM^HME^HE

Se invece vi ritrovate una cosa del genere:

LS(1)                       User Commands                           LS(1)

^[[1mNAME^[[0m

La colpa è delle "sgr escape sequences", dovete disattivarle. In Zsh basta aggiungere a .zshrc la seguente riga:

export GROFF_NO_SGR=1

Questo è quanto, ora tutto dovrebbe essere bello colorato.

Buona colorazione a tutti!

Saluti, Penaz.