domenica 15 febbraio 2009

Cambiare il prompt del terminale

Non vi piace il prompt del vostro terminale? Lo volete modificare? È presto fatto. Intanto guardiamo come è fatto, normalmente, il prompt:
${USER}@${HOSTNAME}:${PWD/$HOME/~}$
C'è una variabile in cui è salvato il prompt, PS1. Per vedere il suo contenuto vi basta dare
echo $PS1
Se non l'avete mai cambiata dovrebbe uscirvi qualcosa tipo
${debian_chroot:+($debian_chroot)}\u@\h:\w\$
Quindi per modificare il prompt sarà sufficiente cambiare la variabile PS1. Per esempio:
PS1="foo$ "
Prima di modificare la variabile PS1 potrebbe essere conveniente conservare una copia di backup dell'originale, per esempio
OPS1=$PS1

Modificando la variabile PS1 in questo modo, però, al successivo avvio di un terminale le nuove impostazioni andranno perse. Per fare in modo che la modifica sia permanente dove aggiungere la nuova variabile in uno dei file ~/.bashrc o ~/.profile

Adesso vediamo come si può personalizzare il prompt. Ecco un elenco dei caratteri "speciali" che si possono aggiungere (è ripreso da qui e poi tradotto, ma si trova anche da parecchie altre parti in giro per la rete):
\a: ASCII bell character (07): in pratica ogni volta che compare il prompt sentirete un beep
\d: data nel formato "giorno-della-settimana mese data" (per esempio "Sun Feb 15")
\D{format}: il formato è passato a strftime(3) e il risultato è inserito nella stringa del prompt; un formato vuoto indica una rappresentazione locale del tempo. Le parentesi sono necessarie.
\e: un ASCII escape character (033)
\h: l'hostname fino al primo '.'
\H: l'hostname
\j: il numero di job attualmente gestiti dalla shell
\l: il basename del nome del dispositivo del terminale della shell
\n: linea vuota
\r: carriage return
\s: il nome della shell, il basename di $0 (la parte che segue l'ultimo slash)
\t: l'ora corrente nel formato hh:mm:ss (24 ore)
\T: l'ora corrente nel formato hh:mm:ss (12 ore)
\@: l'ora corrente nel formato 12 ore am/pm
\A: l'ora corrente nel formato hh:mm (24 ore)
\u: il nome dell'utente corrente
\v: versione della bash (per esempio: 3.20)
\V: la release della bash, versione + patch level (per esempio: 3.2.39)
\w: la directory attuale con la variabile $HOME sostituita dalla tilde ~
\!: il numero della cronologia di questo comando
\#: il numero del comando di questo comando (questo non ho ben capito cosa indica)
\$: se l'UID effettivo dell'utente è 0 mostra il simbolo #, altrimenti mostra $
\nnn: il carattere corrispondente al numero ottale nnn
\\
: il backslash \
\[: inizia di una sequenza di caratteri da non visualizzare che può essere usata per inserire una sequenza di controllo nel prompt
\]: termina una sequenza di caratteri non visualizzati

Qui potete trovare inoltre istruzioni per colorare il prompt. Qui, invece, è presente un'ulteriore guida per personalizzare e abbellire il proprio terminale

Ora potete sbizzarrirvi a impostare il prompt che più vi piace.

Nessun commento:

Posta un commento

I commenti inseriti vengono lasciati dall'autore degli stessi accettandone ogni eventuale responsabilità civile e penale.
Il curatore del blog si riserva la possibilità di eliminare messaggi contenenti frasi offensive o spam.