8 Utili e Interessanti Prompt Bash

Un programmatore al laptop.

Molte persone non considerano il prompt della riga di comando come un elemento utile, o addirittura non vi prestano molta attenzione. Tuttavia, un prompt utile può cambiare il modo in cui utilizzi la riga di comando e, per estensione, il tuo sistema. Questo articolo ti mostra una serie di prompt Bash utili e interessanti con esempi. Tieni presente che iniziamo con i prompt stessi, per poi offrire ulteriori istruzioni su come lavorare con essi.

Qui offriamo alcuni prompt Bash, e non tutti saranno seri. Ad esempio, il nostro primo elemento della lista potrebbe portarti un po’ di gioia quando usi la riga di comando!

Leggi anche: Comandi Bash di base per neofiti di Linux

1. Mostra un “Kaomoji” al termine dell’esecuzione riuscita

Questo prompt è divertente e utile! L’idea è che, finché esegui comandi riusciti, il tuo prompt mostrerà un kaomoji felice.

Visualizzazione Kaomoji nel prompt Bash.

Al contrario, quando un comando fallisce, vedrai un kaomoji tristo.

Per applicarlo, usa il seguente codice:

PS1="\`if [ \$? = 0 ]; then echo \[\e[33m\]^_^\[\e[0m\]; else echo \[\e[31m\]O_O\[\e[0m\]; fi\`[\u@\h:\w]\\$ "

Questo può sembrare confuso, ma stiamo usando istruzioni if per determinare se il comando è buono o cattivo. Da lì, usiamo qualche escape attorno al kaomoji per assicurarci che vengano visualizzati nel modo giusto.

Leggi anche: Come utilizzare Emacs come lettore USENET con Gnus

2. Cambia il colore del prompt Bash quando il terminale emette un comando errato

Cambio dei colori del prompt.

Questo prompt è probabilmente il più utile della lista. Come sopra, il prompt cambia colore se il tuo ultimo comando non è riuscito, ma abbrevia anche percorsi lunghi e contiene il numero della storia di ogni comando per un facile recupero.

PROMPT_COMMAND='PS1="\[\033[0;33m\][\!]\`if [[ \$? = "0" ]]; then echo "\\[\\033[32m\\]"; else echo "\\[\\033[31m\\]"; fi\`[\u.\h: \`if [[ `pwd|wc -c|tr -d " "` > 18 ]]; then echo "\\W"; else echo "\\w"; fi\`]\$\[\033[0m\] "; echo -ne "\033]0;`hostname -s`:`pwd`\007"'

Ancora una volta, questo può sembrare scoraggiante da implementare, ma è semplice. Usiamo di nuovo le istruzioni if, insieme a codici colore per evidenziare vari messaggi.

Puoi rendere questi colori come vuoi, anche se dovremmo esercitare qualche pensiero logico, i colori cambiati dovrebbero aiutarti piuttosto che essere cambiati solo per il gusto di fare un cambiamento.

Leggi anche: Come configurare Leafnode come server USENET offline

3. Espandi i tuoi prompt Bash su più righe

Utilizzo di un prompt Bash multilinea.

A volte potresti voler includere molte informazioni nei tuoi prompt Bash. Se questo ti descrive, questo prompt Bash potrebbe interessarti. Mostra la data, l’ora, il percorso completo della directory, il nome utente e host, il terminale attivo, e persino il conteggio dei file e l’uso dello spazio.

PS1="\n\[\033[35m\]\$(/bin/date)\n\[\033[32m\]\w\n\[\033[1;31m\]\u@\h: \[\033[1;34m\]\$(/usr/bin/tty | /bin/sed -e 's:/dev/::'): \[\033[1;36m\]\$(/bin/ls -1 | /usr/bin/wc -l | /bin/sed 's: ::g') file \[\033[1;33m\]\$(/bin/ls -lah | /bin/grep -m 1 total | /bin/sed 's/total //')b\[\033[0m\] -> \[\033[0m\]"

