Autore Topic: BASH PROMPT [.bashrc] [personaliziamolo e diamogli un tocco di colore!!]  (Letto 2715 volte)

Offline UnderTheGun

  • *
  • Post: 716
  • Reputazione: 69
  • [ Official Packager ]
    • Mostra profilo
    • kernel-CK repository
AGGIORNAMENTO (02-2014):

Questa guida è ora divisa in 2 parti:

#1 Colore il proprio Bash Prompt
#2 Aggiungere piccoli tweaks e utili comandi

_____________________________________________________________


Scopo:  Personalizzare il prompt della shell bash
Come: Modificando il file ~/.bashrc
Possibili conflitti o problemi:La guida fa riferimento alla shell bash (di default su Chakra e sulla stragrande maggioranza delle distro GNU/Linux), quindi non è valida per altre shell
Prerequisiti:Shell bash, editor di testi
Vantaggi: A seconda della configurazione scelta, è possibile aumentare l'utilità del prompt, aumentando o modificando le informazioni contenute, aumentare la "bellezza" modificando i colori, aggiungere utili comandi.

Svantaggi:
Il prompt, se non configurato bene, può sembrare confusionario o particolarmente brutto
Tempo necessario: 5-10 minuti (la maggior parte per provare diverse combinazioni)

Fonti: Parte della guida è presa da Bash-prompt-howto
________________________________________________________________
                                                           
Partiamo!!!  :D



  • Parte 1: Colorare il proprio Bash Prompt


Questo sopra è il mio Prompt al momento ;).
Ecco quindi alcuni piccoli consigli su come personalizzare il proprio.

La "guida" al momento non è ancora finita!


### METODO BASE ###

1# Distinguere il prompt di root da quello di utente normale

1. Editare il file di configurazione di Bash del nostro utente corrente che si trova in ~/.bashrc :
Codice: [Seleziona]
$ nano ~/.bashrc
2. Commentare il prompt di default ("PS1"):
Codice: [Seleziona]
#PS1='[\u@\h \W]\$ '
3. E aggiungere, per avere un prompt verde (ma potete scegliere qualsiasi colore, li trovate in fondo), per gli utenti normali :
Codice: [Seleziona]
PS1='\[\e[1;32m\][\u@\h \W]\$\[\e[0m\] '
Così avremo un prompt per l'utente come questo:
Citazione
[chakra@linux ~]$

4. Ora editiamo il file /root/.bashrc per root (se non ci fosse al percorso /root/ dovremmo trovare una copia in /etc/skel/.bashrc
Codice: [Seleziona]
# nano /root/.bashrc
5. Per assegnare a root il colore rosso aggiungete:
Codice: [Seleziona]
PS1='\[\e[1;31m\][\u@\h \W]\$\[\e[0m\] 'sempre Commentando il "PS1" di default

Così avremo un prompt per root come questo:
Citazione
[root@linux ~]$

6. Ora aggiornate il bashrc lanciando:
Codice: [Seleziona]
$ source ~/.bashrc(per fare il simbolo "~" premete F5 nel terminale)

7. Divertitevi ^^

In fondo troverete una lista di colori e relativo codice da usare!



### METODO ELABORATO ###


 1# Informazioni

.Come aggiungere informazioni al nostro prompt


Per prima cosa conosciamo meglio i valori delle stringhe viste sopra.

Codice: [Seleziona]
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\]'

La stringa sopra contiene le impostazioni di

