Ако прецизирате поведението на вашата Bash обвивка с shopt, можете да контролирате над 50 настройки. Ще ви покажем как да настроите вашата Linux система точно както ви харесва.
Съдържание
Магазинът Вграден
Вграденият магазин е част от всички версии на Bash черупка, така че няма нужда да инсталирате нищо. Броят на наличните опции в магазина нараства постоянно през годините. Така че, колкото по-стара версия на Bash имате, толкова по-кратък ще бъде списъкът с опции за пазаруване.
Ако изглежда, че нещо не работи на вашата машина, проверете записа на man страницата за Bash и проверете дали тази опция е налична във вашата версия на shopt.
Ние обхващаме всички опции за пазаруване по-долу. Ние също така описваме как да го използвате и споделяме някои примери. От там можете да разгледате Man страницата на Bash или Референтно ръководство за GNU Bash за да видите дали някоя от тези опции звучи полезно или привлекателно.
Някои опции за пазаруване са активирани по подразбиране и са част от поведението по подразбиране на Bash. Можете да активирате опция за пазаруване като краткосрочна промяна на Bash. След това ще се върне към поведението по подразбиране, когато затворите обвивката.
Въпреки това, ако искате модифицирано поведение да е достъпно всеки път, когато стартирате обвивка на Bash, можете да направите промените постоянни.
Опции на магазина
Има 53 опции за пазаруване. Ако използвате командата shopt без никакви опции, тя ги изброява. Ако преведем изхода през командата wc, ще стане пребройте редовете, думите и знаците за нас. Тъй като всяка опция за пазаруване е на собствен ред, броят на редовете е броят на опциите.
Пишем следното:
shopt | wc
За да видим всички опции, можем да преведем изхода чрез командата колона за показване на имената на опциите в колони, или можем да го въведем в по-малко.
Пишем следното:
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.
Опцията 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.
Опцията 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, докато не се почувствате комфортно с тях.