Qui, non abbiamo bisogno di istruzioni if, poiché il prompt stesso avrà un layout statico, ma contenuto dinamico. Potresti anche trovare difficile analizzare i diversi elementi in questo. Il nostro consiglio è di applicarlo, poi passare attraverso il prompt pezzo per pezzo. Con un po’ di riferimento incrociato, inizierai a capire come il prompt si combina.

4. Usa colori per rendere più leggibile il tuo prompt Bash

Non c’è nulla di elegante in questo prompt, oltre al buon uso del colore per separare i diversi pezzi di informazione. Come puoi vedere, fornisce l’ora, il nome utente e host e la directory corrente.

PS1="\[\033[35m\]\t\[\033[m\]-\[\033[36m\]\u\[\033[m\]@\[\033[32m\]\h:\[\033[33;1m\]\w\[\033[m\]\$ "

Questo è uno dei prompt Bash più utili ed è un’area che guarderai per prima per personalizzare il tuo prompt. Può darti una buona base per imparare come funziona un prompt personalizzato.

5. Mostra il percorso completo della directory

Proprio come usare colori, questo prompt è un prompt pulito e minimale a due righe (anche se c’è una riga vuota in cima).

Mostrare il percorso completo della directory nel prompt.

Visualizziamo il percorso completo della directory di lavoro sulla prima riga, seguito dall’utente in basso.

PS1="[\[\033[32m\]\w]\[\033[0m\]\n\[\033[1;36m\]\u\[\033[1;33m\]-> \[\033[0m\]"

Se non vuoi usare una riga vuota all’interno del prompt, puoi togliere il primo \n. Tuttavia, gioca con il layout e la formattazione, poiché ogni esperienza del terminale sarà diversa a seconda del tuo computer e delle impostazioni della riga di comando.

6. Mostra un conteggio dei lavori in background

Questo prompt a due righe visualizza informazioni che non abbiamo ancora utilizzato nei nostri prompt Bash. Forniamo un conteggio dei lavori in background attivi. Questo sarà utile se svolgi più attività contemporaneamente ma devi tenere d’occhio qualsiasi attività.

Mostrare un conteggio dei lavori in background.

La prima riga è il nome utente e host, insieme al percorso della directory di lavoro. Nella seconda riga, abbiamo il numero di storia e un conteggio dei lavori in esecuzione in background.

PS1='\[\e[1;32m\]\u@\H:\[\e[m\] \[\e[1;37m\]\w\[\e[m\]\n\[\e[1;33m\]hist:\! \[\e[0;33m\] \[\e[1;31m\]jobs:\j \$\[\e[m\] '

Non c’è molto in questo, anche se può darti alcune informazioni necessarie sull’attività del sistema. Potresti anche trasformare questo in un prompt più complesso e aggiungere istruzioni if e codifica colore per avvisarti quando un lavoro raggiunge determinati livelli.

7. Mostra informazioni sulla directory di lavoro

Mostrare informazioni sulla directory di lavoro.

Con questo mostriamo il nome utente e host, il conteggio dei lavori e la data e ora sulla riga superiore. Sotto c’è la directory corrente, insieme al numero di file della directory e alcune informazioni sull’uso del disco.

PS1="\n\[\e[30;1m\]\[\016\]l\[\017\](\[\e[34;1m\]\u@\h\[\e[30;1m\])-(\[\e[34;1m\]\j\[\e[30;1m\])-(\[\e[34;1m\]\@ \d\[\e[30;1m\])->\[\e[30;1m\]\n\[\016\]m\[\017\]-(\[\[\e[32;1m\]\w\[\e[30;1m\])-(\[\e[32;1m\]\$(/bin/ls -1 | /usr/bin/wc -l | /bin/sed 's: ::g') file, \$(/bin/ls -lah | /bin/grep -m 1 total | /bin/sed 's/total //')b\[\e[30;1m\])--> \[\e[0m\]"

