2009-02-19 15 views
11

Mi piace usare i comandi UNIX/bash che supportano l'output colorato. Di conseguenza, ho definito alcuni alias che abilitano automaticamente l'output colorato dei comandi che so supportano questa opzione. Tuttavia, sono sicuro che ci sono centinaia di comandi che supportano l'output a colori: mi piacerebbe sapere cosa sono.Quali comandi UNIX supportano l'output colorato?

Quelli in mio file ~/.bash_aliases sono:

ls --color=auto 
grep --color 
phpunit --ansi 

Che altro c'è? C'è una lista da qualche parte di tutti i comandi che supportano l'output colorato? O meglio ancora, qualche comando per mordicchiare le mie pagine man locali e cogliere i nomi dei comandi appropriati.

+1

A rigor di termini, si tratta di programmi GNU (AFIAK). E come tutti sappiamo: GNU's Not Unix! – MighMoS

+0

Immagino tu intenda più di due colori? :-) –

risposta

9

Perché non provare:

man -K color 

Questo dovrebbe cercare il colore parola in tutte le pagine man (contenuti, non solo intestazioni).

Si chiede, per ogni pagina l'uomo, se si desidera aprire e visualizzare la pagina:

$ man -K color 
/usr/share/man/mann/Widget.n.gz? [ynq] y 
/usr/share/man/mann/usual.n.gz? [ynq] y 
/usr/share/man/mann/Toplevel.n.gz? [ynq] n 
/usr/share/man/mann/itk.n.gz? [ynq] n 
/usr/share/man/mann/Archetype.n.gz? [ynq] n 
/usr/share/man/man8/squid.8.gz? [ynq] n 
/usr/share/man/man7/Xprint.7.gz? [ynq] 
/usr/share/man/man7/X.7.gz? [ynq] 
/usr/share/man/man7/urxvt.7.gz? [ynq] 
/usr/share/man/man7/term.7.gz? [ynq] q 

$ 

All'interno di ogni singola pagina man, è possibile utilizzare il normale metodo di ricerca (ad esempio, /color<ENTER>) per l'individuazione del testo. Quando hai finito con una pagina man, esci e continuerà la ricerca.

+0

Il mio sistema utilizza una lettera minuscola k. Ma di solito uso apropos. –

+2

Dennis, penso che il k minuscolo cerca solo le intestazioni, non il testo completo. – paxdiablo

3

Mi piace molto colorare il prompt in modo che risaltino. Un articolo utile su questo genere di cose è disponibile here.

8

Un rapido bit di ricerca di Google rivela anche grc e grcat, che può essere utilizzato per colorare qualsiasi testo o comando arbitrario. Non sono sicuro di quanto bene funzionino. Cercherò sicuramente di provarli ora che li ho trovati.

Ah, ci siamo. grc utilizza il file /etc/grc.conf per colorare un determinato comando in base al quale è stata eseguita un'espressione regolare. Una rapida grep del mio (Ubuntu 8.10) /etc/grc.conf rivela che attualmente ha il supporto per:.

[~]$ less /etc/grc.conf | grep '^#' 
# anything to do with irc 
# log file 
# ping command 
# traceroute command 
# gcc command 
# make command 
# netstat command 
# diff command 
# last command 
# ldap tools 
# cvs command 

ma sono sicuro che si potrebbe aggiungere la tua per altri programmi siete interessati a

Per utilizzare grc, in poche parole prima del comando che si desidera COLORISE (diciamo diff):

grc diff foo.txt bar.txt 

E si potrebbe certamente alias diff='grc diff' per rendere diff COLORISED per impostazione predefinita.

+0

'grc' aveva uno script di supporto:' grcat'. Ecco un esempio di colorazione di tutte le lettere maiuscole in rosso. Passo 1: Configura il file di configurazione: 'printf" regexp = [A-Z] \ ncolours = red \ n "> ~/.grc/red-caps' Step 2; Usalo: 'echo Hello World | grcat red-caps' –

+0

Io uso 'grcat' e mi piace molto. –

0

Questo script di bash demo colorizza le directory in rosso nella maggior parte dei terminali - funziona sicuramente in xterms e cygwin sotto Windows. È possibile adattare i colori per giocherellare con i codici di escape - Google per LS_COLOR per gli elenchi di codici colore:

#!/bin/bash 

color_red() 
{ 
    echo -e "\033[01;31m$1\033[00m" 
} 

for FILE in $* 
do 
    if test -d $FILE 
    then 
     color_red $FILE 
    else 
     echo $FILE 
    fi 
done