Якщо ви точно налаштуєте поведінку вашої оболонки Bash за допомогою shopt, ви зможете контролювати понад 50 параметрів. Ми покажемо вам, як налаштувати вашу систему Linux саме так, як вам подобається.
Магазин Вбудований
Вбудований магазин є частиною всіх версій Оболонка Bash, тому не потрібно нічого встановлювати. Кількість варіантів, доступних у магазині, з роками неухильно збільшується. Отже, чим старіша версія Bash у вас, тим коротшим буде список опцій для покупки.
Якщо щось не працює на вашій машині, перевірте запис сторінки керівництва для Bash і переконайтеся, що ця опція доступна у вашій версії shopt.
Нижче ми розглянемо всі варіанти магазину. Ми також опишемо, як ним користуватися, і поділимося деякими прикладами. Звідти ви можете переглянути сторінку керівництва Bash або Довідковий посібник із GNU Bash щоб побачити, чи звучить будь-який з цих варіантів корисним чи привабливим.
Деякі параметри shopt увімкнені за замовчуванням і є частиною поведінки Bash за замовчуванням. Ви можете ввімкнути опцію shopt як короткочасну зміну 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 з’явиться у вікні man.
Параметри встановлення та скасування налаштування
Щоб встановити та скасувати параметри shopt, використовуйте такі команди:
-s: встановити або ввімкнути.
-u: Скасувати або вимкнути.
Оскільки деякі параметри ввімкнено за замовчуванням, також зручно перевірити, які параметри ввімкнено. Ви можете зробити це за допомогою параметрів -s та -u, не використовуючи назву параметра. Це змушує shopt відображати ввімкнені та вимкнені параметри.
Введіть наступне:
shopt -s
shopt -u | column
Ви можете використовувати параметр shopt без команд -s або -u, щоб побачити стан увімкнення або вимкнення для кожного параметра.
Наприклад, ми можемо ввести наступне, щоб перевірити налаштування параметра histverify:
shopt histverify
Ми можемо ввести наступне, щоб увімкнути його:
shopt -s histverify
Потім ми можемо ввести наступне, щоб перевірити це знову:
shopt histverify
Параметр histverify змінює роботу одного з аспектів команди історії. Зазвичай, якщо ви попросите історію повторити команду, посилаючись на неї за номером, наприклад !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 встановлено значення on, команда echo підкорятиметься екранованим символам, наприклад n для нового рядка та t для горизонтальної вкладки.
Спочатку ми вводимо наступне, щоб переконатися, що параметр встановлено:
shopt -s xpg_echo
Потім ми включаємо n в рядок, який ми збираємося передати echo:
echo "This is line onenThis is line two"
Екранований символ нового рядка примусово розриває рядок у виводі.
Це призводить до такої ж поведінки, як і -e (увімкнути вихідну інтерпретацію) параметр echo, але 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 сторінка людини або Довідковий посібник із GNU Bash. Вирішіть, які варіанти будуть для вас корисними, а потім експериментуйте з ними. Просто будьте обережні з параметрами, які впливають на те, як розгортаються імена файлів і каталогів. Спробуйте їх за допомогою доброякісної команди, як-от ls, доки вам не буде зручно з ними.