Как настроить оболочку Bash с помощью shopt

Опубликовано: 2022-01-29
Терминальная подсказка на ноутбуке с Linux.
Фатмавати Ахмад Заэнури/Shutterstock

Если вы точно настроите поведение вашей оболочки Bash с помощью shopt , вы сможете управлять более чем 50 настройками. Мы покажем вам, как настроить вашу систему Linux именно так, как вам нравится.

Магазин Встроенный

shopt является частью всех версий оболочки Bash, поэтому ничего устанавливать не нужно. Количество вариантов, доступных в shopt , неуклонно росло с годами. Таким образом, чем старее версия Bash у вас есть, тем короче будет список shopt .

Если вам кажется, что что-то не работает на вашем компьютере, проверьте запись на man странице для Bash и убедитесь, что эта опция доступна в вашей версии shopt .

Мы рассмотрим все варианты shopt ниже. Мы также опишем, как его использовать, и поделимся некоторыми примерами. Оттуда вы можете проверить справочную страницу Bash или справочное руководство GNU Bash, чтобы увидеть, кажутся ли какие-либо из этих опций полезными или привлекательными.

shopt параметры магазина включены по умолчанию и являются частью поведения Bash по умолчанию. Вы можете включить опцию shopt в качестве краткосрочного изменения в Bash. Затем он вернется к поведению по умолчанию, когда вы закроете оболочку.

Реклама

Однако, если вы хотите, чтобы измененное поведение было доступно при каждом запуске оболочки Bash, вы можете сделать изменения постоянными.

Варианты магазина

Есть 53 варианта shopt . Если вы используете команду shopt без каких-либо параметров, она перечисляет их. Если мы направим вывод через команду wc , она подсчитает для нас строки, слова и символы. Поскольку каждая опция shopt находится на отдельной строке, количество строк равно количеству опций.

Набираем следующее:

 магазин | Туалет 

Чтобы увидеть все параметры, мы можем направить вывод через команду column , чтобы отобразить имена параметров в столбцах, или мы можем направить его в less .

Набираем следующее:

 магазин | столбец 

Поиск shopt в руководстве по Linux

Раздел, посвященный shopt и его параметрам, находится в разделе Bash руководства по Linux. Раздел Bash содержит более 6000 строк. Вы можете найти описание shopt с большим количеством прокрутки, или вы можете просто найти его в руководстве.

Для этого откройте руководство в разделе Bash:

 человек 

Реклама

В руководстве нажмите / , чтобы начать поиск. Введите следующее и нажмите Enter:

 assoc_expand_once 

Начало shopt опций магазина появится в man окне.

СВЯЗАННЫЕ С: Как использовать команду Linux man: скрытые секреты и основы

Установка и снятие параметров

Чтобы установить и shopt параметры магазина, используйте следующие команды:

  • -s : установить или включить.
  • -u : отменить или отключить.

Поскольку некоторые параметры включены по умолчанию, также удобно проверить, какие параметры включены. Вы можете сделать это с помощью параметров -s и -u без использования имени параметра. Это заставляет shopt перечислять включенные и выключенные опции.

Введите следующее:

 шопт -с 

 шопт -у | столбец 

Вы можете использовать опцию shopt без команд -s или -u , чтобы увидеть включенное или выключенное состояние для каждой опции.

Например, мы можем ввести следующее, чтобы проверить настройку опции histverify :

 магазин

Мы можем ввести следующее, чтобы включить его:

 shopt -s его проверка
Реклама

Затем мы можем ввести следующее, чтобы проверить это снова:

 магазин 

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

Если вы предпочитаете просмотреть команду, чтобы убедиться, что это именно та команда, которую вы ожидали, и при необходимости отредактировать ее, введите следующее, чтобы включить опцию shopt histverify :

 !245 

Команда извлекается и представляется в командной строке. Вы можете удалить, отредактировать или выполнить его, нажав Enter.

СВЯЗАННЫЕ С: Как использовать команду history в Linux

Опция autocd

При включенной опции autocd , если вы введете имя каталога в командной строке и нажмете Enter, оно будет обработано так, как если бы вы набрали перед ним cd .

Мы вводим следующее, чтобы включить опцию autocd :

 shopt -s autocd

Затем мы вводим имя каталога:

 Документы 

Вариант cdspell

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