_ inizio colorazione: \[\e[color\]
_ fine colorazione  \[\e[m\])
_e le informazioni segnaposto, che si suddividono in
  • \u - Nome utente. Il prompt originale ha anche \h, che stampa il nome dell'host.
  • \w - Attuale percorso assoluto. Usa \W per l'attuale percorso relativo percorso.
  • \$ - Il carattere di prompt (es.# per root, $ per gli utenti normali).

L'ultimo sequenza di colore, \[\e[1;37m\], non è chiusa, in modo che il testo rimanente sarà
di quel colore.

Quando copiate uno dei codici dei colori scritti in fondo ricordatevi di lasciare \[\e[CODICE-COLORE\].

Elenco delle informazioni che possiamo aggiungere al nostro prompt:

Codice: [Seleziona]
Le informazioni che possiamo farci mostrare dal prompt sono:

       \a     il carattere ASCII beep (07)
       \d     la data nel formato "Giorno-della-settimana Mese Data"
              (e.g., "Tue May 26")
       \e     un carattere di escape ASCII (033)
       \h     l'hostname fino al primo `.'
       \H     l'hostname
       \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
       \u     lo username dell'utente corrente
       \v     la versione di bash (e.g., 2.00)
       \V     la release di bash, versione + patchlevel
              (e.g., 2.00.0)
       \w     la directory di lavoro corrente
       \W     il nome di base della directory di lavoro corrente
       \!     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
       \[     comuncia 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

Per usarle basta aggiungere tra due parantesi quadre [ ]

Esempio: il prompt di default è:
Codice: [Seleziona]
PS1='[\u@\h \w]\$ '
se voglio mostrare l'ora aggiungo [\t] in questo modo:
Codice: [Seleziona]
PS1='[\t][\u@\h \w]\$ '
N.B. aggiungendo [\t] all'inizio faccio in modo di mostrare l'ora prima del nome utente@percorso, ma posso aggiungerlo in qualsiasi posizione io voglia.


Per avere un prompt come il mio in alto di verde, blu e con le scritte bianche aggiungete:
Codice: [Seleziona]
PS1='\[\e[0;32m\]\u\[\e[m\] \[\e[1;34m\]\w\[\e[m\] \[\e[1;32m\]\$\[\e[m\] \[\e[0;37m\]'
Una volta effettuate le modifiche al bashrc per verificarle subito basta lanciare:
Codice: [Seleziona]
$ source ~/.bashrc
Avrete un prompt come il mio, così:




2# Colori

.Come aggiungere colori al nostro prompt

Eccovi alcuni esempi:


Dell'ultima combinazione eccovi la stringa:
Codice: [Seleziona]
PS1='\[\e[0;32m\]\u\[\e[m\] \[\e[0;33m\]\w\[\e[m\] \[\e[0;37m\]\$\[\e[m\] \[\e[0;32m\]'

Per testare un colore direttamente dal terminale lanciare:
Codice: [Seleziona]
$ echo -e "$ CODICE-COLORE testo di prova"
Per testare ad esempio il bianco regolare che ha come codice \e[1;37m digito:
Codice: [Seleziona]
$ echo -e "$ \e[1;37m testo di prova"



LISTA COLORI
(copiate il codice contenuto tra i due '.......' )
(per comodità potete anche copiare tutta la lista e inserirla nel file bashrc)
Codice: [Seleziona]
# 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

Se volete anche la faccina prima del nome e il valore di ritorno continuate a leggere!



3# Valore di ritorno

.Come visualizzazione un valore di ritorno



Se notate il mio prompt nell'immagine qui sopra quando do un comando mi restituisce il suo valore:

0 ; ) fix ~ $
0 ; ) fix ~ $
1 ; ( fix ~ $
2 ; ( fix ~ $

In questo modo se l'ultima operazione che ho eseguito ha avuto successo il Prompt mi sorride.

I valori 0 sono VERDI con faccina sorridente e quelli non-0 sono ROSSI con faccina triste... :)

Basta aggiungere questa riga per vedere il valore di ritorno dell'ultimo comando eseguito:
Codice: [Seleziona]
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 " "'
________________________________________________________________________________


  • Parte 2: Aggiungiamo piccoli tweaks e utili comandi


Premessa:
ogni volta che modifichiamo e salviamo il file ~/.bashrc, per visualizzare subito le modifiche dobbiamo digitare:
Codice: [Seleziona]
source /home/NOME-UTENTE/.bashrc


1# Per avere l'auto-completamento dei comandi, attivabile col tasto TAB, per i comandi "sudo" e "man", aggiungiamo al file ~/.bashrc:
Codice: [Seleziona]
complete -cf sudo
complete -cf man


2# Per avere le pagine del comando "man" visivamente migliori, dando risalto alle parole importanti aggiungendo vari colori , aggiungiamo al nostro .bashrc :

Codice: [Seleziona]
# Pagine di MAN colorate
man() {
    env LESS_TERMCAP_mb=$(printf "\e[1;31m") \
LESS_TERMCAP_md=$(printf "\e[1;31m") \
LESS_TERMCAP_me=$(printf "\e[0m") \
LESS_TERMCAP_se=$(printf "\e[0m") \
LESS_TERMCAP_so=$(printf "\e[1;44;33m") \
LESS_TERMCAP_ue=$(printf "\e[0m") \
LESS_TERMCAP_us=$(printf "\e[1;32m") \
man "$@"
}


3# Per dare colore anche al comando "less" aggiungiamo:
Codice: [Seleziona]
# Colora Less
export LESS=-R
export LESS_TERMCAP_me=$(printf '\e[0m')
export LESS_TERMCAP_se=$(printf '\e[0m')
export LESS_TERMCAP_ue=$(printf '\e[0m')
export LESS_TERMCAP_mb=$(printf '\e[1;32m')
export LESS_TERMCAP_md=$(printf '\e[1;34m')
export LESS_TERMCAP_us=$(printf '\e[1;32m')
export LESS_TERMCAP_so=$(printf '\e[1;44;1m')


4# Per avere "cd" e "ls" in un unico comando, utile per entrare in una cartella e visualizzarne subito il contenuto, evitando quindi di digitare prima cd e poi ls, aggiungiamo:
Codice: [Seleziona]
# cd and ls in un unico comando
cl() {
if [ -d "$1" ]; then
cd "$1"
ls --group-directories-first --time-style=+"%d.%m.%Y %H:%M" --color=auto -F
else
echo "bash: cl: '$1': Directory not found"
fi
}
Potremmo quindi poi utilizzarlo digitando "cl" nel terminate.


5# FORTUNE-MOD
Per visualizzare una frase (celebre, divertente, presa da un film) ogni volta che avviate una finestra del prompt (magari tramite konsole o yakuake) seguite questi passaggi ed otterrete una cosa simile a questa.


Per prima cosa installate fortune-mod:
Codice: [Seleziona]
ccr -S fortune-mod
Poi se volete le frasi in italiano installate anche questo:
Codice: [Seleziona]
ccr -S fortune-mod-itOppure dando ccr fortune-mod potrete vedere TUTTE le varianti ed installare quelle che preferite!

N.B. Nella cartella /usr/share/fortune/off/ sono contenute le frasi ritenute offensive o violente. Sono spesso contraddistinte da una "o" finale Se volete abilitarle spostate il contenuto nella directory di fortune principale o nella cartella relativa al pacchetto fortune-mod-xy che avete installato. (esempio nella cartella /usr/share/fortune/it per il pacchetto in italiano).

Ora per far si che appaiono ad ogni avvio del prompt aprite il solito ~/.bashrc e copiate questo:
Codice: [Seleziona]
#Fortune-mod abilitato all'avvio della shell
command fortune

Se volete dargli un tocco di colore, come nella mia immagine sopra, allora incollate questo invece:
Codice: [Seleziona]
#Fortune-mod abilitato all'avvio della shell
[[ "$PS1" ]] && echo -e "\e[00;33m$(/usr/bin/fortune)\e[00m"

Ora salvate il file ~/.bashrc; per visualizzare subito le modifiche ricaricate il nuovo file:
Codice: [Seleziona]
source /home/NOME-UTENTE/.bashrce dovreste vedere le frasi abilitate!!

N.B. Per cambiare il colore dovete agire sul valore 00;33m
Tornate a scorrere in su il post e troverete i vari codici dei colori!!!!

« Ultima modifica: 15 Febbraio 2014 ore 01:35 da UnderTheGun »

Kernel ottimizzati per Chakra
*Kernel CK - Kernel PF*

Offline whoami

  • *
  • Post: 1562
  • Reputazione: 64
  • Quando c'era init i log arrivavano in orario!
    • Mostra profilo
Re:Colorare il proprio Bash Prompt
« Risposta #1 il: 19 Marzo 2012 ore 04:06 »
ciao.

avevo fatto anch'io una guida, ora non riesco a linkarla perchè sono sul cell, si chiamava "personalizzare il prompt", se vuoi puoi andare a spulciare da lì per  integrare poi chiediamo agli amministratori di chiudere quel topic per non avere 2 doppioni... ;D
echo "VQF AHELME I BI CI WECPF"| tr "ETAOINSHRDLUBCFGJMQPVWZYXK" "A-Z"

Offline UnderTheGun

  • *
  • Post: 716
  • Reputazione: 69
  • [ Official Packager ]
    • Mostra profilo
    • kernel-CK repository
Re:BASH PROMPT [come colorare il proprio]
« Risposta #2 il: 19 Marzo 2012 ore 04:43 »
Oh cavolo, mi deve essere sfuggita, sistemeremo tutto ;) non c'è problema, Magari unisco la tua alla mia, o viceversa. :)

EDIT= Mi è sfuggita perchè non l'ho vista linkata all'indice delle guide...infatti ci ho riguardato ora ora, ma non mi pare di vederla..

EDIT2= Ok, l'ho cercata "a mano"  ;D, trovata! Possiamo unirle benissimo, in quando non sono uguali: la tua parla di cose che ancora io non avevo scritto (infatti lo avevo precisato^^) e  viceversa nella tua manca qualcosa di "mio"...
Non so se ti sono scadute le immagini ma non vedo screenshot nella tua guida...C'erano?
Domani, se mi dai il permesso, integro la tua con la mia e finisco di scrivere di alcune cose che mancano sia di quà che di là... :)
« Ultima modifica: 19 Marzo 2012 ore 04:52 da UnderTheGun »

Kernel ottimizzati per Chakra
*Kernel CK - Kernel PF*

Offline whoami

  • *
  • Post: 1562
  • Reputazione: 64
  • Quando c'era init i log arrivavano in orario!
    • Mostra profilo
Re:BASH PROMPT [come colorare il proprio]
« Risposta #3 il: 19 Marzo 2012 ore 08:38 »
esatto, non era stata indicizzata...
screen non ce n'erano perchè ho scoperto da poco come mettere solo una parte dell'immagine in ksnapshot...

comunque come dicevo prendi pure quello che ti serve se ti serve x farne una sola più completa poi eliminiamo la mia. io non posso contribuire più di tanto causa alimentatore del pc fritto :(
echo "VQF AHELME I BI CI WECPF"| tr "ETAOINSHRDLUBCFGJMQPVWZYXK" "A-Z"

Offline UnderTheGun

  • *
  • Post: 716
  • Reputazione: 69
  • [ Official Packager ]
    • Mostra profilo
    • kernel-CK repository
Re:BASH PROMPT [come colorare il proprio]
« Risposta #4 il: 03 Agosto 2013 ore 23:47 »
Guida  ritoccata  ;)

Kernel ottimizzati per Chakra
*Kernel CK - Kernel PF*

Offline UnderTheGun

  • *
  • Post: 716
  • Reputazione: 69
  • [ Official Packager ]
    • Mostra profilo
    • kernel-CK repository
Re:BASH PROMPT [.bashrc] [personaliziamolo e diamogli un tocco di colore!!]
« Risposta #5 il: 14 Febbraio 2014 ore 19:37 »
Guida aggiornata !!
Ho ancora da postare diverse cose!!

Ho aggiunto una nuova sezione:

    Parte 2: Aggiungiamo piccoli tweaks e utili comandi

dove inserirò utili comandi e tweaks!
Alcuni potete già vederli ;)


EDIT 2: aggiunto anche:


5# FORTUNE-MOD
Per visualizzare una frase (celebre, divertente, presa da un film) ogni volta che avviate una finestra del prompt (magari tramite konsole o yakuake) seguite questi passaggi ed otterrete una cosa simile a questa.


Per prima cosa installate fortune-mod:
Codice: [Seleziona]
ccr -S fortune-mod
Poi se volete le frasi in italiano installate anche questo:
Codice: [Seleziona]
ccr -S fortune-mod-itOppure dando ccr fortune-mod potrete vedere TUTTE le varianti ed installare quelle che preferite!

N.B. Nella cartella /usr/share/fortune/off/ sono contenute le frasi ritenute offensive o violente. Sono spesso contraddistinte da una "o" finale Se volete abilitarle spostate il contenuto nella directory di fortune principale o nella cartella relativa al pacchetto fortune-mod-xy che avete installato. (esempio nella cartella /usr/share/fortune/it per il pacchetto in italiano).

Ora per far si che appaiono ad ogni avvio del prompt aprite il solito ~/.bashrc e copiate questo:
Codice: [Seleziona]
#Fortune-mod abilitato all'avvio della shell
command fortune

Se volete dargli un tocco di colore, come nella mia immagine sopra, allora incollate questo invece:
Codice: [Seleziona]
#Fortune-mod abilitato all'avvio della shell
[[ "$PS1" ]] && echo -e "\e[00;33m$(/usr/bin/fortune)\e[00m"

Ora salvate il file ~/.bashrc; per visualizzare subito le modifiche ricaricate il nuovo file:
Codice: [Seleziona]
source /home/NOME-UTENTE/.bashrce dovreste vedere le frasi abilitate!!

N.B. Per cambiare il colore dovete agire sul valore 00;33m
Tornate a scorrere in su il post e troverete i vari codici dei colori!!!!

« Ultima modifica: 15 Febbraio 2014 ore 01:35 da UnderTheGun »

Kernel ottimizzati per Chakra
*Kernel CK - Kernel PF*

 

Template by Homey | Sito ufficiale | Disclaimer