Come personalizzare la shell Bash con shopt

Se ottimizzi il comportamento della tua shell Bash con shopt, puoi controllare oltre 50 impostazioni. Ti mostreremo come personalizzare il tuo sistema Linux come preferisci.

Il negozio integrato

Il negozio integrato fa parte di tutte le versioni di Bash shell, 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, più breve sarà l’elenco delle opzioni di acquisto.

Se qualcosa sembra non funzionare sulla tua macchina, controlla la voce della pagina man per Bash e verifica che l’opzione sia disponibile nella tua versione di shopt.

Copriamo 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 Manuale di riferimento di GNU Bash per vedere se una di queste opzioni sembra utile o accattivante.

Alcune opzioni di acquisto sono abilitate per impostazione predefinita e fanno parte del comportamento predefinito di Bash. Puoi abilitare un’opzione di acquisto come modifica a breve termine di Bash. Tornerà quindi al comportamento predefinito quando chiudi la shell.

Tuttavia, se desideri che un comportamento modificato sia disponibile ogni volta che avvii una shell Bash, puoi rendere permanenti le modifiche.

Le opzioni shopt

Ci sono 53 opzioni di acquisto. Se usi il comando shopt senza alcuna opzione, le elenca. Se instradiamo l’output tramite il comando wc, lo farà contare 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:

shopt | wc

shopt |  wc in una finestra di terminale.

Per vedere tutte le opzioni, possiamo reindirizzare l’output tramite il comando colonna per visualizzare i nomi delle opzioni nelle colonne, o potremmo convogliarlo in meno.

Digitiamo quanto segue:

shopt | column

shopt |  colonna in una finestra di terminale.

Trovare negozio nel Manuale di Linux

La sezione che discute di shopt e delle sue opzioni si trova nella sezione Bash del manuale di Linux. La sezione Bash è lunga oltre 6.000 righe. Puoi trovare la descrizione di shopt con molto scorrimento, oppure puoi semplicemente cercarla all’interno del manuale.

Per farlo, apri il manuale nella sezione Bash:

man bash

man bash in una finestra di terminale.

Nel manuale, premere / per avviare una ricerca. Digita quanto segue, quindi premi Invio:

assoc_expand_once

Sezione Bash del manuale, con un termine di ricerca inserito nella riga di comando in una finestra di terminale.

L’inizio della sezione shoptoption apparirà nella finestra man.

Il manuale che mostra la sezione delle opzioni shopt della pagina man di Bash in una finestra di terminale.

Opzioni di impostazione e disinserimento

Per impostare e disattivare le opzioni di acquisto, utilizzare i seguenti comandi:

-s: imposta o abilita.
-u: non impostato o disabilitato.

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 attive e disattivate.

Digita quanto segue:

shopt -s

shopt -s in una finestra di terminale.

shopt -u | column

shopt -u |  colonna in una finestra di terminale.

Puoi utilizzare un’opzione shopt senza i comandi -s o -u per vedere lo stato di attivazione o disattivazione di ciascuna opzione.

Ad esempio, possiamo digitare quanto segue per controllare l’impostazione dell’opzione histverify:

shopt histverify

Possiamo digitare quanto segue per impostarlo su:

shopt -s histverify

Quindi, possiamo digitare quanto segue per controllarlo di nuovo:

shopt histverify

Shopt histverify in una finestra di terminale.

L’opzione histverify cambia il modo in cui opera un aspetto del comando history. Di solito, se chiedi alla cronologia di ripetere un comando referenziandolo con 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 che ti aspettavi e modificarlo, se necessario, digita quanto segue per impostare l’opzione shopt histverify su on:

!245

! 245 in una finestra di terminale.

Il comando viene recuperato e presentato sulla riga di comando. Puoi eliminarlo, modificarlo o eseguirlo premendo Invio.

L’opzione autocd

Con l’opzione autocd impostata su on, se digiti il ​​nome di una directory sulla riga di comando e premi Invio, verrà trattata come se avessi digitato cd davanti ad essa.

Digitiamo quanto segue per attivare l’opzione autocd:

shopt -s autocd

Quindi, digitiamo il nome di una directory:

Documents

shopt -s autocd in una finestra di terminale.

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:

cd documents

Quindi, possiamo digitare quanto segue per provare un nome di directory con una “t” aggiuntiva nel nome:

cd ../Picttures

shopt -s cdspell in una finestra di terminale.

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 tabulazione 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 "This is line onenThis is line two"

shopt -s xpg_echo in una finestra di terminale.

Il carattere di nuova riga di escape forza un’interruzione di riga nell’output.

Questo produce lo stesso comportamento di -e (consentire l’interpretazione di fuga) echo, ma xpg_echo permette che sia l’azione predefinita.

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 punto” o “directory punto” e di solito sono nascosti. L’opzione dotglob ignora il punto all’inizio dei loro nomi.

Innanzitutto, eseguiremo una ricerca di file o directory che terminano con “geek” digitando quanto segue:

ls *geek

Viene trovato ed elencato un file. 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”:

ls *geek

ls * geek in una finestra di terminale.

Questa volta vengono trovati ed elencati due file, uno dei quali è un file punto. Devi stare attento con rm e mv quando hai l’opzione dotglob impostata su on.

L’opzione nocaseglob

L’opzione nocaseglob è simile all’opzione dotglob, eccetto che nocaseglob fa sì che le differenze nelle lettere maiuscole e minuscole nei nomi di file e nelle directory vengano ignorate nelle espansioni dei nomi.

Digitiamo quanto segue per cercare file o directory che iniziano con “come”:

ls how*

Viene trovato ed elencato un file. Digitiamo quanto segue per attivare l’opzione nocaseglob:

shopt -s nocaseglob

Quindi, ripetiamo il comando ls:

ls how*

È come * in una finestra di terminale.

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 l’attuale shell Bash. Per renderli permanenti in diverse sessioni di shell, dobbiamo aggiungerli al nostro file “.bashrc”.

Nella tua directory home, digita il seguente comando per aprire il file “.bashrc” nell’editor di testo grafico Gedit (o modificalo di conseguenza per utilizzare l’editor che preferisci):

gedit .bashrc

L’editor di gedit si aprirà con il file “.bashrc” caricato. Vedrai che alcune voci del negozio sono già presenti.

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

Puoi anche aggiungere le tue opzioni di acquisto 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. Dato che ce ne sono così tanti, probabilmente ce ne sono alcuni che non ti interesseranno.

Ad esempio, ci sono un gruppo che costringe Bash a funzionare in modi compatibili con specifiche versioni precedenti. Potrebbe essere utile per qualcuno, ma è un caso abbastanza di nicchia.

Puoi rivedere Bash pagina man o Manuale di riferimento di GNU Bash. Decidi quali opzioni faranno la differenza per te e poi sperimentale. Fai solo attenzione alle opzioni che influenzano il 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.