6 999
contributi
S3v (discussione | contributi) mNessun oggetto della modifica |
|||
(13 versioni intermedie di 6 utenti non mostrate) | |||
Riga 1: | Riga 1: | ||
{{Versioni compatibili}} | |||
==Personalizzare il prompt== | ==Personalizzare il prompt== | ||
Bash è un tipo, forse il più usato, di [[shell]] per Linux. Spesso però c'è la necessità di amministrare più macchine, anche solo all'interno di una rete casalinga. Possiamo riconoscerle certamente dall'[[hostname]], ma se vogliamo fare una cosa anche più carina oltre che utile, possiamo colorare il prompt. Per farlo basta modificare il file <code>~/.bashrc</code>. Al suo interno troveremo (se non le abbiamo cancellate in precedenza) delle righe più o meno cosi: | |||
<pre> | <pre> | ||
Riga 26: | Riga 24: | ||
</pre> | </pre> | ||
Nell'esempio riportato sopra, che è una parte del mio bashrc, possiamo usare bash con la bandiera italiana. Ovviamente potete personalizzarlo come volete, cambiare caratteri, modificare colori e quant'altro. | Nell'esempio riportato sopra, che è una parte del mio <code>~/.bashrc</code>, possiamo usare bash con la bandiera italiana. Ovviamente potete personalizzarlo come volete, cambiare caratteri, modificare colori e quant'altro. | ||
Per l'elenco di tutte le stringhe vedere la sezione ''STRINGHE DI PROMPT'' nel manuale di bash. | |||
Debian utilizza un'altra variabile per distinguere l'hostname di un [[chroot]]: | |||
<pre> | |||
# set variable identifying the chroot you work in (used in the prompt below) | |||
if [ -z "$debian_chroot" ] && [ -r /etc/debian_chroot ]; then | |||
debian_chroot=$(cat /etc/debian_chroot) | |||
fi | |||
</pre> | |||
questo è infatti solitamente l'inizio di PS1: | |||
PS1='${debian_chroot:+($debian_chroot)} | |||
Il file ''/etc/debian_chroot'' non esiste in modo predefinito ma si può creare inserendo un nome a scelta che andrà a sostituire il default. | |||
==Usare i colori negli script== | ==Usare i colori negli script== | ||
Se si vogliono usare spesso i colori negli script bash è molto comodo definire delle variabili mnemoniche alle quali assegnare i codici di ogni colore. Questo può essere fatto ad esempio creando un file di nome | Se si vogliono usare spesso i colori negli script bash è molto comodo definire delle variabili mnemoniche alle quali assegnare i codici di ogni colore. Questo può essere fatto ad esempio creando un file di nome <code>/usr/local/bin/colors</code>, con il seguente contenuto: | ||
<pre> | <pre> | ||
Riga 53: | Riga 66: | ||
</pre> | </pre> | ||
In questo modo non ci resta che fare un source del file | In questo modo non ci resta che fare un source del file <code>/usr/local/bin/colors</code> ogni qual volta vogliamo usare i colori. Per fare il source basta inserire: | ||
<pre> | <pre> | ||
Riga 62: | Riga 75: | ||
<pre> | <pre> | ||
echo -e "$ | echo -e "$RED *** $Z Attenzione: la dir $LGREEN documenti $Z sarà eliminata" | ||
</pre> | </pre> | ||
che | che dà come risultato nel terminale: | ||
<div style="padding: 10px; background-color: black;color: white;"> | <div style="padding: 10px; background-color: black;color: white;"> | ||
< | <code><font color="red"> *** </font>Attenzione: la dir <font color="#0FFF2F">documenti</font> sarà eliminata</code> | ||
</div> | </div> | ||
;Nota 1: bisogna usare l'opzione | ;Nota 1: bisogna usare l'opzione <code>-e</code> con echo per fargli interpretare correttamente i caratteri di escape. | ||
;Nota 2: la variabile $Z ripristina il colore di default del terminale. | ;Nota 2: la variabile <code>$Z</code> ripristina il colore di default del terminale. | ||
{{warningbox| I colori sono un caratteristica non POSIX di bash, quindi non usateli se volete fare script portabili}} | {{warningbox| I colori sono un caratteristica non POSIX di bash, quindi non usateli se volete fare script portabili}} | ||
---- | === Colori === | ||
Autore | I parametri da cambiare sono la parte compresa tra le quadre e dopo l'escape ([\033): [1;5;33m\] <br> | ||
Ogni gruppo di attributi è separato da un punto e virgola. <br> | |||
''Attribute codes'' è per il primo gruppo. <br> | |||
''Background color codes'' è per il secondo gruppo. <br> | |||
''Text color codes'' è per il terzo gruppo. | |||
I riferimenti si trovano con '''dircolors -p''' che mostra anche i colori associati ad ogni tipo di file usando '''ls --color''' | |||
Attribute codes: | |||
<pre>00=none 01=bold 04=underscore 05=blink 07=reverse 08=concealed</pre> | |||
Text color codes: | |||
<pre>30=black 31=red 32=green 33=yellow 34=blue 35=magenta 36=cyan 37=white</pre> | |||
Background color codes: | |||
<pre>40=black 41=red 42=green 43=yellow 44=blue 45=magenta 46=cyan 47=white</pre> | |||
==Colorare l'output di ls== | |||
Quando viene eseguito il comando "ls" avrete notato che i nomi delle directory vengono colorati in un modo (di default in blu) come anche i file in base alla loro estensione. Stesso discorso anche per i link, le pipe etc.<br/> | |||
Ciò è dovuto alle seguenti righe presenti nel file <code>.bashrc</code> : | |||
<pre> | |||
# enable color support of ls and also add handy aliases | |||
if [ -x /usr/bin/dircolors ]; then | |||
eval "`dircolors -b .dircolors`" | |||
.. | |||
</pre> | |||
se avete installato Debian da un po' di tempo, oppure: | |||
<pre> | |||
# enable color support of ls and also add handy aliases | |||
if [ -x /usr/bin/dircolors ]; then | |||
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)" | |||
.. | |||
</pre> | |||
per le nuove installazioni. Cambiate il vostro file <code>.bashrc</code> in questo modo se si presenta nella prima forma ed eseguite un: | |||
<pre>$. .bashrc</pre> | |||
per rendere effettive le modifiche. | |||
Ora, come si vede, ad occuparsi dei colori è <code>dircolors</code>. Si può visualizzare il database di <code>dircolors</code> con il comando: | |||
<pre>$ dircolors -p</pre> | |||
in cui sono presenti le varie associazioni oggetto/colore. Per modificarle eseguite: | |||
<pre>$ dircolors -p > ~/.dircolors</pre> | |||
con cui verrà creato nella vostra home un file nascosto chiamato <code>.dircolors</code> . | |||
Adesso si può modificare questo file nel modo che si preferisce; ad esempio, per cambiare il colore delle directory da blu a giallo, si può modificare la riga corrispondente in questo modo: | |||
<pre> | |||
DIR 01;33 # directory | |||
</pre> | |||
oppure si può aggiungere un'estensione di file che non si trova in lista o inserire un background al testo.<br/> | |||
I colori sono nella forma "stile_carattere;colore_testo;colore_sfondo". Per cui: | |||
<pre> | |||
DIR 01;33;44 | |||
</pre> | |||
visualizzerà i nomi delle directory in grassetto, in giallo e su sfondo blu.<br/> | |||
Le modiche vanno rese effettive chiudendo e riaprendo la finestra di emulatore del terminale oppure, se vi trovate in tty, con: | |||
<pre>$ . ~/.bashrc</pre> | |||
Per altri utenti, compreso [[root]], bisogna ripetere il procedimento. | |||
{{Autori | |||
|Autore = [[Utente:Bedo|Bedo]] | |||
|Verificata_da = | |||
:[[Utente:TheNoise|~ The_Noise]] | |||
|Estesa_da = | |||
:[[Utente:TheNoise|~ The_Noise]] | |||
:[[Utente:S3v|S3v]] (colorare ls) | |||
|Numero_revisori = 1 | |||
}} | |||
[[Categoria:Bash]] |
contributi