Il problema più grande con tutti questi prompt è scoprire cosa sta succedendo intorno al formato e all’escape. Tuttavia, come con i prompt multilinea, dovresti affrontarli pezzo per pezzo fino a comprendere la struttura generale.

Potresti anche inserire una porzione alla volta e annotare se viene visualizzata o se ci sono errori, e lavorare fino al frammento completo.

8. Crea i tuoi prompt Bash

Un prompt Bash personalizzato.

Puoi combinare qualsiasi e tutti i precedenti per creare i tuoi prompt Bash personalizzati. Ad esempio, questa è una modifica del numero sette di questa lista, ma cambiata per occupare meno spazio e includere alcune informazioni specifiche e rilevanti.

Uno stile a due righe è sempre più compatto, poiché puoi vedere il percorso completo senza ridurre lo spazio per i comandi che usi.

PS1="\n\[\e[32;1m\](\[\e[37;1m\]\u\[\e[32;1m\])-(\[\e[37;1m\]jobs:\j\[\e[32;1m\])-(\[\e[37;1m\]\w\[\e[32;1m\])\n(\[\[\e[37;1m\]! \!\[\e[32;1m\])-> \[\e[0m\]"

Ormai, probabilmente capirai cosa fa questo prompt, ma il nostro consiglio è di provare a creare il tuo invece di incollare questo. In questo modo, puoi iniziare a imparare come diversi elementi funzionano insieme e potresti persino ideare i tuoi prompt Bash personalizzati.

Domande Frequenti

1. Perché dovrei voler utilizzare diversi prompt Bash?

Ci sono molte ragioni per questo, ma la produttività è una considerazione chiave. Se usi spesso la riga di comando, vedrai il tuo prompt ogni pochi secondi. Pertanto, se metti le informazioni più importanti in esso, puoi sempre averle a portata di mano.

In molti casi, utilizzare un prompt Bash personalizzato è più efficiente che avere un numero di finestre aperte.

2. Come posso aggiungere questi prompt Bash all’output del mio Terminale?

Per utilizzare uno di questi prompt, puoi copiare e incollare il codice nell’app del tuo Terminale. Tuttavia, questo si applicherà solo alla sessione corrente, quindi in teoria dovresti farlo ogni volta che avvii il Terminale.

Se desideri rendere il cambiamento permanente, puoi incollare i frammenti alla fine del tuo file ~/.bashrc e riavviare il tuo Terminale.

3. Questi prompt Bash funzionerebbero anche con altre shell?

In molti casi, scoprirai che c’è compatibilità incrociata con altri tipi di shell. Tuttavia, non c’è garanzia che le modifiche offrano una parità al 100%.

Se dai un’occhiata al nostro post sulla personalizzazione del Terminale Mac, questo utilizza zsh. Noterai che ci sono differenze minori ma molte somiglianze.

4. Come faccio a scoprire quali informazioni ed elementi posso aggiungere ai miei prompt Bash?

Praticamente qualsiasi elemento del tuo sistema può apparire in un prompt Bash. Vuoi approfondire le variabili Bash, poiché questo è il modo in cui “sblocchi” questi diversi elementi.

Una grande risorsa per capire cosa puoi cambiare è sul sito web Linux.com, e ti consigliamo di tenere documentazione a portata di mano durante le tue sessioni di personalizzazione.

5. Cosa succede se non voglio più usare prompt Bash personalizzati nel mio Terminale?

La risposta semplice qui è aprire il file di configurazione e cancellare le righe pertinenti. Non è necessario eseguire ulteriori comandi, anche se potrebbe valere la pena riavviare il Terminale se non vedi le modifiche che ti aspetti.

Se usi la riga di comando regolarmente o hai esigenze specifiche quando avvii un’app Terminale, personalizzare il prompt potrebbe essere una grande idea. Non richiede molte conoscenze e, in molti casi, puoi trovare il prompt di cui hai bisogno da un altro sviluppatore.