Come personalizzare la shell Bash con shopt
Pubblicato: 2022-01-29
Se metti a punto il comportamento della tua shell Bash con shopt
, puoi controllare oltre 50 impostazioni. Ti mostreremo come personalizzare il tuo sistema Linux proprio come piace a te.
Il negozio integrato
Il built-in shopt
fa parte di tutte le versioni della shell Bash, quindi non è necessario installare nulla. Il numero di opzioni disponibili in shopt
è aumentato costantemente nel corso degli anni. Quindi, più vecchia è la versione di Bash che hai, più breve sarà l'elenco delle opzioni shopt
.
Se qualcosa sembra non funzionare sulla tua macchina, controlla la voce della pagina man
relativa a Bash e verifica che l'opzione sia disponibile nella tua versione di shopt
.
shopt
tutte le opzioni di acquisto di seguito. Descriviamo anche come usarlo e condividiamo alcuni esempi. Da lì, puoi controllare la pagina man di Bash o il Manuale di riferimento di GNU Bash per vedere se qualcuna di queste opzioni suona utile o interessante.
Alcune opzioni di shopt
sono abilitate per impostazione predefinita e fanno parte del comportamento predefinito di Bash. Puoi abilitare un'opzione shopt
come modifica a breve termine a Bash. Verrà quindi ripristinato il comportamento predefinito quando si chiude la shell.
Tuttavia, se desideri che un comportamento modificato sia disponibile ogni volta che avvii una shell Bash, puoi rendere le modifiche permanenti.
Le opzioni del negozio
Ci sono 53 opzioni shopt
. Se usi il comando shopt
senza alcuna opzione, le elenca. Se conduciamo l'output tramite il comando wc
, conterà le righe, le parole e i caratteri per noi. Poiché ogni opzione shopt
è su una propria riga, il numero di righe è il numero di opzioni.
Digitiamo quanto segue:
negozio | WC
Per vedere tutte le opzioni, possiamo reindirizzare l'output tramite il comando column
per visualizzare i nomi delle opzioni nelle colonne, oppure potremmo inviarlo in less
.
Digitiamo quanto segue:
negozio | colonna
Trovare shopt nel manuale di Linux
La sezione che parla di shopt
e delle sue opzioni si trova nella sezione Bash del manuale di Linux. La sezione Bash è lunga oltre 6.000 linee. Puoi trovare la descrizione di shopt
scorrendo molto, oppure puoi semplicemente cercarla all'interno del manuale.
Per farlo, apri il manuale nella sezione Bash:
uomo babbeo
Nel manuale, premere /
per avviare una ricerca. Digitare quanto segue, quindi premere Invio:
assoc_expand_once
L'inizio della sezione dell'opzione shopt
apparirà nella finestra man
.
CORRELATO: Come utilizzare il comando man di Linux: Segreti nascosti e nozioni di base
Opzioni di impostazione e disinserimento
Per impostare e shopt
le opzioni del negozio, utilizzare i seguenti comandi:
- -s : Imposta o abilita.
- -u : Disattiva o disattiva.
Poiché alcune opzioni sono abilitate per impostazione predefinita, è anche utile controllare quali opzioni sono attive. Puoi farlo con le opzioni -s
e -u
senza usare un nome di opzione. Questo fa sì che shopt
elenchi le opzioni che sono attivate e disattivate.
Digita quanto segue:
negozio -s
shopt -u | colonna
Puoi usare un'opzione shopt
senza i comandi -s
o -u
per vedere lo stato di attivazione o disattivazione per ciascuna opzione.
Ad esempio, possiamo digitare quanto segue per verificare l'impostazione dell'opzione histverify
:
shopping histverify
Possiamo digitare quanto segue per impostarlo su:
shopt -s histverify
Quindi, possiamo digitare quanto segue per ricontrollarlo:
shopping histverify
L'opzione histverify
cambia il modo in cui opera un aspetto del comando history
. Di solito, se chiedi alla history
di ripetere un comando facendo riferimento ad esso tramite un numero, come !245
, il comando viene recuperato dalla cronologia dei comandi ed eseguito immediatamente.
Se preferisci rivedere un comando per assicurarti che sia quello previsto e modificarlo, se necessario, digita quanto segue per attivare l'opzione shopt histverify
:
!245
Il comando viene recuperato e presentato sulla riga di comando. Puoi eliminarlo, modificarlo o eseguirlo premendo Invio.
CORRELATI: Come utilizzare il comando cronologia su Linux
L'opzione autocd
Con l'opzione autocd
, se digiti il nome di una directory sulla riga di comando e premi Invio, verrà trattato come se avessi digitato cd
davanti ad esso.

