Якщо ви прагнете до тонкого налаштування поведінки вашої командної оболонки Bash, інструмент shopt
відкриває перед вами понад пів сотні різноманітних параметрів. За допомогою цих налаштувань ви зможете адаптувати систему Linux під свої індивідуальні потреби та вподобання.
Інструмент shopt
shopt
є вбудованою частиною оболонки Bash, тому вам не потрібно встановлювати додаткове програмне забезпечення. З кожним роком кількість опцій, доступних у shopt
, зростає. Це означає, що у старіших версіях Bash ви знайдете коротший перелік доступних налаштувань.
Якщо ви зіткнулися з непрацюючою опцією, перевірте сторінку посібника Bash, щоб переконатися, що вона підтримується у вашій версії shopt
.
Далі ми розглянемо всі можливі варіанти shopt
, а також надамо інструкції з їх використання та приклади. Зверніться до посібника Bash або до Довідника GNU Bash, щоб дізнатися більше про корисні для вас параметри.
Деякі параметри shopt
активовані за замовчуванням, визначаючи стандартну поведінку Bash. Ви можете тимчасово ввімкнути або вимкнути будь-яку опцію, але після закриття сеансу оболонки, зміни будуть скасовані.
Якщо ви хочете, щоб модифікована поведінка застосовувалася кожного разу, коли ви запускаєте Bash, вам потрібно зробити зміни постійними.
Доступні параметри shopt
Наразі існує 53 опції shopt
. Якщо ви запустите shopt
без будь-яких аргументів, вона відобразить їх усі. Перенаправляючи вивід через команду wc
, ми можемо підрахувати рядки, слова та символи. Оскільки кожна опція займає окремий рядок, кількість рядків буде дорівнювати кількості доступних параметрів.
Введіть наступну команду:
shopt | wc
Щоб побачити всі параметри в зручнішому форматі, ви можете перенаправити вивід shopt
через column
, для відображення їх у стовпцях, або використати команду less
для перегляду.
Введіть наступну команду:
shopt | column
Пошук опцій shopt
у посібнику Linux
Інформація про shopt
і його параметри знаходиться в розділі Bash посібника Linux. Розділ Bash досить великий, має понад 6000 рядків. Щоб знайти опис shopt
, ви можете скористатися прокруткою або пошуком.
Щоб відкрити посібник Bash, введіть:
man bash
У посібнику натисніть /
для початку пошуку. Введіть запит, наприклад, assoc_expand_once
, і натисніть Enter.
assoc_expand_once
Ви побачите початок опису параметрів shopt
.
Встановлення та вимкнення параметрів
Щоб встановити або вимкнути параметри shopt
, використовуйте наступні команди:
-s
: встановити (ввімкнути).
-u
: скасувати (вимкнути).
Оскільки деякі параметри увімкнені за замовчуванням, зручно перевірити їхній поточний стан. Ви можете зробити це, використовуючи опції -s
та -u
без вказання назви параметра. shopt
відобразить усі ввімкнені або вимкнені опції.
Введіть наступні команди:
shopt -s
shopt -u | column
Використовуючи shopt
без -s
або -u
, ви можете переглянути статус конкретного параметра.
Наприклад, для перевірки налаштування параметра histverify
, введіть:
shopt histverify
Щоб ввімкнути його, введіть:
shopt -s histverify
Потім знову перевірте статус:
shopt histverify
Параметр histverify
змінює поведінку команди історії. Зазвичай, коли ви викликаєте команду з історії за її номером, наприклад, !245
, команда негайно виконується.
Якщо ви хочете переглянути команду перед виконанням або відредагувати її, увімкніть параметр histverify
. Введіть команду, наприклад:
!245
Команда буде виведена на екран. Ви можете її видалити, відредагувати або виконати, натиснувши Enter.
Параметр autocd
Коли параметр autocd
активний, якщо ви введете ім’я каталогу в командному рядку і натиснете Enter, Bash буде сприймати це як команду cd
.
Щоб увімкнути autocd
, введіть:
shopt -s autocd
Потім введіть назву каталогу:
Documents
Параметр cdspell
Коли cdspell
увімкнено, Bash автоматично виправляє прості друкарські помилки в іменах каталогів під час використання команди cd
.
Щоб встановити параметр cdspell
, введіть:
shopt -s cdspell
Щоб спробувати перейти в каталог, який містить велику літеру, але ви введете його з маленької, введіть:
cd documents
Потім спробуйте назву каталогу з додатковою літерою:
cd ../Picttures
Bash перейде до відповідних каталогів, незалежно від допущених помилок.
Параметр xpg_echo
Якщо для параметра xpg_echo
встановлено значення on, команда echo
буде інтерпретувати екрановані символи, наприклад, \n
для нового рядка та \t
для табуляції.
Спочатку перевірте, чи параметр встановлено, ввівши:
shopt -s xpg_echo
Потім введіть команду echo
з символом \n
:
echo "This is line onenThis is line two"
Символ нового рядка розірвав рядок у виводі.
Це схоже на використання опції -e
(увімкнути інтерпретацію екранованих символів) у команді echo
, але xpg_echo
робить це поведінкою за замовчуванням.
Параметр dotglob
З опцією dotglob
слід бути обережним. Вона дозволяє включати файли та каталоги, назви яких починаються з крапки (.
), під час розширення імен файлів. Зазвичай, ці файли та каталоги приховані. Параметр dotglob
ігнорує крапку на початку їхніх назв.
Спершу виконаємо пошук файлів та каталогів, що закінчуються на “geek”:
ls *geek
Буде знайдено один файл. Тепер активуємо dotglob
:
shopt -s dotglob
І знову виконуємо пошук:
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
. Ви побачите там існуючі записи shopt
.
Додайте свої налаштування shopt
, збережіть зміни та закрийте редактор. Тепер, відкриваючи новий сеанс Bash, ваші налаштування будуть застосовані.
Велика кількість можливостей
Хоча команда shopt
має багато опцій, не потрібно намагатися вивчити їх усі. Деякі з них можуть виявитися для вас непотрібними.
Наприклад, деякі параметри призначені для забезпечення сумісності з конкретними старими версіями Bash. Це може бути корисно лише в дуже специфічних випадках.
Перегляньте сторінку посібника Bash або Довідник GNU Bash. Визначте, які параметри для вас корисні, і експериментуйте з ними. Будьте обережні з параметрами, що впливають на розширення імен файлів та каталогів. Спробуйте їх із безпечними командами, такими як ls
, доки не будете впевнені у їхній дії.