Introduzione
In Linux, gran parte del tuo lavoro avviene da un prompt dei comandi, noto anche come shell o BASH (Bourne-Again Shell). La shell interpreta i tuoi comandi e li passa al sistema operativo per l'esecuzione.
Questo tutorial ti mostrerà come personalizzare o modificare il prompt BASH di Linux .
Prerequisiti
- Un sistema che esegue Linux
- Accesso a una riga di comando/terminale
- Un account utente con sudo o root privilegi
Prompt BASH predefinito
Il prompt BASH predefinito è quello che vedi quando apri per la prima volta un terminale o una riga di comando. Di solito assomiglia a questo:
[email protected]:~$
In alternativa, potrebbe apparire così:
(base) [[email protected] ~]$
La prima parte del prompt indica l'utente che ha effettuato l'accesso. La seconda parte identifica il nome host del sistema.
Il segno della tilde ~
indica che la directory di lavoro corrente è la directory home dell'utente corrente.
Il simbolo del dollaro $
significa che l'utente corrente è un utente standard.
Un utente root verrebbe identificato con un segno hash #
.
Personalizza il prompt di Bash in Linux
Come la maggior parte delle applicazioni Linux, BASH legge un file di configurazione per determinarne il comportamento. Questo file si trova nella home directory:
~/.bashrc
Prima di apportare modifiche, creare una copia di backup del file di configurazione. Apri una finestra di terminale e inserisci quanto segue:
cp ~/.bashrc ~/.bashrc.bak
Modifica permanentemente il prompt di Bash in Linux
Apri il file di configurazione BASH per la modifica:
sudo nano ~/.bashrc
In questo file dovresti vedere diverse impostazioni. Alcuni di essi sono righe descrittive in blu, non commentate con un #
cartello. Alcuni sono bianchi, il che indica che sono abilitati.
Scorri fino alla fine del file di configurazione. Aggiungi la seguente riga:
PS1="MyTestPrompt> "
Puoi sostituire MyTestPrompt>
con qualsiasi stringa di testo che ti piace.
Salva il file (ctrl-o
> Entra ) ed esci (ctrl-x
).
Aggiorna il servizio BASH per applicare le modifiche. Immettere quanto segue:
source ~/.bashrc
Il prompt della riga di comando dovrebbe cambiare come segue:
MyTestPrompt>
Crea una modifica temporanea al prompt BASH
Puoi modificare temporaneamente il prompt BASH utilizzando export
comando. Questo comando modifica il prompt finché l'utente non si disconnette.
Imposta il prompt BASH per visualizzare solo il nome utente immettendo quanto segue:
export PS1="\u >"
Il prompt dovrebbe cambiare immediatamente in questo modo:
username >
È possibile reimpostare il prompt disconnettendosi, quindi effettuando nuovamente l'accesso.
Opzioni personalizzate popolari per i prompt BASH
Puoi utilizzare queste opzioni in entrambi i metodi, temporaneamente con l'export
comando o in modo permanente modificando il ~/.bashrc
file.
Visualizza nome utente e nome di dominio
Usa il –H
opzione per visualizzare un nome host completo:
export PS1="\u\H "
Dovresti vedere il nome host nel prompt.
Aggiungi caratteri speciali
Puoi aggiungere caratteri speciali al prompt mettendoli in ordine attorno alle opzioni speciali:
export PS1="\[email protected]\H :"
Questo dovrebbe visualizzare quanto segue:
[email protected]:
Visualizza nome utente più nome shell e versione
Immettere quanto segue per mostrare nome utente, nome della shell e versione:
export PS1="\u >\s\v "
La richiesta dovrebbe cambiare come segue:
username >bash4.4
Aggiungi data e ora al prompt BASH
Utilizza le seguenti opzioni per visualizzare diversi formati di data e ora:
d
– Visualizza la data odierna in [giorno della settimana]/[mese]/[giorno]
export PS1="\[email protected]\H>\d "
t
– Visualizza l'ora corrente nella notazione a 24 ore
export PS1="\[email protected]\H>\t "
T
– Visualizza l'ora corrente nella notazione di 12 ore
export PS1="\[email protected]\H>\T "
A
– Visualizza l'ora corrente nella notazione di 24 ore, con solo ore e minuti
export PS1="\[email protected]\H>\A "
Nascondi tutte le informazioni nel prompt BASH
Usalo per impedire la visualizzazione di nomi utente o hostname al prompt:
export PS1="\W > "
Dovresti vedere quanto segue:
~ >
Differenzia l'utente root dall'utente normale
Il normale prompt BASH mostra un $
firmare per un utente normale. Se accedi come utente root, un #
viene visualizzato il segno. Usa il $
codice per indicare che l'utente corrente non è un utente root:
export PS1="\[email protected]\H \W:\$ "
Altre opzioni di prompt BASH
Di seguito è riportato un elenco della maggior parte delle opzioni che puoi utilizzare per il prompt BASH.
Alcuni di questi comandi potrebbero non funzionare su tutte le versioni di Linux.
\a
– Un carattere campana- \
d
– Data (giorno/mese/data) \D{format}
– Usalo per chiamare il sistema per rispondere con l'ora corrente\e
– Carattere di escape\h
– Nome host (abbreviato)\H
– Nome host completo (nome di dominio)\j
– Numero di lavori gestiti dalla shell\l
– Il nome di base del dispositivo terminale shell\n
– Nuova linea\r
– Ritorno in trasporto\s
– Il nome della shell\t
– Ora (ora:minuti:secondi)\@
– Ora, 12 ore AM/PM\A
– Ora, 24 ore, senza secondi\u
– Nome utente attuale\v
– Versione BASH\V
– Ulteriori informazioni sulla versione BASH\w
– Directory di lavoro corrente ($HOME è rappresentato da ~)\W
– Il nome di base della directory di lavoro ($HOME è rappresentato da ~)\!
– Elenca il numero di questo comando nella cronologia\#
– Il numero del comando di questo comando- \
$
– Specifica se l'utente è root (#) o meno ($) - \\ – Barra rovesciata
\[
– Avvia una sequenza di caratteri non visualizzati (utile se vuoi aggiungere un comando o un set di istruzioni al prompt)\]
– Chiudere o terminare una sequenza di caratteri non visualizzati
Come cambiare il colore del prompt BASH
Puoi cambiare il colore del testo del tuo prompt BASH. Ad esempio, per modificare temporaneamente il testo del prompt BASH in verde, immettere quanto segue:
export PS1="\e[0;32m[\[email protected]\h \W]\$ \e[0m"
Il tuo prompt dovrebbe avere lo stesso testo del normale ma essere di colore verde.
Ecco una ripartizione dei comandi:
• \e[
– Inizia i cambi di colore
• 0;32m
– Specificare il codice colore
• [\[email protected]\h \W]\$
– Questo è il codice per il tuo normale prompt BASH ([email protected] Workingdirectory $
)
• \e[0m
– Esci dalla modalità di cambio colore
Il primo numero nel codice colore specifica il carattere tipografico:
• 0
– Normale
• 1
– Grassetto (luminoso)
• 2
– Diminutivo
• 4
– Sottolineato
Il secondo numero indica il colore che desideri:
• 30
- Nero
• 31
- Rosso
• 32
- Verde
• 33
- Marrone
• 34
- Blu
• 35
- Viola
• 36
– Ciano
• 37
– Grigio chiaro
Inoltre, se combini l'opzione brillante con un codice colore, otterrai una versione più chiara di quel colore. Ad esempio, se utilizzi il codice colore 1;32
, otterresti un verde chiaro invece del verde normale. Se utilizzi 1;33
, diventi giallo anziché marrone.
Come ripristinare le modifiche BASH alle impostazioni predefinite
Esistono due modi per ripristinare le modifiche. Per modifiche temporanee (usando l'export PS1=""
comando), è possibile ripristinare l'impostazione predefinita effettuando il logout.
Se hai modificato il \.bashrc
file per apportare modifiche permanenti, esistono due metodi per ripristinare le impostazioni predefinite:
- Esegui il rendering delle modifiche come commenti modificando il file e aggiungendo un
#
prima di ogni modifica effettuata. - Ripristina le impostazioni predefinite dal backup immettendo:
sudo cp ~/.bashrc.bak ~/.bashrc
Comprendere diverse parti del prompt BASH
Prima di continuare, ripristina il prompt BASH ai valori predefiniti. Se hai utilizzato l'export
comando, esci e riconnettiti. Se hai modificato il tuo ~/.bashrc
file, inserisci un #
firma prima di ogni modifica effettuata e salva il file.
Il prompt BASH contiene quattro diversi valori:PS1, PS2, PS3 e PS4 .
Il PS sta per Dichiarazione immediata . Finora abbiamo lavorato con il valore PS1. Per vedere il valore PS1 corrente, inserisci quanto segue:
echo $PS1
A seconda del sistema, il terminale restituisce qualcosa del genere per le impostazioni predefinite:
Potresti riconoscere il \[email protected]\h
opzioni come nome utente e host . Il w
l'opzione mostra la directory di lavoro corrente.
Ora, mostra il valore PS2:
echo $PS2
Il sistema dovrebbe visualizzare solo una parentesi angolare:
>
La ripetizione dello stesso comando per PS3 dovrebbe essere vuota.
Per PS4 vedrai un +
firmare.
Ecco i diversi significati per le diverse parti del prompt BASH:
- PS1 – Questa è la visualizzazione del prompt principale. Qui puoi impostare caratteri speciali o informazioni importanti.
- PS2 – Questa è la stringa di richiesta secondaria. Di solito viene impostato come divisore tra la visualizzazione del prompt e l'immissione di testo. Viene anche utilizzato per visualizzare quando un comando lungo è suddiviso in sezioni con \ firmare.
- PS3 – Questa è la richiesta di
select
comando. - PS4 – Questo è il prompt per eseguire uno script di shell in modalità debug.
Nella maggior parte dei casi, lavorerai solo con la PS1 opzione e forse la PS2 opzione pure.