Digitiamo quanto segue per attivare l'opzione autocd
:
shopt -s autocd
Quindi, digitiamo il nome di una directory:
Documenti
L'opzione cdspell
Quando l'opzione cdspell
è attivata, Bash correggerà automaticamente semplici errori di ortografia e refusi nei nomi delle directory.
Digitiamo quanto segue per impostare l'opzione cdspell
:
shopt -s cdspell
Per provare a cambiare in una directory in minuscolo che dovrebbe avere una lettera iniziale maiuscola, digitiamo quanto segue:
documenti cd
Quindi, possiamo digitare quanto segue per provare un nome di directory con una "t" in più nel nome:
cd ../Immagini
Bash cambia in ogni directory, indipendentemente dagli errori di ortografia.
L'opzione xpg_echo
Quando l'opzione xpg_echo
è attivata, il comando echo obbedirà ai caratteri di escape, come \n
per la nuova riga e \t
per la scheda orizzontale.
Innanzitutto, digitiamo quanto segue per assicurarci che l'opzione sia impostata:
shopt -s xpg_echo
Quindi includiamo \n
in una stringa che passeremo a echo
:
echo "Questa è la prima riga\nQuesta è la seconda"
Il carattere di nuova riga con escape forza un'interruzione di riga nell'output.
Questo produce lo stesso comportamento dell'opzione echo
-e
(abilita l'interpretazione di escape), ma xpg_echo
consente che sia l'azione predefinita.
CORRELATI: Come utilizzare il comando Echo su Linux
L'opzione dotglob
L'opzione dotglob
dovrebbe essere trattata con un po' di cautela. Consente di includere file e directory che iniziano con un punto ( .
) nelle espansioni dei nomi o "globbing". Questi sono chiamati "file dot" o "directory dot" e di solito sono nascosti. L'opzione dotglob
ignora il punto all'inizio dei loro nomi.
Innanzitutto, faremo una ricerca di file o directory che terminano con "geek" digitando quanto segue:
è *geek
Un file viene trovato ed elencato. Quindi, attiveremo l'opzione dotglob
digitando quanto segue:
shopt -s dotglob
Emettiamo lo stesso comando ls
per cercare file e directory che terminano con "geek":
è *geek
Questa volta vengono trovati ed elencati due file, uno dei quali è un file punto. Devi stare attento con rm
e mv
quando hai attivato l'opzione dotglob
.
L'opzione nocaseglob
L'opzione nocaseglob
è simile all'opzione dotglob
, tranne per il fatto che nocaseglob
fa sì che le differenze nelle lettere maiuscole e minuscole nei nomi dei file e nelle directory vengano ignorate nelle espansioni dei nomi.
Digitiamo quanto segue per cercare file o directory che iniziano con "come":
è come*
Un file viene trovato ed elencato. Digitiamo quanto segue per attivare l'opzione nocaseglob
:
shopt -s nocaseglob
Quindi, ripetiamo il comando ls
:
è come*
Vengono trovati due file, uno dei quali contiene lettere maiuscole.
Apportare modifiche permanenti
Le modifiche che abbiamo apportato dureranno solo fino a quando non chiuderemo la shell Bash corrente. Per renderli permanenti in diverse sessioni di shell, dobbiamo aggiungerli al nostro file ".bashrc".
Nella tua home directory, digita il seguente comando per aprire il file ".bashrc" nell'editor di testo grafico di Gedit (o modificalo di conseguenza per utilizzare l'editor che preferisci):
gedit .bashrc
L'editor gedit
si aprirà con il file ".bashrc" caricato. Vedrai che alcune voci di shopt
sono già presenti.
Puoi anche aggiungere le tue opzioni di shopt
qui. Dopo averli aggiunti, salva le modifiche e chiudi l'editor. Ora, ogni volta che apri una nuova shell Bash, le tue opzioni saranno impostate per te.
Opzioni a perdita d'occhio
È vero che il comando shopt
ha molte opzioni, ma non devi affrontarle tutte in una volta, se mai. Dal momento che ce ne sono così tanti, è probabile che ce ne siano alcuni che non ti interesseranno.
Ad esempio, ce ne sono molti che costringono Bash a operare in modi compatibili con versioni precedenti e specifiche. Potrebbe essere utile per qualcuno, ma è un caso abbastanza di nicchia.
Puoi rivedere la pagina man di Bash o il Manuale di riferimento di GNU Bash. Decidi quali opzioni faranno la differenza per te e poi sperimentale. Fai solo attenzione con le opzioni che influiscono sul modo in cui i nomi di file e directory vengono espansi. Provali con un comando benigno, come ls
, finché non ti senti a tuo agio con loro.