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

5 февраля 2021 |

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

A terminal prompt on a Linux laptop. Fatmawati Achmad Zaenuri / Shutterstock

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

Встроенный модуль shopt

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

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

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

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

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

Магазин Опции

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

Мы вводим следующее:

shopt | wc

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

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

shopt | column

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

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

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

man bash

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

assoc_expand_once

Начало раздела shoptoption появится в окне man.

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

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

  • -s: Установить или включить.
  • — u: Отключить или отключить.

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

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

shopt -s

shopt -u | столбец

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

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

shopt histverify

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

shopt -s histverify

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

shopt histverify

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

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

! 245

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

Параметр autocd

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

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

shopt -s autocd

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

Documents

Параметр cdspell

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

Для установки параметра cdspell мы вводим следующее:

shopt -s cdspell

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

cd documents

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

cd ../Picttures

Баш изменяется в каждом каталоге, независимо от орфографических ошибок.

Опция xpg_echo

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

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

shopt -s xpg_echo

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

echo «Это первая строка Это вторая строка»

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

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

Параметр dotglob

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

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

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». Вы увидите, что некоторые записи о покупках уже есть в нем.

The gedit editor with .bashrc loaded in it, and shopt options highlighted.

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

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

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

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

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

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


Напишите пару строк: