Difference between revisions of "Color Bash Prompt (Italiano)"

From ArchWiki
Jump to: navigation, search
(Riallineamento a pag. int.)
(Allineamento pagina completo)
Line 3: Line 3:
 
{{i18n|Color Bash Prompt}}
 
{{i18n|Color Bash Prompt}}
  
Esistono varie possibilità per il proprio prompt di bash e personalizzarlo aiuterà ad essere più produttivi dalla riga di comando. Si possono aggiungere informazioni al proprio prompt, o semplicemente colorarlo per farlo risaltare.
+
Esistono varie possibilità per il proprio {{codeline|prompt}} di bash e personalizzarlo aiuterà ad essere più produttivi dalla riga di comando. Si possono aggiungere informazioni al {{codeline|prompt}}, o semplicemente colorarlo per farlo risaltare.
  
 
==Prompt basilari==
 
==Prompt basilari==
Le seguenti impostazioni sono utili per distinguere il prompt di root da quello di utente normale.
+
Le seguenti impostazioni sono utili per distinguere il {{codeline|prompt}} di root da quello di utente normale.
  
*Editare il file di configurazione personale Bash:
+
*Editare il file di configurazione personale di {{codeline|Bash}}:
 
  $ nano ~/.bashrc
 
  $ nano ~/.bashrc
  
*Decommentare il prompt di default:
+
*Decommentare il {{codeline|prompt}} di default:
 
  #PS1='[\u@\h \W]\$ '
 
  #PS1='[\u@\h \W]\$ '
  
*Aggiungere il seguente prompt verde per gli utenti normali:
+
*Aggiungere il seguente {{codeline|prompt}} verde per gli utenti normali:
 
{{cli|1=
 
{{cli|1=
 
<span style="color: #0f0">[chiri@zetsubou ~]$</span> <span style="text-decoration: blink;">_</span>
 
<span style="color: #0f0">[chiri@zetsubou ~]$</span> <span style="text-decoration: blink;">_</span>
Line 20: Line 20:
 
  PS1='\[\e[1;32m\][\u@\h \W]\$\[\e[0m\] '
 
  PS1='\[\e[1;32m\][\u@\h \W]\$\[\e[0m\] '
  
*Editare il file .bashrc per root; copiarlo da /etc/skel in caso non sia già presente:
+
*Editare il file {{filename|.bashrc}} per root; copiarlo da {{filename|/etc/skel}} in caso non sia già presente:
 
  # nano /root/.bashrc
 
  # nano /root/.bashrc
*Assegnare il prompt rosso per root:
+
*Assegnare il {{codeline|prompt}} rosso per root:
 
{{cli|1=
 
{{cli|1=
 
<span style="color: #f00">[root@zetsubou ~]#</span> <span style="text-decoration: blink;">_</span>
 
<span style="color: #f00">[root@zetsubou ~]#</span> <span style="text-decoration: blink;">_</span>
Line 29: Line 29:
  
 
===Prompt un po' più elaborati===
 
===Prompt un po' più elaborati===
*Un prompt verde e blu per utenti normali:
+
*Un {{codeline|prompt}} verde e blu per utenti normali:
 
{{cli|1=
 
{{cli|1=
 
<span style="color: #0a0">chiri</span> <span style="color: #00f">~/docs</span> <span style="color: #0f0">$</span> <span style="color: #fff">echo "sample output text"<br/>
 
<span style="color: #0a0">chiri</span> <span style="color: #00f">~/docs</span> <span style="color: #0f0">$</span> <span style="color: #fff">echo "sample output text"<br/>
Line 37: Line 37:
 
  PS1='\[\e[0;32m\]\u\[\e[m\] \[\e[1;34m\]\w\[\e[m\] \[\e[1;32m\]\$\[\e[m\] \[\e[1;37m\]'
 
  PS1='\[\e[0;32m\]\u\[\e[m\] \[\e[1;34m\]\w\[\e[m\] \[\e[1;32m\]\$\[\e[m\] \[\e[1;37m\]'
  
Questo visualizzerà un prompt molto piacevole, colorato con un colore di testo bianco brillante.
+
Questo visualizzerà un {{codeline|prompt}} molto piacevole, colorato con un colore di testo bianco brillante.
  
La stringa sopra contiene le impostazioni colore per le sequenze di escape (inizio colorazione: \[\e[color\], fine colorazione: \[\e[m\]) and information placeholders:
+
La stringa sopra contiene le impostazioni colore per le sequenze di escape (inizio colorazione: {{codeline|\[\e[color\]}}, fine colorazione: {{codeline|\[\e[m\]}}) e le informazioni segnaposto:
  
* \u - Nome utente. Il prompt originale ha anche \h, che stampa il nome dell'host.
+
* \u - Nome utente. Il prompt originale ha anche {{codeline|\h}}, che stampa il nome dell'host.
* \w - Attuale percorso assoluto. Usa \W per l'attuale percorso relativo percorso.
+
* \w - Attuale percorso assoluto. Usa {{codeline|\W}} per l'attuale percorso relativo percorso.
* \$ - Il carattere di prompt (es.'#' per root,'$' per gli utenti normali).  
+
* \$ - Il carattere di prompt (es.{{codeline|#}} per root,{{codeline|$}} per gli utenti normali).  
  
L'ultimo sequenza di colore, "\[\e[1;37m\]", non è chiusa, in modo che il testo rimanente (tutto quello che è scritto nel terminale, l'output dei programmi e così via) saranno in quel colore (bianco brillante). Può essere auspicabile cambiare questo colore, o cancellare l'ultima sequenza di escape in modo da lasciare l'attuale output con colori inalterati.  
+
L'ultimo sequenza di colore, {{codeline|\[\e[1;37m\]}}, non è chiusa, in modo che il testo rimanente (tutto quello che è scritto nel terminale, l'output dei programmi e così via) saranno in quel colore (bianco brillante). Può essere auspicabile cambiare questo colore, o cancellare l'ultima sequenza di escape in modo da lasciare l'attuale output con colori inalterati.  
  
*Un prompt rosso e blu per root:
+
*Un {{codeline|prompt}} rosso e blu per root:
 
{{cli|1=
 
{{cli|1=
 
<span style="color: #a00">root</span> <span style="color: #00f">~/docs</span> <span style="color: #a00">#</span> <span style="color: #0a0">echo "sample output text"<br/>
 
<span style="color: #a00">root</span> <span style="color: #00f">~/docs</span> <span style="color: #a00">#</span> <span style="color: #0a0">echo "sample output text"<br/>
Line 60: Line 60:
  
 
===Caricamento Stato della memoria per 256 colori===
 
===Caricamento Stato della memoria per 256 colori===
Questo non è nemmeno superare i limiti... altro che utilizzare "sed" per analizzare memoria e carico medio (usando l'opzione "-u" per il non-buffering), oppure l'arrangiamento per salvare la cronologia al proprio "HISTFILE" dopo ogni comando. Queste soluzioni sono estremamente utili quando si tratta di crash di shell o subshell, ed essenzialmente si tratta solo di far stampare a Bash variabili già note, rendendo l'operazione estremamente veloce rispetto al prompt con i comandi builtin.
+
Questo non è nemmeno superare i limiti... altro che utilizzare {{codeline|sed}} per analizzare memoria e carico medio (usando l'opzione {{codeline|-u}} per il non-buffering), oppure l'arrangiamento per salvare la cronologia al proprio "HISTFILE" dopo ogni comando. Queste soluzioni sono estremamente utili quando si tratta di crash di shell o subshell, ed essenzialmente si tratta solo di far stampare a {{codeline|Bash}} variabili già note, rendendo l'operazione estremamente veloce rispetto al {{codeline|prompt}} con i comandi builtin.
  
Questo prompt è tratto dall'articolo di AskApache.com, [http://www.askapache.com/linux-unix/bash-power-prompt.html BASH Power Prompt article], che fornisce maggiore profondità ai dettaglii. È particolarmente utile per coloro che vogliono comprenderei terminali a 256 colori, ncurses, termcap e terminfo.
+
Questo {{codeline|prompt}} è tratto dall'articolo di AskApache.com, [http://www.askapache.com/linux-unix/bash-power-prompt.html BASH Power Prompt article], che fornisce maggiore approfondimenti. È particolarmente utile per coloro che vogliono comprendere i terminali a 256 colori, {{codeline|ncurses}}, {{codeline|termcap}} e {{codeline|terminfo}}.
  
Questo è per '''terminali a 256 colori''', che è da dove provengono  gli escape '''\033[38;5;22m'''.   
+
Questo è per '''terminali a 256 colori''', che è da dove provengono  gli {{codeline|escape}} '''\033[38;5;22m'''.   
 
{{cli|1=
 
{{cli|1=
 
<span style="color:#0b0">802</span><span style="color:#005f00">/1024MB</span>      <span style="color:#5f00af">1.28 1.20 1.13 3/94 18563</span>
 
<span style="color:#0b0">802</span><span style="color:#005f00">/1024MB</span>      <span style="color:#5f00af">1.28 1.20 1.13 3/94 18563</span>
Line 78: Line 78:
  
 
===Lista di colori per il prompt e Bash===
 
===Lista di colori per il prompt e Bash===
Aggiungere questo al file Bash per definire i colori per il prompt e i comandi:
+
Aggiungere questo al file di {{codeline|Bash}} per definire i colori per il {{codeline|prompt}} e i comandi:
 
<pre>txtblk='\e[0;30m' # Nero - Regular
 
<pre>txtblk='\e[0;30m' # Nero - Regular
 
txtred='\e[0;31m' # Rosso
 
txtred='\e[0;31m' # Rosso
Line 199: Line 199:
 
  <span style="color: white; background-color: lightblue"><b>test</b></span>
 
  <span style="color: white; background-color: lightblue"><b>test</b></span>
  
Per utilizzare nei prompt (notare le virgolette e la barra <nowiki>\[ \]</nowiki> usati dalla shell per calcolare la lunghezza corretta):
+
Per utilizzare nei {{codeline|prompt}} (notare le virgolette e la barra {{codeline|\[ \]}} usati dalla shell per calcolare la lunghezza corretta):
 
  PS1="\[$txtblu\]foo\[$txtred\] bar\[$txtrst\] baz : "
 
  PS1="\[$txtblu\]foo\[$txtred\] bar\[$txtrst\] baz : "
  
Line 266: Line 266:
 
  PS1=">\[\033[s\]\[\033[1;\$((COLUMNS-4))f\]\$(date +%H:%M)\[\033[u\]"
 
  PS1=">\[\033[s\]\[\033[1;\$((COLUMNS-4))f\]\$(date +%H:%M)\[\033[u\]"
  
La variabile d'ambiente ''COLUMNS'' contiene il numero di colonne del terminale. The above example substracts 4 from its value in order to justify the five character wide output of ''date'' at the right border.
+
La variabile d'ambiente ''COLUMNS'' contiene il numero di colonne del terminale. L'esempio precedente sottrae 4 dal proprio valore per giustificare i cinque caratteri dell'output largo della "data" sul bordo destro.
  
 
===Visualizzazione valore di ritorno===
 
===Visualizzazione valore di ritorno===
Line 312: Line 312:
 
Dopo aver letto la maggior parte dei [http://www.tldp.org/HOWTO/Bash-Prompt-HOWTO/index.html Bash Prompt Howto], l'autore ha sviluppato questo prompt di Bash che mostra gli ultimi 25 caratteri della directory di lavoro attuale. I risultati migliori si ottengono su terminali con sfondo nero. Il codice seguente va inserito nel file {{Filename|~/.bashrc}}.
 
Dopo aver letto la maggior parte dei [http://www.tldp.org/HOWTO/Bash-Prompt-HOWTO/index.html Bash Prompt Howto], l'autore ha sviluppato questo prompt di Bash che mostra gli ultimi 25 caratteri della directory di lavoro attuale. I risultati migliori si ottengono su terminali con sfondo nero. Il codice seguente va inserito nel file {{Filename|~/.bashrc}}.
  
*Aggiungere la funzione bash_prompt_command. Se si possiedono alcune directory con nomi lunghi o che iniziano con molte sottodirectory, tale funzione evitera' al prompt dei compandi di riempire lo schermo, mostrando al massimo gli ultimi pwdmaxlen caratteri della PWD (directory corrente). Questo codice è tratto dalla sezione ''Bash Prompt Howto''<nowiki>'s</nowiki> section on [http://www.tldp.org/HOWTO/Bash-Prompt-HOWTO/x783.html Controlling the Size and Appearance of $PWD] e modificato per sostituire la directory home dell'utente con una tilde.
+
*Aggiungere la funzione bash_prompt_command. Se si possiedono alcune directory con nomi lunghi o che iniziano con molte sottodirectory, tale funzione evitera' al prompt dei compandi di riempire lo schermo, mostrando al massimo gli ultimi pwdmaxlen caratteri della PWD (directory corrente). Questo codice è tratto dalla sezione ''Bash Prompt Howto'' su [http://www.tldp.org/HOWTO/Bash-Prompt-HOWTO/x783.html Controlling the Size and Appearance of $PWD] e modificato per sostituire la directory home dell'utente con una tilde.
 
  ##################################################
 
  ##################################################
 
  # Fancy PWD display function
 
  # Fancy PWD display function
Line 390: Line 390:
 
  }
 
  }
  
*Infine, aggiungere questo codice, il quale assicura che la variabile NEW_PWD sia aggiornata quando si cambia directory e imposta la variabile PS1, che contiene il prompt dei comandi.
+
*Infine, aggiungere questo codice, il quale assicura che la variabile {{codeline|NEW_PWD}} sia aggiornata quando si cambia directory e imposta la variabile PS1, che contiene il {{codeline|prompt}} dei comandi.
 
  PROMPT_COMMAND=bash_prompt_command
 
  PROMPT_COMMAND=bash_prompt_command
 
  bash_prompt
 
  bash_prompt
Line 396: Line 396:
  
 
===Prompt di KitchM===
 
===Prompt di KitchM===
Questi prompt offrono una maggiore chiarezza visiva e testo lampeggiante.  Si noti che l'uso del colore rosso nel prompt dell'utente root potrebbe dare luogo a indicazioni di attenzione.  
+
Questi {{codeline|prompt}} offrono una maggiore chiarezza visiva e testo lampeggiante.  Si noti che l'uso del colore rosso nel {{codeline|prompt}} dell'utente root potrebbe dare luogo a indicazioni di attenzione.  
  
'''Innanzi tutto''', cambiare lo sfondo di default nelle prefernze del terminale (In questo esempio si usa iul terminal di Xfce) a #D2D2D2, ed il colore del testo a #000000.  I font sono impostati come DejaVu Sans Mono Book 12.  Il colore del cursore è #00AA00, e il colore dell'attività dei tab è #AF0000.
+
'''Primo''', cambiare lo sfondo di default nelle preferenze del terminale (In questo esempio si usa iul terminal di Xfce) a #D2D2D2, ed il colore del testo a #000000.  I font sono impostati come DejaVu Sans Mono Book 12.  Il colore del cursore è #00AA00, e il colore dell'attività dei tab è #AF0000.
  
'''Poi''', in ~/.bashrc and right after the PS1= line, enter a new line with the following:
+
'''Secondo''', in {{filename|~/.bashrc}} dopo la riga PS1=, inserire una nuova riga con il seguente:
 
  PS1='\e[1;33;47m\u \e[1;32;47mon \h \e[1;35;47m\d \@\e[0;0m\n\e[1;34m[dir.= \w] \# > \e[0;0m'
 
  PS1='\e[1;33;47m\u \e[1;32;47mon \h \e[1;35;47m\d \@\e[0;0m\n\e[1;34m[dir.= \w] \# > \e[0;0m'
And then place a # in front of the first PS1 line to remark it out.
+
E poi mettere un # davanti alla prima riga PS1.
  
'''Third''', for root user, edit /root/.bashrc in the same manner to include:
+
'''Terzo''', per l'utente root, modificare il file {{filename|/root/.bashrc}} nello stesso modo per includere:
 
  PS1='\e[1;31;47m\u \e[1;32;47mon \h \e[1;35;47m\d \@\e[0;0m\n\e[1;31m[dir.= \w] \# > \e[0;0m'
 
  PS1='\e[1;31;47m\u \e[1;32;47mon \h \e[1;35;47m\d \@\e[0;0m\n\e[1;31m[dir.= \w] \# > \e[0;0m'
 
Non dimenticare di commentare la riga vecchia.
 
Non dimenticare di commentare la riga vecchia.
  
These are double-line prompts, e che dovrebbero essere simili a questi:
+
Questi sono prompt a doppia linea, e dovrebbero apparire così:
  
User-
+
Utente-
 
  <span style="color:#D2D2D2; background:#D2D2D2">                                          </span>
 
  <span style="color:#D2D2D2; background:#D2D2D2">                                          </span>
 
  <span style="color:#FFFF00; background:#A9A9A9"><b>Username</b></span><span style="color:#00FF00; background:#A9A9A9"><b> on myhost</b></span><span style="color:#FF00FF; background:#A9A9A9"><b> Sun Jan 15 12:30 PM</b></span><span style="color:#D2D2D2; background:#D2D2D2">    </span>
 
  <span style="color:#FFFF00; background:#A9A9A9"><b>Username</b></span><span style="color:#00FF00; background:#A9A9A9"><b> on myhost</b></span><span style="color:#FF00FF; background:#A9A9A9"><b> Sun Jan 15 12:30 PM</b></span><span style="color:#D2D2D2; background:#D2D2D2">    </span>
Line 422: Line 422:
 
  <span style="color:#D2D2D2; background:#D2D2D2">                                          </span>
 
  <span style="color:#D2D2D2; background:#D2D2D2">                                          </span>
  
Si noterà che i colori di sfondo renderanno più confortevole la lettura, ed i colori del testo manterranno le cose "interessanti".  There is a lot of leeway to make them personalized, just with the use of colors. Enjoy!
+
Si noterà che i colori di sfondo renderanno più confortevole la lettura, ed i colori del testo manterranno le cose un po' più "interessanti".  C'è un ampio margine di manovra per personalizzarli a piacere, in modo semplice con l'uso di colori.  
  
 
==Impostazione titolo finestra==
 
==Impostazione titolo finestra==
Line 434: Line 434:
 
  esac
 
  esac
  
The text between <code>0;</code> and <code>\a</code> can be set to anything you like, for example:
+
Il testo tra {{Codeline|0;}} e {{Codeline|\a}} può essere impostato come si preferisce, per esempio:
 
  export PS1='\[\e]0;Welcome to ArchLinux\a\]\$>> '
 
  export PS1='\[\e]0;Welcome to ArchLinux\a\]\$>> '
sets the window title to "Welcome to ArchLinux" and displays this simple prompt:  
+
imposta il titolo della finestra con "Benvenuto su ArchLinux" e mostra questo messaggio semplice:  
 
{{cli|1=
 
{{cli|1=
 
<span style="color: #FFF">$>></span> <span style="text-decoration: blink;">_</span>
 
<span style="color: #FFF">$>></span> <span style="text-decoration: blink;">_</span>
 
}}
 
}}
  
==Different colors for text entry and console output==
+
==Colori diversi per l'immissione di testo e output su console==
If you do not reset the text color at the end of your prompt, both the text you enter and the console text will simply stay in that color. If you want to edit text in a special color but still use the default color for command output, you will need to reset the color after you press enter, but still before any commands get run. You can do this by installing a DEBUG trap in your ~/.bashrc, like this:
+
Se non si azzera il colore del testo alla fine del prompt, sia il testo inserito che il testo della console rimarranno di quel colore. Se si vuole modificare il testo in un colore speciale, ma si usa ancora il colore predefinito per l'output del comando, è necessario ripristinare il colore dopo aver premuto Invio, ma ancora prima di eseguire qualsiasi comando. È possibile farlo tramite l'installazione di una DEBUG trap nel file {{filename|~/.bashrc}}, in questo modo:
  
 
  trap 'echo -ne "\e[0m"' DEBUG
 
  trap 'echo -ne "\e[0m"' DEBUG

Revision as of 01:29, 20 October 2011

This template has only maintenance purposes. For linking to local translations please use interlanguage links, see Help:i18n#Interlanguage links.


Local languages: Català – Dansk – English – Español – Esperanto – Hrvatski – Indonesia – Italiano – Lietuviškai – Magyar – Nederlands – Norsk Bokmål – Polski – Português – Slovenský – Česky – Ελληνικά – Български – Русский – Српски – Українська – עברית – العربية – ไทย – 日本語 – 正體中文 – 简体中文 – 한국어


External languages (all articles in these languages should be moved to the external wiki): Deutsch – Français – Română – Suomi – Svenska – Tiếng Việt – Türkçe – فارسی

Esistono varie possibilità per il proprio Template:Codeline di bash e personalizzarlo aiuterà ad essere più produttivi dalla riga di comando. Si possono aggiungere informazioni al Template:Codeline, o semplicemente colorarlo per farlo risaltare.

Prompt basilari

Le seguenti impostazioni sono utili per distinguere il Template:Codeline di root da quello di utente normale.

$ nano ~/.bashrc
#PS1='[\u@\h \W]\$ '

Template:Cli

PS1='\[\e[1;32m\][\u@\h \W]\$\[\e[0m\] '
# nano /root/.bashrc

Template:Cli

PS1='\[\e[1;31m\][\u@\h \W]\$\[\e[0m\] '

Prompt un po' più elaborati

Template:Cli

PS1='\[\e[0;32m\]\u\[\e[m\] \[\e[1;34m\]\w\[\e[m\] \[\e[1;32m\]\$\[\e[m\] \[\e[1;37m\]'

Questo visualizzerà un Template:Codeline molto piacevole, colorato con un colore di testo bianco brillante.

La stringa sopra contiene le impostazioni colore per le sequenze di escape (inizio colorazione: Template:Codeline, fine colorazione: Template:Codeline) e le informazioni segnaposto:

L'ultimo sequenza di colore, Template:Codeline, non è chiusa, in modo che il testo rimanente (tutto quello che è scritto nel terminale, l'output dei programmi e così via) saranno in quel colore (bianco brillante). Può essere auspicabile cambiare questo colore, o cancellare l'ultima sequenza di escape in modo da lasciare l'attuale output con colori inalterati.

Template:Cli

PS1='\[\e[0;31m\]\u\[\e[m\] \[\e[1;34m\]\w\[\e[m\] \[\e[0;31m\]\$ \[\e[m\]\[\e[0;32m\]'

Questo darà una denominazione rossa con il testo della console verde.

Prompt avanzati

Caricamento Stato della memoria per 256 colori

Questo non è nemmeno superare i limiti... altro che utilizzare Template:Codeline per analizzare memoria e carico medio (usando l'opzione Template:Codeline per il non-buffering), oppure l'arrangiamento per salvare la cronologia al proprio "HISTFILE" dopo ogni comando. Queste soluzioni sono estremamente utili quando si tratta di crash di shell o subshell, ed essenzialmente si tratta solo di far stampare a Template:Codeline variabili già note, rendendo l'operazione estremamente veloce rispetto al Template:Codeline con i comandi builtin.

Questo Template:Codeline è tratto dall'articolo di AskApache.com, BASH Power Prompt article, che fornisce maggiore approfondimenti. È particolarmente utile per coloro che vogliono comprendere i terminali a 256 colori, Template:Codeline, Template:Codeline e Template:Codeline.

Questo è per terminali a 256 colori, che è da dove provengono gli Template:Codeline \033[38;5;22m. Template:Cli

 PROMPT_COMMAND='history -a;echo -en "\033[m\033[38;5;2m"$(( `sed -nu "s/MemFree:[\t ]\+\([0-9]\+\) kB/\1/p" /proc/meminfo`/1024))"\033[38;5;22m/"$((`sed -nu "s/MemTotal:[\t ]\+\([0-9]\+\) kB/\1/Ip" /proc/meminfo`/1024 ))MB"\t\033[m\033[38;5;55m$(< /proc/loadavg)\033[m"'
 PS1='\[\e[m\n\e[1;30m\][$$:$PPID \j:\!\[\e[1;30m\]]\[\e[0;36m\] \T \d \[\e[1;30m\][\[\e[1;34m\]\u@\H\[\e[1;30m\]:\[\e[0;37m\]${SSH_TTY} \[\e[0;32m\]+${SHLVL}\[\e[1;30m\]] \[\e[1;37m\]\w\[\e[0;37m\] \n($SHLVL:\!)\$ '
 


Lista di colori per il prompt e Bash

Aggiungere questo al file di Template:Codeline per definire i colori per il Template:Codeline e i comandi:

txtblk='\e[0;30m' # Nero - Regular
txtred='\e[0;31m' # Rosso
txtgrn='\e[0;32m' # Verde
txtylw='\e[0;33m' # Giallo
txtblu='\e[0;34m' # Blu
txtpur='\e[0;35m' # Viola
txtcyn='\e[0;36m' # Ciano
txtwht='\e[0;37m' # Bianco
bldblk='\e[1;30m' # Nero - Bold
bldred='\e[1;31m' # Rosso
bldgrn='\e[1;32m' # Verde
bldylw='\e[1;33m' # Giallo
bldblu='\e[1;34m' # Blu
bldpur='\e[1;35m' # Viola
bldcyn='\e[1;36m' # Ciano
bldwht='\e[1;37m' # Bianco
unkblk='\e[4;30m' # Nero - Underline
undred='\e[4;31m' # Rosso
undgrn='\e[4;32m' # Verde
undylw='\e[4;33m' # Giallo
undblu='\e[4;34m' # Blu
undpur='\e[4;35m' # Viola
undcyn='\e[4;36m' # Ciano
undwht='\e[4;37m' # Bianco
bakblk='\e[40m'   # Nero - Background
bakred='\e[41m'   # Rosso
badgrn='\e[42m'   # Verde
bakylw='\e[43m'   # Giallo
bakblu='\e[44m'   # Blu
bakpur='\e[45m'   # Viola
bakcyn='\e[46m'   # Ciano
bakwht='\e[47m'   # Bianco
txtrst='\e[0m'    # Text Reset


O se si preferiscono i nomi dei colori o si vogliono colori ad alta intensità:

# Reset
Color_Off='\e[0m'       # Text Reset

# Regular Colors
Black='\e[0;30m'        # Nero
Red='\e[0;31m'          # Rosso
Green='\e[0;32m'        # Verde
Yellow='\e[0;33m'       # Giallo
Blue='\e[0;34m'         # Blu
Purple='\e[0;35m'       # Viola
Cyan='\e[0;36m'         # Ciano
White='\e[0;37m'        # Bianco

# Bold
BBlack='\e[1;30m'       # Nero
BRed='\e[1;31m'         # Rosso
BGreen='\e[1;32m'       # Verde
BYellow='\e[1;33m'      # Giallo
BBlue='\e[1;34m'        # Blu
BPurple='\e[1;35m'      # Viola
BCyan='\e[1;36m'        # Ciano
BWhite='\e[1;37m'       # Bianco

# Underline
UBlack='\e[4;30m'       # Nero
URed='\e[4;31m'         # Rosso
UGreen='\e[4;32m'       # Verde
UYellow='\e[4;33m'      # Giallo
UBlue='\e[4;34m'        # Blu
UPurple='\e[4;35m'      # Viola
UCyan='\e[4;36m'        # Ciano
UWhite='\e[4;37m'       # Bianco

# Background
On_Black='\e[40m'       # Nero
On_Red='\e[41m'         # Rosso
On_Green='\e[42m'       # Verde
On_Yellow='\e[43m'      # Giallo
On_Blue='\e[44m'        # Blu
On_Purple='\e[45m'      # Purple
On_Cyan='\e[46m'        # Ciano
On_White='\e[47m'       # Bianco

# High Intensty
IBlack='\e[0;90m'       # Nero
IRed='\e[0;91m'         # Rosso
IGreen='\e[0;92m'       # Verde
IYellow='\e[0;93m'      # Giallo
IBlue='\e[0;94m'        # Blu
IPurple='\e[0;95m'      # Viola
ICyan='\e[0;96m'        # Ciano
IWhite='\e[0;97m'       # Bianco

# Bold High Intensty
BIBlack='\e[1;90m'      # Nero
BIRed='\e[1;91m'        # Rosso
BIGreen='\e[1;92m'      # Verde
BIYellow='\e[1;93m'     # Giallo
BIBlue='\e[1;94m'       # Blu
BIPurple='\e[1;95m'     # Viola
BICyan='\e[1;96m'       # Ciano
BIWhite='\e[1;97m'      # Bianco

# High Intensty backgrounds
On_IBlack='\e[0;100m'   # Nero
On_IRed='\e[0;101m'     # Rosso
On_IGreen='\e[0;102m'   # Verde
On_IYellow='\e[0;103m'  # Giallo
On_IBlue='\e[0;104m'    # Blu
On_IPurple='\e[10;95m'  # Viola
On_ICyan='\e[0;106m'    # Ciano
On_IWhite='\e[0;107m'   # Bianco

Per utilizzare i comandi dal proprio ambiente shell:

$ echo -e "${txtblu}test"
test
$ echo -e "${bldblu}test"
test
$ echo -e "${undblu}test"
test
$ echo -e "${bakblu}test"
test

Per utilizzare nei Template:Codeline (notare le virgolette e la barra Template:Codeline usati dalla shell per calcolare la lunghezza corretta):

PS1="\[$txtblu\]foo\[$txtred\] bar\[$txtrst\] baz : "

Prompt di escape

Di seguito i vari comandi di escape elencati nella pagina di manuale di bash:

Bash permette che queste stringhe di prompt possano essere personalizzate inserendo un
numero di backslash-escaped special characters che vengono interpretati come segue:

  \a         il carattere ASCII beep (07)
  \d         la data nel formato "Giorno-della-settimana Mese Data"
  \D{format} the format is passed to strftime(3) and the result
             is inserted into the prompt string an empty format
             results in a locale-specific time representation.
             The braces are required
  \e         un carattere di escape ASCII (033)
  \h         l'hostname fino al primo `.'
  \H         l'hostname
  \j         the number of jobs currently managed by the shell
  \l         the basename of the shell's terminal device name
  \n         il carattere "newline"
  \r         il carattere "carriage return"
  \s         il nome della shell, il nome base di $0
             (la parte che segue lo slash finale)
  \t         l'ora corrente nel formato 24-ore HH:MM:SS
  \T         l'ora corrente nel formato 12-ore HH:MM:SS
  \@         l'ora corrente nel formato 12-ore am/pm
  \A         the current time in 24-hour HH:MM format
  \u         lo username dell'utente corrente
  \v         la versione di bash (e.g., 2.00)
  \V         la release di bash, versione + patchlevel
             (es, 2.00.0)
  \w         la directory di lavoro corrente, con $HOME abbreviato con una tilde
  \W         il nome di base della directory di lavoro corrente
             abbreviato con una tilde
  \!         il numero cronologico (history number) di questo comando
  \#         il numero di questo comando
  \$         se l'UID effettivo è 0, un #, altrimenti un $
  \nnn       il carattere corrispondente al numero ottale nnn
  \\         un backslash
  \[         comincia una sequenza di caratteri non stampabili, che
             potrebbero essere usati per inserire una sequenza di
             controllo del terminale nel prompt
  \]         termina la sequenza di caratteri non stampabili
         
  Il numero di comando e il numero della cronologia sono usualmente diversi: 
  il numero della cronologia di una comando è la sua posizione nella lista della 
  cronologia, che potrebbe includere comandi reintegrati dal file di cronologia 
  (vedere HISTORY di seguito), mentre il numero di comando è la posizione nella 
  sequenza di comandi eseguiti durante la sessione di shell attuale. Dopo che la 
  stringa sia stata decodificata, e' espansa attraverso espansione di parametri, 
  sostituzione di comandi, espansione aritmetica, rimozione di apici, soggetta al 
  valore delle opzioni di promptvars della shell (vedere la descrizione del comando 
  shopt sotto SHELL BUILTIN COMMANDS, di seguito).

Posizionamento del cursore

La sequenza che segue imposta la posizione del cursore:

\[\033[<row>;<column>f\]

La posizione del cursore può essere salvata utilizzando:

\[\033[s\]

Per ripristinare una posizione, utilizzare la seguente sequenza:

\[\033[u\]

L'esempio seguente utilizza queste sequenze per visualizzare l'ora in alto a destra:

PS1=">\[\033[s\]\[\033[1;\$((COLUMNS-4))f\]\$(date +%H:%M)\[\033[u\]"

La variabile d'ambiente COLUMNS contiene il numero di colonne del terminale. L'esempio precedente sottrae 4 dal proprio valore per giustificare i cinque caratteri dell'output largo della "data" sul bordo destro.

Visualizzazione valore di ritorno

ATTENZIONE
Questo è sembrato non essere esente da bug, vedere la voce aggiunta alla pagina di discussione.

Aggiungere questa riga se si desidera vedere il valore di ritorno dell'ultimo comando eseguito. Questo dovrebbe funzionare con qualsiasi tipo di prompt fino a quando non ha bisogno di PROMPT_COMMAND:

PROMPT_COMMAND='RET=$?; if [[ $RET -eq 0 ]]; then echo -ne "\033[0;32m$RET\033[0m ;)"; else echo -ne "\033[0;31m$RET\033[0m ;("; fi; echo -n " "'

E sarà simile a questo:

0 ;) harvie@harvie-ntb ~/ $ true
0 ;) harvie@harvie-ntb ~/ $ false
1 ;( harvie@harvie-ntb ~/ $ 

Zero è verde e non-zero è di colore rosso. C'è anche l'indicazione smiley (sostituirlo con quello che si preferisce); così il prompt sorriderà se l'ultima operazione ha avuto successo.

Visualizzazione del valore di ritorno avanzata

Se si vogliono i colori, è necessario impostare i valori $RED e $GREEN:

RED='\e[0;31m'
GREEN='\e[0;32m'

È necessario specificare questi valori nei file di configurazione di Bash:

#return value visualisation
PROMPT_COMMAND='RET=$?;'
RET_VALUE='$(echo $RET)' #Ret value not colorized - you can modify it.
RET_SMILEY='$(if [[ $RET = 0 ]]; then echo -ne "\[$GREEN\];)"; else echo -ne "\[$RED\];("; fi;)'

Quindi è possibile utilizzare le variabili $RET_VALUE e $RET_SMILEY nel prompt. Si noti che è necessario usare le virgolette:

#prompt
PS1="$RET_VALUE $RET_SMILEY : "

Questo darà un prompt di base:

0 ;) : true
0 ;) : false
1 ;( : 

Ma probabilmente si desidera utilizzare $RET_VALUE or $RET_SMILEY nel proprio prompt, così:

PS1="\[$WHITE\]$RET_VALUE $RET_SMILEY \[$BLUE\]\u\[$RED\]@\[$EBLUE\]\h\[$WHITE\] \W \[$ERED\]\\$\[$EWHITE\] "

Prompt di Wolfman

Dopo aver letto la maggior parte dei Bash Prompt Howto, l'autore ha sviluppato questo prompt di Bash che mostra gli ultimi 25 caratteri della directory di lavoro attuale. I risultati migliori si ottengono su terminali con sfondo nero. Il codice seguente va inserito nel file Template:Filename.

  • Aggiungere la funzione bash_prompt_command. Se si possiedono alcune directory con nomi lunghi o che iniziano con molte sottodirectory, tale funzione evitera' al prompt dei compandi di riempire lo schermo, mostrando al massimo gli ultimi pwdmaxlen caratteri della PWD (directory corrente). Questo codice è tratto dalla sezione Bash Prompt Howto su Controlling the Size and Appearance of $PWD e modificato per sostituire la directory home dell'utente con una tilde.
##################################################
# Fancy PWD display function
##################################################
# The home directory (HOME) is replaced with a ~
# The last pwdmaxlen characters of the PWD are displayed
# Leading partial directory names are striped off
# /home/me/stuff          -> ~/stuff               if USER=me
# /usr/share/big_dir_name -> ../share/big_dir_name if pwdmaxlen=20
##################################################
bash_prompt_command() {
    # How many characters of the $PWD should be kept
    local pwdmaxlen=25
    # Indicate that there has been dir truncation
    local trunc_symbol=".."
    local dir=${PWD##*/}
    pwdmaxlen=$(( ( pwdmaxlen < ${#dir} ) ? ${#dir} : pwdmaxlen ))
    NEW_PWD=${PWD/#$HOME/\~}
    local pwdoffset=$(( ${#NEW_PWD} - pwdmaxlen ))
    if [ ${pwdoffset} -gt "0" ]
    then
        NEW_PWD=${NEW_PWD:$pwdoffset:$pwdmaxlen}
        NEW_PWD=${trunc_symbol}/${NEW_PWD#*/}
    fi
}
  • Questo codice genera il prompt dei comandi in cui sono definiti un paio di colori. Il colore dell'utente per il nome utente, l'hostname e il prompt ($ o #) è impostato a ciano, mentre se l'utente è root (l'UID di root è sempre 0), imposta il colore a rosso. Il prompt dei comandi è una versione colorata del prompt di default di Arch, con NEW_PWD proveniente dalla precedente funzione.
Si presti inoltre attenzione che le variabili dei colori sono racchiuse tra doppi apici (virgolette), non singoli apici (apostrofi). L'uso di singoli apici sembra creare problemi a bash per la corretta separazione di righe.
bash_prompt() {
    case $TERM in
     xterm*|rxvt*)
         local TITLEBAR='\[\033]0;\u:${NEW_PWD}\007\]'
          ;;
     *)
         local TITLEBAR=""
          ;;
    esac
    local NONE="\[\033[0m\]"    # unsets color to term's fg color
    
    # regular colors
    local K="\[\033[0;30m\]"    # black
    local R="\[\033[0;31m\]"    # red
    local G="\[\033[0;32m\]"    # green
    local Y="\[\033[0;33m\]"    # yellow
    local B="\[\033[0;34m\]"    # blue
    local M="\[\033[0;35m\]"    # magenta
    local C="\[\033[0;36m\]"    # cyan
    local W="\[\033[0;37m\]"    # white
    
    # emphasized (bolded) colors
    local EMK="\[\033[1;30m\]"
    local EMR="\[\033[1;31m\]"
    local EMG="\[\033[1;32m\]"
    local EMY="\[\033[1;33m\]"
    local EMB="\[\033[1;34m\]"
    local EMM="\[\033[1;35m\]"
    local EMC="\[\033[1;36m\]"
    local EMW="\[\033[1;37m\]"
    
    # background colors
    local BGK="\[\033[40m\]"
    local BGR="\[\033[41m\]"
    local BGG="\[\033[42m\]"
    local BGY="\[\033[43m\]"
    local BGB="\[\033[44m\]"
    local BGM="\[\033[45m\]"
    local BGC="\[\033[46m\]"
    local BGW="\[\033[47m\]"
    
    local UC=$W                 # user's color
    [ $UID -eq "0" ] && UC=$R   # root's color
    
    PS1="$TITLEBAR ${EMK}[${UC}\u${EMK}@${UC}\h ${EMB}\${NEW_PWD}${EMK}]${UC}\\$ ${NONE}"
    # without colors: PS1="[\u@\h \${NEW_PWD}]\\$ "
    # extra backslash in front of \$ to make bash colorize the prompt
}
  • Infine, aggiungere questo codice, il quale assicura che la variabile Template:Codeline sia aggiornata quando si cambia directory e imposta la variabile PS1, che contiene il Template:Codeline dei comandi.
PROMPT_COMMAND=bash_prompt_command
bash_prompt
unset bash_prompt

Prompt di KitchM

Questi Template:Codeline offrono una maggiore chiarezza visiva e testo lampeggiante. Si noti che l'uso del colore rosso nel Template:Codeline dell'utente root potrebbe dare luogo a indicazioni di attenzione.

Primo, cambiare lo sfondo di default nelle preferenze del terminale (In questo esempio si usa iul terminal di Xfce) a #D2D2D2, ed il colore del testo a #000000. I font sono impostati come DejaVu Sans Mono Book 12. Il colore del cursore è #00AA00, e il colore dell'attività dei tab è #AF0000.

Secondo, in Template:Filename dopo la riga PS1=, inserire una nuova riga con il seguente:

PS1='\e[1;33;47m\u \e[1;32;47mon \h \e[1;35;47m\d \@\e[0;0m\n\e[1;34m[dir.= \w] \# > \e[0;0m'

E poi mettere un # davanti alla prima riga PS1.

Terzo, per l'utente root, modificare il file Template:Filename nello stesso modo per includere:

PS1='\e[1;31;47m\u \e[1;32;47mon \h \e[1;35;47m\d \@\e[0;0m\n\e[1;31m[dir.= \w] \# > \e[0;0m'

Non dimenticare di commentare la riga vecchia.

Questi sono prompt a doppia linea, e dovrebbero apparire così:

Utente-

                                           
Username on myhost Sun Jan 15 12:30 PM     
[dir.= /home/username] 1 >                 
                                           

Root-

                                           
Root on myhost  Sun Jan 15 12:30 PM           
[dir.= /etc/rc.d] 1 >                      
                                           

Si noterà che i colori di sfondo renderanno più confortevole la lettura, ed i colori del testo manterranno le cose un po' più "interessanti". C'è un ampio margine di manovra per personalizzarli a piacere, in modo semplice con l'uso di colori.

Impostazione titolo finestra

Xterm e molti altri emulatori di terminale (PuTTY incluso) consentono di impostare il titolo della finestra utilizzando speciali sequenze di escape. Si possono impostare le variabili Template:Codeline come segue, poi inserirle all'inizio del prompt per impostare il titolo di xterm (se disponibile) su directory@user@hostname:

#set xterm title
case "$TERM" in
  xterm | xterm-color)
    XTERM_TITLE='\[\e]0;\W@\u@\H\a\]'
  ;;
esac

Il testo tra Template:Codeline e Template:Codeline può essere impostato come si preferisce, per esempio:

export PS1='\[\e]0;Welcome to ArchLinux\a\]\$>> '

imposta il titolo della finestra con "Benvenuto su ArchLinux" e mostra questo messaggio semplice: Template:Cli

Colori diversi per l'immissione di testo e output su console

Se non si azzera il colore del testo alla fine del prompt, sia il testo inserito che il testo della console rimarranno di quel colore. Se si vuole modificare il testo in un colore speciale, ma si usa ancora il colore predefinito per l'output del comando, è necessario ripristinare il colore dopo aver premuto Invio, ma ancora prima di eseguire qualsiasi comando. È possibile farlo tramite l'installazione di una DEBUG trap nel file Template:Filename, in questo modo:

trap 'echo -ne "\e[0m"' DEBUG

Esempi di bashrc da Gentoo

# /etc/bash.bashrc
#
# This file is sourced by all *interactive* bash shells on startup,
# including some apparently interactive shells such as scp and rcp
# that can't tolerate any output.  So make sure this doesn't display
# anything or bad things will happen !


# Test for an interactive shell.  There is no need to set anything
# past this point for scp and rcp, and it's important to refrain from
# outputting anything in those cases.

if [[ $- != *i* ]] ; then
	# Shell is non-interactive.  Be done now!
	return
fi

# Bash won't get SIGWINCH if another process is in the foreground.
# Enable checkwinsize so that bash will check the terminal size when
# it regains control.  #65623
# http://cnswww.cns.cwru.edu/~chet/bash/FAQ (E11)
shopt -s checkwinsize

# Enable history appending instead of overwriting.  #139609
shopt -s histappend

# Change the window title of X terminals 
case ${TERM} in
	xterm*|rxvt*|Eterm|aterm|kterm|gnome*|interix)
		PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME%%.*}:${PWD/$HOME/~}\007"'
		;;
	screen)
		PROMPT_COMMAND='echo -ne "\033_${USER}@${HOSTNAME%%.*}:${PWD/$HOME/~}\033\\"'
		;;
esac

use_color=false

# Set colorful PS1 only on colorful terminals.
# dircolors --print-database uses its own built-in database
# instead of using /etc/DIR_COLORS.  Try to use the external file
# first to take advantage of user additions.  Use internal bash
# globbing instead of external grep binary.
safe_term=${TERM//[^[:alnum:]]/?}   # sanitize TERM
match_lhs=""
[[ -f ~/.dir_colors   ]] && match_lhs="${match_lhs}$(<~/.dir_colors)"
[[ -f /etc/DIR_COLORS ]] && match_lhs="${match_lhs}$(</etc/DIR_COLORS)"
[[ -z ${match_lhs}    ]] \
	&& type -P dircolors >/dev/null \
	&& match_lhs=$(dircolors --print-database)
[[ $'\n'${match_lhs} == *$'\n'"TERM "${safe_term}* ]] && use_color=true

if ${use_color} ; then
	# Enable colors for ls, etc.  Prefer ~/.dir_colors #64489
	if type -P dircolors >/dev/null ; then
		if [[ -f ~/.dir_colors ]] ; then
			eval $(dircolors -b ~/.dir_colors)
		elif [[ -f /etc/DIR_COLORS ]] ; then
			eval $(dircolors -b /etc/DIR_COLORS)
		fi
	fi

	if [[ ${EUID} == 0 ]] ; then
		PS1='\[\033[01;31m\]\h\[\033[01;34m\] \W \$\[\033[00m\] '
	else
		PS1='\[\033[01;32m\]\u@\h\[\033[01;34m\] \w \$\[\033[00m\] '
	fi

	alias ls='ls --color=auto'
	alias grep='grep --colour=auto'
else
	if [[ ${EUID} == 0 ]] ; then
		# show root@ when we do not have colors
		PS1='\u@\h \W \$ '
	else
		PS1='\u@\h \w \$ '
	fi
fi

# Try to keep environment pollution down, EPA loves us.
unset use_color safe_term match_lhs

Vedere anche

gentoo-bashrc da AUR

Risorse esterne