Prompt Della Shell
Il prompt della shell e' quella serie di caratteri prima dello spazio dove si scrive, per esempio sul mio computer quando apro un terminale mi appare:
max@linux:~>
mentre se lo apre root:
linux:/home/max #
La stringa iniziale e' una stringa identificata dalla variabile "PS1". Se si impostano valori particolari della variabile, si riescono ad ottenere una serie di risultati che possono sveltire l'uso del terminale. Per capire meglio cosa intendo provate a battere $ echo $PS1 e vedete il risultato ottenuto, sicuramente sara' una serie di caratteri senza senso per voi; ognuno di quei simboli ha un significato speciale, eccoli spiegati:
- \a : Inserisce il carattere che significa BEEP!, cioe' il suono della campana di sistema. E' come se si premesse [CTRL+g].
- \d : Stampa la data corrente.
- \h : Stampa l'hostname del computer.
- \n : Carattere che indica di andare a capo a scrivere
- \t : L'ora esatta in forma di 0-24.
- \@ :L'ora esatta in forma 0-12 a.m./p.m.
- \w : La directory corrente.
- \u : Il nostro user name.
- \! : Il numero del comando nella storia dei comandi.
Tutti questi caratteri si possono mettere insieme, per esempio la mia variabile semplice PS1 e' la seguente:
\u@\h:\w>
Se poi voglio qulacosa di piu' comodo, uso i COLORI. I colori sono dei codici non stampabili, e come tutti i caratteri non stampabili, nelle variabili cominciano e finiscono con:
\[ \]
I colori invece cominciano col codice \033, una parentesi quadra e poi col codice del colore, ad esempio:
$ echo -e "\033[1;31Ciao a tutti"
Se volete vedere un po' di colori eseguite questo script:
#!/bin/bash # Author: ??? # This file echoes a bunch of colour codes to the terminal to demonstrate # what's available. Each line is one colour on black and gray # backgrounds, with the code in the middle. Verified to work on white, # black, and green BGs (2 Dec 98). # echo " On Light Gray: On Black:" echo -e "\033[47m\033[1;37m White \033[0m 1;37m \033[40m\033[1;37m White \033[0m" echo -e "\033[47m\033[37m Light Gray \033[0m 37m \033[40m\033[37m Light Gray \033[0m" echo -e "\033[47m\033[1;30m Gray \033[0m 1;30m \033[40m\033[1;30m Gray \033[0m" echo -e "\033[47m\033[30m Black \033[0m 30m \033[40m\033[30m Black \033[0m" echo -e "\033[47m\033[31m Red \033[0m 31m \033[40m\033[31m Red \033[0m" echo -e "\033[47m\033[1;31m Light Red \033[0m 1;31m \033[40m\033[1;31m Light Red \033[0m" echo -e "\033[47m\033[32m Green \033[0m 32m \033[40m\033[32m Green \033[0m" echo -e "\033[47m\033[1;32m Light Green \033[0m 1;32m \033[40m\033[1;32m Light Green \033[0m" echo -e "\033[47m\033[33m Brown \033[0m 33m \033[40m\033[33m Brown \033[0m" echo -e "\033[47m\033[1;33m Yellow \033[0m 1;33m \033[40m\033[1;33m Yellow \033[0m" echo -e "\033[47m\033[34m Blue \033[0m 34m \033[40m\033[34m Blue \033[0m" echo -e "\033[47m\033[1;34m Light Blue \033[0m 1;34m \033[40m\033[1;34m Light Blue \033[0m" echo -e "\033[47m\033[35m Purple \033[0m 35m \033[40m\033[35m Purple \033[0m" echo -e "\033[47m\033[1;35m Pink \033[0m 1;35m \033[40m\033[1;35m Pink \033[0m" echo -e "\033[47m\033[36m Cyan \033[0m 36m \033[40m\033[36m Cyan \033[0m" echo -e "\033[47m\033[1;36m Light Cyan \033[0m 1;36m \033[40m\033[1;36m Light Cyan \033[0m"
Carino l'effetto che si ottiene, vero?
Ecco la mia PS1 piu' utilizzata:
\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\] \$
Ecco un'ottima PS1 per root (rosso fuoco):
\[\033[31m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\] \$