Мы вводим следующее, чтобы установить параметр cdspell :

 shopt -s cdspell
Реклама

Чтобы попытаться перейти в каталог в нижнем регистре, который должен иметь начальную букву в верхнем регистре, мы набираем следующее:

 компакт-диск документы

Затем мы можем ввести следующее, чтобы попробовать имя каталога с дополнительной буквой «t» в его имени:

 cd ../Картинки 

Bash переходит в каждый каталог, независимо от орфографических ошибок.

Параметр xpg_echo

Когда опция xpg_echo включена, команда echo будет подчиняться экранированным символам, таким как \n для новой строки и \t для горизонтальной табуляции.

Сначала мы вводим следующее, чтобы убедиться, что опция установлена:

 магазин -s xpg_echo
Реклама

Затем мы включаем \n в строку, которую собираемся передать в echo :

 echo "Это первая строка\nЭто вторая строка" 

Экранированный символ новой строки приводит к разрыву строки в выводе.

Это приводит к тому же поведению, что и опция echo -e (включить escape-интерпретацию), но xpg_echo позволяет использовать ее как действие по умолчанию.

СВЯЗАННЫЕ С: Как использовать команду Echo в Linux

Вариант dotglob

К опции dotglob следует относиться с некоторой осторожностью. Он позволяет включать файлы и каталоги, начинающиеся с точки ( . ), в расширение имен или «подстановку». Они называются «точечные файлы» или «точечные каталоги» и обычно скрыты. Параметр dotglob игнорирует точку в начале их имен.

Во-первых, мы выполним поиск файлов или каталогов, оканчивающихся на «выродок», введя следующее:

 лс * выродок

Один файл найден и указан. Затем мы включим опцию dotglob , введя следующее:

 shopt -s многоточие
Реклама

Мы запускаем ту же команду ls для поиска файлов и каталогов, оканчивающихся на «geek»:

 лс * выродок 

На этот раз найдены и перечислены два файла, один из которых является точечным. Вы должны быть осторожны с rm и mv , когда у вас включена опция dotglob .

Вариант nocaseglob

Параметр nocaseglob аналогичен параметру dotglob , за исключением того, что nocaseglob вызывает игнорирование различий в прописных и строчных буквах в именах файлов и каталогов при расширении имен.

Мы вводим следующее, чтобы искать файлы или каталоги, которые начинаются с «как»:

 Как это*

Один файл найден и указан. Мы вводим следующее, чтобы включить опцию nocaseglob :

 shopt -s nocaseglob

Затем мы повторяем команду ls :

 Как это* 

Найдены два файла, один из которых содержит заглавные буквы.

Сделать изменения постоянными

Внесенные нами изменения будут действовать только до тех пор, пока мы не закроем текущую оболочку Bash. Чтобы сделать их постоянными в разных сеансах оболочки, нам нужно добавить их в наш файл «.bashrc».

Реклама

В своем домашнем каталоге введите следующую команду, чтобы открыть файл «.bashrc» в графическом текстовом редакторе Gedit (или измените его соответствующим образом, чтобы использовать редактор, который вы предпочитаете):

 gedit .bashrc

Редактор gedit откроется с загруженным файлом «.bashrc». Вы увидите, что некоторые записи shopt уже есть в нем.

Редактор gedit с загруженным в него .bashrc и выделенными параметрами shopt.

Здесь вы также можете добавить свои собственные параметры shopt . Когда вы их добавили, сохраните изменения и закройте редактор. Теперь всякий раз, когда вы открываете новую оболочку Bash, ваши параметры будут установлены за вас.

Варианты, насколько может видеть глаз

Это правда, что у команды shopt есть много опций, но вам не нужно разбираться со всеми ими сразу, если вообще когда-либо. Поскольку их так много, вероятно, некоторые из них не будут вам интересны.

Например, есть множество программ, которые заставляют Bash работать так, чтобы они были совместимы с конкретными старыми версиями. Это может быть полезно для кого-то, но это довольно нишевый случай.

Реклама

Вы можете просмотреть справочную страницу Bash или Справочное руководство GNU Bash. Решите, какие варианты будут иметь значение для вас, а затем поэкспериментируйте с ними. Просто будьте осторожны с параметрами, влияющими на способ раскрытия имен файлов и каталогов. Попробуйте их с помощью мягкой команды, например ls , пока вы не освоитесь с ними.