Linux: Colorare la shell


Inizio questo articolo salutando i lettori, dato che questo e’ il mio primo post. Sono BoySka, e sono stato “arruolato” da poco nella redazione di MultimediaZone. Nei miei articoli parlero’ soprattuto di GNU/Linux, presentando tutto cio’ che a mio parere rende la mia box piu’ divertente da usare.

Il tema di oggi e’ la shell, l’interprete dei comandi in Linux (quella che molti chiamano la “riga di comando”). In Linux si puo’ scegliere la shell che piu’ ci aggrada, ma il 90% degli utenti usa la shell bash. Se c’e’ una cosa che proprio non mi puo’ andare giu’ e’ la sua “tristezza”: bianco su nero, non c’e’ proprio niente di piu’ bello? E poi il prompt sembra essere a volte troppo lungo, a volte carente di informazioni!

Pensiamo a un classico prompt:

[boyska@my_station directory] $

In questo prompt ci viene detto il nostro nome utente, il nome della macchina su cui siamo loggati, e il nome della directory in cui ci troviamo (NON il percorso completo). Ma se non siamo dei grandi utilizzatori di shell remote, e’ assolutamente superfluo sapere in che macchina ci troviamo! Abbiamo quindi un’informazoine di troppo che ruba spazio e crea disordine. Potrebbe essere molto piu’ comodo, per chi usa in modo intensivo la shell, poter visualizzare sempre l’ora, in modo da poter usare la shell come un orologio.

Personalizzare il prompt

Insomma, ognuno ha le sue esigenze e i suoi gusti: e per ognuno c’e’ un prompt adatto! Infatti il prompt si puo’ modificare tramite la variabile PS1. Ad esempio, se vogliamo un prompt che mostri solo il nome utente e la directory possiamo usare

PS1 = "\u \w$"

Come forse avrete intuito, una lettera preceduta da un backslash e’ una sequenza di escape. In modo analogo possiamo aggiungere qualunque campo, scegliendo le informazioni da mostrare. Ma come possiamo decidere anche il loro colore?
La risposta e’ quasi ovvia: altre sequenze di escape. Sebbene questo metodo possa sembrare obsoleto, si dimostra molto efficiente e intuitivo nella pratica.

Cosa ci si puo’ fare

Molto piu’ di quanto possa sembrare. Le informazioni disponibili tramite le sequenze di escape sono moltissime, ma ci si puo’ spingere ancora oltre: possiamo usare l’output di comandi dentro il nostro prompt! Questo ci permette di aggiungere un numero pressoche’ illimitato di informazioni, specie se si ha qualche conoscenza di programmazione. Io, ad esempio, ho un programma, chiamato shortpath che, dato un percorso /home/davide/documenti/bash/, mi restituisce la stringa “/h/d/d/”; ovvero il percorso in cui sono mostrate le sole iniziali delle directory superiori.Questo mi permette di capire quanto sono in “profondita’“. Segue poi il nome della directory corrente, in un colore diverso. (Per i piu’ attenti: si’, ho copiato questo comportamento da fish :-) ).
Ci si puo’ davvero sbizzarrire, a seconda dell’uso che si fa della shell.
Una scelta comune e’ quella di mostrare il numero di file nella directory corrente, o la loro dimensione complessiva: questo e’ utile soprattutto a chi usa la shell per muoversi nel filesystem e spostare/copiare files.
Chi ha un portatile potrebbe essere interessato allo carica rimanente della batteria.
Un amministratore potrebbe voler colorare il suo prompt (o almeno una sua parte) di rosso, in modo da non confondere questa shell con quella da utente semplice (con tutti i rischi annessi e connessi)

Documentazione

Se tutto cio’ vi ha incuriosito, non vi resta che leggere questo ottimo howto.
Sono anche disponibili numerosi esempi[EN]: guardate, usate, leggete, migliorate, pubblicate!

Technorati Tags: , , , ,

2 Commenti so far »

  1. Michele D'Ascanio ha scritto,

    il Novembre 1, 2007 @ 01:15

    un po’ triste la bash, solo bianco e nero, pua’.
    Una mia bash è verde con la scritta bianca. quando sono su un host+nomeutente lo sò perchè c’è scritto nomeHost@nomeutente, quindi non mi perdo. se voglio sapere l’ora: # date; - in quale cartella sono: # pwd; - quanto occupa la cartella e tutti i suoi files interni: # dh -h nomecartella - elencare i suoi files: ls -al –color alias di ls; - poi il file di configurazione per tutte le altre moltissime cose che vuoi modificare. esempio stupido. ho un’emoticon come prompt della mia bash shell su un host e un’altro diverso da qualche altra parte e configurato diversamente.
    I colori della bash shell?
    Dipendono da come accediamo alla bash. Se non hai X.org puoi scegliere tutti i colori che un terminale VT di consente. Pensi che ti possano bastare 50 colori per distinguere i files dalle cartelle, i socketi, i link, i files compressi etc?. A me, spesso, si. Però la mia versione di X mi permette con un click di cambiare colore dello sfondo, la tonalità, la trasparenza, la saturazione, etc e così anche per il testo, che può essere un file, bianco, una directory, verde, un link, giallo, un prompt, rosso(quello di root), un socket, viola per esempio.
    Tutto questo per ogni shell acceduta dal mio X, sia essa locale o remota.
    Che bello la bash colorata, grazie alla grafica di X.

  2. ShortPath: « MultimediaZone ha scritto,

    il Maggio 17, 2008 @ 16:50

    […] Colorare la shell vi avevo parlato dei modi in cui possiamo abbellire la nostra shell usando un prompt colorato che […]

RSS · TrackBack URI

Lascia un commento

Nome: (Richiesto)

E-mail: (Richiesta)

Sito:

Commento:

RSS

rss Feed degli articoli

Licenza

Creative Commons License  
Questo/a opera è pubblicato sotto una Licenza Creative Commons.

Altro

Add to Technorati Favorites
BlogItalia.it - La directory italiana dei blog
Powered by WordPress - WordPress Blogs Directory 
 

Appuntamenti settimanali