Как да персонализирате Bash Shell с shopt

Ако прецизирате поведението на вашата Bash обвивка с shopt, можете да контролирате над 50 настройки. Ще ви покажем как да настроите вашата Linux система точно както ви харесва.

Магазинът Вграден

Вграденият магазин е част от всички версии на Bash черупка, така че няма нужда да инсталирате нищо. Броят на наличните опции в магазина нараства постоянно през годините. Така че, колкото по-стара версия на Bash имате, толкова по-кратък ще бъде списъкът с опции за пазаруване.

Ако изглежда, че нещо не работи на вашата машина, проверете записа на man страницата за Bash и проверете дали тази опция е налична във вашата версия на shopt.

Ние обхващаме всички опции за пазаруване по-долу. Ние също така описваме как да го използвате и споделяме някои примери. От там можете да разгледате Man страницата на Bash или Референтно ръководство за GNU Bash за да видите дали някоя от тези опции звучи полезно или привлекателно.

Някои опции за пазаруване са активирани по подразбиране и са част от поведението по подразбиране на Bash. Можете да активирате опция за пазаруване като краткосрочна промяна на Bash. След това ще се върне към поведението по подразбиране, когато затворите обвивката.

Въпреки това, ако искате модифицирано поведение да е достъпно всеки път, когато стартирате обвивка на Bash, можете да направите промените постоянни.

Опции на магазина

Има 53 опции за пазаруване. Ако използвате командата shopt без никакви опции, тя ги изброява. Ако преведем изхода през командата wc, ще стане пребройте редовете, думите и знаците за нас. Тъй като всяка опция за пазаруване е на собствен ред, броят на редовете е броят на опциите.

Пишем следното:

shopt | wc

За да видим всички опции, можем да преведем изхода чрез командата колона за показване на имената на опциите в колони, или можем да го въведем в по-малко.

  Преведете медицинския жаргон на прост английски с разширение за Chrome

Пишем следното:

shopt | column

Намиране на shopt в ръководството за Linux

Разделът, обсъждащ shopt и неговите опции, е в секцията Bash на ръководството за Linux. Секцията Bash е дълга над 6000 реда. Можете да намерите описанието на shopt с много превъртане или просто да го потърсите в ръководството.

За да направите това, отворете ръководството в секцията Bash:

man bash

В ръководството натиснете /, за да започнете търсене. Въведете следното и след това натиснете Enter:

assoc_expand_once

Началото на секцията shoptoption ще се появи в прозореца на човека.

Опции за настройка и отмяна

За да зададете и отмените опциите за shopt, използвайте следните команди:

-s: Задаване или активиране.
-u: Деактивирайте или деактивирайте.

Тъй като някои опции са активирани по подразбиране, също така е удобно да проверите кои опции са включени. Можете да направите това с опциите -s и -u, без да използвате име на опция. Това кара shopt да изброява опциите, които са включени и изключени.

Въведете следното:

shopt -s

shopt -u | column

Можете да използвате опция shopt без командите -s или -u, за да видите състоянието на включено или изключено за всяка опция.

Например, можем да напишем следното, за да проверим настройката на опцията histverify:

shopt histverify

Можем да напишем следното, за да го включим:

shopt -s histverify

След това можем да напишем следното, за да го проверим отново:

shopt histverify

Опцията histverify променя начина, по който работи един аспект на командата history. Обикновено, ако поискате историята да повтори команда, като я препратите по номер, като !245, командата се извлича от историята на командите и се изпълнява незабавно.

Ако предпочитате да прегледате команда, за да се уверите, че е тази, която очаквате и да я редактирате, ако е необходимо, въведете следното, за да включите опцията shopt histverify:

!245

Командата се извлича и представя на командния ред. Можете да го изтриете, редактирате или изпълните, като натиснете Enter.

  Как да отстраните неизправността на вашето обаждане в Zoom

Опцията autocd

Когато опцията autocd е включена, ако въведете името на директория в командния ред и натиснете Enter, тя ще бъде третирана така, сякаш сте въвели cd пред нея.

Пишем следното, за да включим опцията autocd:

shopt -s autocd

След това въвеждаме името на директория:

Documents

Опцията cdspell

Когато опцията cdspell е включена, Bash автоматично ще коригира прости правописни грешки и печатни грешки в имената на директории.

Пишем следното, за да зададем опцията cdspell:

shopt -s cdspell

За да се опитате да промените в директория с малки букви, която трябва да има главна начална буква, въвеждаме следното:

cd documents

След това можем да напишем следното, за да опитаме име на директория с допълнително „t“ в името:

cd ../Picttures

Bash се променя във всяка директория, независимо от правописните грешки.

Опцията xpg_echo

Когато опцията xpg_echo е включена, командата echo ще се подчинява на екранирани знаци, като n за нов ред и t за хоризонтален раздел.

Първо, въвеждаме следното, за да се уверим, че опцията е зададена:

shopt -s xpg_echo

След това включваме n в низ, който ще предадем на ехо:

echo "This is line onenThis is line two"

Екранираният символ за нов ред принуждава прекъсване на реда в изхода.

Това води до същото поведение като -e (активиране на escape интерпретация) опция за ехо, но xpg_echo позволява това да бъде действието по подразбиране.

Опцията dotglob

Опцията dotglob трябва да се третира малко предпазливо. Позволява файловете и директориите, които започват с точка (.), да бъдат включени в разширения на имена или „глобинг“. Те се наричат ​​„файлове с точки“ или „директории с точки“ и обикновено са скрити. Опцията dotglob игнорира точката в началото на имената им.

Първо, ще направим търсене на файлове или директории, които завършват на „geek“, като напишем следното:

ls *geek

Един файл е намерен и изброен. След това ще включим опцията dotglob, като напишем следното:

shopt -s dotglob

Издаваме същата команда ls, за да търсим файлове и директории, завършващи на „geek“:

ls *geek

Този път са намерени и изброени два файла, единият от които е файл с точки. Трябва да внимавате с rm и mv, когато сте включили опцията dotglob.

  Horizonate е инструмент за управление на задачи, ориентиран по дата, за малки екипи

Опцията nocaseglob

Опцията nocaseglob е подобна на опцията dotglob, с изключение на това, че nocaseglob причинява пренебрегване на разликите в главните и малките букви в имената на файлове и директории при разширенията на имената.

Пишем следното, за да търсим файлове или директории, които започват с „как“:

ls how*

Един файл е намерен и изброен. Пишем следното, за да включим опцията nocaseglob:

shopt -s nocaseglob

След това повтаряме командата ls:

ls how*

Намерени са два файла, единият от които съдържа главни букви.

Осъществяване на промените постоянни

Промените, които направихме, ще продължат само докато затворим текущата обвивка на Bash. За да ги направим постоянни в различните сесии на обвивката, трябва да ги добавим към нашия файл „.bashrc“.

Във вашата домашна директория въведете следната команда, за да отворите файла „.bashrc“ в графичния текстов редактор на Gedit (или го променете съответно, за да използвате редактора, който предпочитате):

gedit .bashrc

Редакторът на gedit ще се отвори със зареден файл “.bashrc”. Ще видите, че някои записи в магазина вече са в него.

Можете също да добавите свои собствени опции за пазаруване тук. Когато ги добавите, запазете промените и затворете редактора. Сега, когато отворите нова обвивка на Bash, вашите опции ще бъдат зададени за вас.

Опции докъдето може да види

Вярно е, че командата shopt има много опции, но не е нужно да се справяте с всички наведнъж, ако изобщо някога. Тъй като има толкова много, вероятно има някои, които няма да представляват интерес за вас.

Например, има куп, които принуждават Bash да работи по начини, които са съвместими със специфични, по-стари версии. Това може да е полезно за някого, но това е доста нишов случай.

Можете да прегледате Bash man страница или Референтно ръководство за GNU Bash. Решете кои опции ще направят разлика за вас и след това експериментирайте с тях. Просто внимавайте с опциите, които засягат начина, по който имената на файлове и директории се разширяват. Опитайте ги с добра команда, като ls, докато не се почувствате комфортно с тях.