Come personalizzare la shell Bash con shopt

Pubblicato: 2022-01-29
Un prompt del terminale su un laptop Linux.
Fatmawati Achmad Zaenuri/Shutterstock

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.

Annuncio pubblicitario

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 

Annuncio pubblicitario

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
Annuncio pubblicitario

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
Annuncio pubblicitario

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
Annuncio pubblicitario

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
Annuncio pubblicitario

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".

Annuncio pubblicitario

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.

L'editor gedit con .bashrc caricato e le opzioni shopt evidenziate.

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.

Annuncio pubblicitario

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.