Jak přizpůsobit Bash Shell pomocí shopt

Pokud doladíte chování svého Bash shellu pomocí shoptu, můžete ovládat přes 50 nastavení. Ukážeme vám, jak si přizpůsobit svůj systém Linux přesně tak, jak se vám líbí.

Obchod Vestavěný

Vestavěný shopt je součástí všech verzí Bash shell, takže není potřeba nic instalovat. Počet možností dostupných v shopt se v průběhu let neustále zvyšoval. Takže čím starší verzi Bash máte, tím kratší bude seznam možností nákupu.

Pokud se vám zdá, že něco na vašem počítači nefunguje, zkontrolujte položku manuálové stránky pro Bash a ověřte, zda je tato možnost dostupná ve vaší verzi shopt.

Níže pokrýváme všechny možnosti nákupu. Také popisujeme, jak jej používat, a sdílíme několik příkladů. Odtud se můžete podívat na manuálovou stránku Bash nebo Referenční příručka GNU Bash abyste zjistili, zda některá z těchto možností zní užitečně nebo přitažlivě.

Některé možnosti shopt jsou ve výchozím nastavení povoleny a tvoří součást výchozího chování Bash. Můžete povolit možnost shopt jako krátkodobou změnu Bash. Poté se po zavření shellu vrátí k výchozímu chování.

Pokud však chcete, aby bylo modifikované chování dostupné při každém spuštění prostředí Bash, můžete provést změny trvalé.

Možnosti obchodu

K dispozici je 53 nákupních možností. Pokud použijete příkaz shopt bez jakýchkoli voleb, zobrazí tyto. Pokud výstup propojíme pomocí příkazu wc, bude počítat řádky, slova a znaky pro nás. Protože každá možnost shopt je na vlastním řádku, počet řádků je počet možností.

Zadáme následující:

shopt | wc

Abychom viděli všechny možnosti, můžeme výstup propojit pomocí příkazu column pro zobrazení názvů možností ve sloupcíchnebo bychom to mohli zavést do méně.

Zadáme následující:

shopt | column

Hledání obchodu v Linux Manual

Sekce pojednávající o shoptu a jeho možnostech je v sekci Bash v příručce Linux. Sekce Bash má více než 6 000 řádků. Popis shopt najdete hodně rolováním, nebo ho můžete jednoduše vyhledat v manuálu.

Chcete-li tak učinit, otevřete příručku v sekci Bash:

man bash

V návodu spusťte vyhledávání stisknutím /. Zadejte následující a stiskněte klávesu Enter:

assoc_expand_once

Začátek sekce shoptoption se objeví v okně pro muže.

Možnosti nastavení a deaktivace

Chcete-li nastavit a zrušit nastavení možností shopt, použijte následující příkazy:

-s: Nastavit nebo povolit.
-u: Zrušte nastavení nebo zakažte.

Protože jsou některé možnosti ve výchozím nastavení povoleny, je také užitečné zkontrolovat, které možnosti jsou zapnuté. Můžete tak učinit pomocí voleb -s a -u bez použití názvu volby. To způsobí, že shopt zobrazí seznam možností, které jsou zapnuté a vypnuté.

Zadejte následující:

shopt -s

shopt -u | column

Můžete použít volbu shopt bez příkazů -s nebo -u, abyste viděli stav zapnuto nebo vypnuto pro každou volbu.

Můžeme například zadat následující a zkontrolovat nastavení možnosti histverify:

shopt histverify

Pro jeho zapnutí můžeme napsat následující:

shopt -s histverify

Poté můžeme zadat následující a zkontrolovat to znovu:

shopt histverify

Volba histverify mění způsob, jakým funguje jeden aspekt příkazu historie. Obvykle, pokud požádáte historii o opakování příkazu odkazem na něj číslem, například !245, příkaz se načte z historie příkazů a okamžitě se provede.

Pokud dáváte přednost kontrole příkazu, abyste se ujistili, že je to ten, který jste očekávali, a v případě potřeby jej upravte, zadejte následující a nastavte volbu shopt histverify na zapnuto:

!245

Příkaz se načte a zobrazí na příkazovém řádku. Můžete jej smazat, upravit nebo spustit stisknutím klávesy Enter.

Možnost autocd

Je-li volba autocd nastavena na on, pokud napíšete název adresáře na příkazový řádek a stisknete Enter, bude se s ním zacházet, jako byste před něj napsali cd.

Chcete-li zapnout možnost autocd, zadejte následující:

shopt -s autocd

