Як налаштувати оболонку Bash за допомогою shopt

Якщо ви точно налаштуєте поведінку вашої оболонки 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, доки вам не буде зручно з ними.