Dacă reglați fin comportamentul shell-ului dvs. Bash cu shopt, puteți controla peste 50 de setări. Vă vom arăta cum să vă adaptați sistemul Linux așa cum vă place.
Cuprins
Magazinul încorporat
Shopt încorporat face parte din toate versiunile Bash shell, deci nu este nevoie să instalați nimic. Numărul de opțiuni disponibile în shopt a crescut constant de-a lungul anilor. Deci, cu cât este mai veche versiunea de Bash pe care o aveți, cu atât va fi mai scurtă lista de opțiuni pentru magazin.
Dacă ceva nu pare să funcționeze pe mașina dvs., verificați intrarea din pagina de manual pentru Bash și verificați că opțiunea este disponibilă în versiunea dvs. de shopt.
Acoperim mai jos toate opțiunile de magazin. De asemenea, descriem cum să-l folosiți și împărtășim câteva exemple. De acolo, puteți consulta pagina de manual Bash sau Manual de referință GNU Bash pentru a vedea dacă vreuna dintre aceste opțiuni sună utilă sau atrăgătoare.
Unele opțiuni shopt sunt activate implicit și fac parte din comportamentul implicit al lui Bash. Puteți activa o opțiune shopt ca schimbare pe termen scurt a Bash. Apoi va reveni la comportamentul implicit când închideți shell-ul.
Cu toate acestea, dacă doriți ca un comportament modificat să fie disponibil de fiecare dată când lansați un shell Bash, puteți face modificările permanente.
Opțiunile magazinului
Există 53 de opțiuni de magazin. Dacă utilizați comanda shopt fără opțiuni, acestea le listează. Dacă transmitem ieșirea prin comanda wc, va fi numără rândurile, cuvintele și caracterele pentru noi. Deoarece fiecare opțiune shopt este pe propria linie, numărul de linii este numărul de opțiuni.
Introducem următoarele:
shopt | wc
Pentru a vedea toate opțiunile, putem canaliza ieșirea prin comanda coloană pentru a afișa numele opțiunilor în coloane, sau l-am putea introduce în mai puțin.
Introducem următoarele:
shopt | column
Găsiți shopt în manualul Linux
Secțiunea care discută despre shopt și opțiunile sale se află în secțiunea Bash a manualului Linux. Secțiunea Bash are peste 6.000 de linii. Puteți găsi descrierea shopt cu multă defilare sau o puteți căuta doar în manual.
Pentru a face acest lucru, deschideți manualul în secțiunea Bash:
man bash
În manual, apăsați / pentru a începe o căutare. Tastați următoarele, apoi apăsați Enter:
assoc_expand_once
Începutul secțiunii shoptoption va apărea în fereastra man.
Opțiuni de setare și dezactivare
Pentru a seta și dezactiva opțiunile shopt, utilizați următoarele comenzi:
-s: Setați sau activați.
-u: Dezactivați sau dezactivați.
Deoarece unele opțiuni sunt activate în mod implicit, este, de asemenea, util să verificați ce opțiuni sunt activate. Puteți face acest lucru cu opțiunile -s și -u fără a utiliza un nume de opțiune. Acest lucru face ca shopt să enumere opțiunile care sunt activate și dezactivate.
Introduceți următoarele:
shopt -s
shopt -u | column
Puteți utiliza o opțiune shopt fără comenzile -s sau -u pentru a vedea starea pornit sau oprit pentru fiecare opțiune.
De exemplu, putem introduce următoarele pentru a verifica setarea opțiunii histverify:
shopt histverify
Putem introduce următoarele pentru a-l activa:
shopt -s histverify
Apoi, putem introduce următoarele pentru a verifica din nou:
shopt histverify
Opțiunea histverify modifică modul în care funcționează un aspect al comenzii history. De obicei, dacă cereți istoricului să repete o comandă referindu-l după număr, cum ar fi !245, comanda este preluată din istoricul comenzilor și executată imediat.
Dacă preferați să revizuiți o comandă pentru a vă asigura că este cea pe care o așteptați și să o editați, dacă este necesar, tastați următoarele pentru a activa opțiunea shopt histverify:
!245
Comanda este preluată și prezentată pe linia de comandă. Puteți fie să îl ștergeți, să îl editați sau să îl executați apăsând Enter.
Opțiunea autocd
Cu opțiunea autocd activată, dacă tastați numele unui director pe linia de comandă și apăsați Enter, acesta va fi tratat ca și cum ați tastat cd în fața acestuia.
Introducem următoarele pentru a activa opțiunea autocd:
shopt -s autocd
Apoi, introducem numele unui director:
Documents
Opțiunea cdspell
Când opțiunea cdspell este activată, Bash va corecta automat greșelile de ortografie simple și greșelile de scriere din numele directorului.
Introducem următoarele pentru a seta opțiunea cdspell:
shopt -s cdspell
Pentru a încerca să schimbați într-un director cu litere mici, care ar trebui să aibă o literă inițială majusculă, introducem următoarele:
cd documents
Apoi, putem introduce următoarele pentru a încerca un nume de director cu un „t” suplimentar în numele său:
cd ../Picttures
Bash se modifică în fiecare director, indiferent de greșelile de ortografie.
Opțiunea xpg_echo
Când opțiunea xpg_echo este setată la pornit, comanda echo va asculta caracterele escape, cum ar fi n pentru linia nouă și t pentru fila orizontală.
Mai întâi, introducem următoarele pentru a ne asigura că opțiunea este setată:
shopt -s xpg_echo
Apoi includem n într-un șir pe care îl vom transmite la echo:
echo "This is line onenThis is line two"
Caracterul de linie nouă evadat forțează o întrerupere de linie în ieșire.
Acest lucru produce același comportament ca și -e (permite interpretarea de evadare) opțiunea echo, dar xpg_echo îi permite să fie acțiunea implicită.
Opțiunea dotglob
Opțiunea dotglob ar trebui tratată cu puțină prudență. Permite ca fișierele și directoarele care încep cu un punct (.) să fie incluse în extinderile de nume sau „globbing”. Acestea se numesc „fișiere cu puncte” sau „directoare cu puncte” și sunt de obicei ascunse. Opțiunea dotglob ignoră punctul de la începutul numelor lor.
Mai întâi, vom căuta fișiere sau directoare care se termină cu „geek” tastând următoarele:
ls *geek
Un fișier este găsit și listat. Apoi, vom activa opțiunea dotglob tastând următoarele:
shopt -s dotglob
Lansăm aceeași comandă ls pentru a căuta fișiere și directoare care se termină în „geek”:
ls *geek
De data aceasta sunt găsite și listate două fișiere, dintre care unul este un fișier punct. Trebuie să fii atent cu rm și mv când ai setat opțiunea dotglob la activat.
Opțiunea nocaseglob
Opțiunea nocaseglob este similară cu opțiunea dotglob, cu excepția faptului că nocaseglob face ca diferențele de litere mari și mici din numele fișierelor și directoare să fie ignorate în expansiunile de nume.
Introducem următoarele pentru a căuta fișiere sau directoare care încep cu „cum”:
ls how*
Un fișier este găsit și listat. Introducem următoarele pentru a activa opțiunea nocaseglob:
shopt -s nocaseglob
Apoi, repetam comanda ls:
ls how*
S-au găsit două fișiere, dintre care unul conține litere mari.
Efectuarea schimbărilor permanente
Modificările pe care le-am făcut vor dura doar până când închidem shell-ul Bash actual. Pentru a le face permanente în diferite sesiuni shell, trebuie să le adăugăm la fișierul nostru „.bashrc”.
În directorul dvs. principal, tastați următoarea comandă pentru a deschide fișierul „.bashrc” în editorul de text grafic Gedit (sau modificați-l în consecință pentru a utiliza editorul pe care îl preferați):
gedit .bashrc
Editorul gedit se va deschide cu fișierul „.bashrc” încărcat. Veți vedea că unele intrări din magazin sunt deja în el.
Puteți adăuga propriile opțiuni de magazin aici, de asemenea. După ce le-ați adăugat, salvați modificările și închideți editorul. Acum, ori de câte ori deschideți un nou shell Bash, opțiunile dvs. vor fi setate pentru dvs.
Opțiuni cât de departe poate vedea ochii
Este adevărat, comanda shopt are o mulțime de opțiuni, dar nu trebuie să le faci pe toate odată, dacă vreodată. Deoarece sunt atât de multe, probabil că există unele care nu vă vor interesa.
De exemplu, există o mulțime care îl forțează pe Bash să funcționeze în moduri care sunt compatibile cu versiuni specifice, mai vechi. Ar putea fi util pentru cineva, dar este un caz destul de de nișă.
Puteți revizui Bash-ul pagina de manual sau Manual de referință GNU Bash. Decideți ce opțiuni vor face diferența pentru dvs. și apoi experimentați cu ele. Aveți grijă doar cu opțiunile care afectează modul în care sunt extinse numele fișierelor și directoarelor. Încercați-le cu o comandă benignă, cum ar fi ls, până când vă simțiți confortabil cu ele.