Poté zadáme název adresáře:

Documents

Možnost cdspell

Když je zapnutá volba cdspell, Bash automaticky opraví jednoduché pravopisné chyby a překlepy v názvech adresářů.

Pro nastavení volby cdspell zadáme následující:

shopt -s cdspell

Chcete-li se pokusit změnit na adresář s malými písmeny, který by měl mít velké počáteční písmeno, napíšeme následující:

cd documents

Potom můžeme napsat následující a zkusit název adresáře s extra „t“ v názvu:

cd ../Picttures

Bash se změní do každého adresáře bez ohledu na pravopisné chyby.

Možnost xpg_echo

Když je volba xpg_echo nastavena na on, příkaz echo se bude řídit escapovanými znaky, jako je n pro nový řádek a t pro vodorovný tabulátor.

Nejprve zadáme následující, abychom se ujistili, že je možnost nastavena:

shopt -s xpg_echo

Potom zahrneme n do řetězce, který předáme echo:

echo "This is line onenThis is line two"

Uniklý znak nového řádku vynutí zalomení řádku ve výstupu.

To vytváří stejné chování jako -e (umožnit únikovou interpretaci) možnost echo, ale xpg_echo ji umožňuje jako výchozí akci.

Možnost dotglob

S možností dotglob by se mělo zacházet trochu opatrně. Umožňuje zahrnutí souborů a adresářů začínajících tečkou (.) do rozšíření názvů nebo „globbingu“. Říká se jim „tečkové soubory“ nebo „tečkové adresáře“ a jsou obvykle skryté. Možnost dotglob ignoruje tečku na začátku jejich jmen.

Nejprve vyhledáme soubory nebo adresáře, které končí na „geek“ zadáním následujícího:

ls *geek

Je nalezen a uveden jeden soubor. Poté zapneme možnost dotglob zadáním následujícího:

shopt -s dotglob

Vydáváme stejný příkaz ls k vyhledání souborů a adresářů končících na „geek“:

ls *geek

Tentokrát jsou nalezeny a uvedeny dva soubory, z nichž jeden je soubor s tečkou. Musíte být opatrní s rm a mv, když máte zapnutou volbu dotglob.

Možnost nocaseglob

Volba nocaseglob je podobná volbě dotglob, kromě toho, že nocaseglob způsobuje, že rozdíly ve velkých a malých písmenech v názvech souborů a adresářích budou ignorovány v rozšířeních názvů.

Chcete-li vyhledat soubory nebo adresáře, které začínají na „jak“, zadáme následující:

ls how*

Je nalezen a uveden jeden soubor. Pro zapnutí možnosti nocaseglob zadáme následující:

shopt -s nocaseglob

Poté zopakujeme příkaz ls:

ls how*

Byly nalezeny dva soubory, z nichž jeden obsahuje velká písmena.

Provádění trvalých změn

Změny, které jsme provedli, budou trvat pouze do té doby, než zavřeme aktuální prostředí Bash. Aby byly trvalé v různých relacích shellu, musíme je přidat do našeho souboru „.bashrc“.

Ve svém domovském adresáři zadejte následující příkaz pro otevření souboru „.bashrc“ v grafickém textovém editoru Gedit (nebo jej změňte podle toho, abyste používali editor, který preferujete):

gedit .bashrc

Otevře se editor gedit s načteným souborem „.bashrc“. Uvidíte, že některé položky shopt jsou již v něm.

Zde můžete také přidat své vlastní možnosti obchodu. Až je přidáte, uložte změny a zavřete editor. Nyní, kdykoli otevřete nový shell Bash, vaše možnosti budou nastaveny za vás.

Možnosti, kam až oko dohlédne

Je pravda, že příkaz shopt má spoustu možností, ale nemusíte se s nimi setkávat najednou, pokud vůbec. Protože je jich tolik, pravděpodobně se najdou i takové, které vás nebudou zajímat.

Existuje například spousta lidí, kteří nutí Bash pracovat způsoby, které jsou kompatibilní s konkrétními staršími verzemi. To by mohlo být pro někoho užitečné, ale je to poměrně úzký případ.

Můžete si prohlédnout Bash manuálová stránka nebo Referenční příručka GNU Bash. Rozhodněte se, které možnosti pro vás budou mít význam, a poté s nimi experimentujte. Buďte opatrní s možnostmi, které ovlivňují způsob, jakým se rozbalují názvy souborů a adresářů. Vyzkoušejte je s vlídným příkazem, jako je ls, dokud se s nimi nebudete cítit dobře.