BASH

BASH – усовершенствованная модернизированная вариация командной оболочки

Оригинальная статья подготовлена Четом Рамей (Chet Ramey)

Bash – оболочка операционной системы, или интерпретатор команд операционной системы, которая появится в операционной системе GNU. Bash является SH-совместимая оболочкой, совмещающей некоторые полезные функции оболочки Korn (ksh) и C Shell (csh). Она сконструирована, чтобы соответствовать IEEE POSIX P1003.2/ISO 9945,2 Shell и стандартным инструментам. Она предоставляет функциональную среду sh для программирования и интерактивного использования. Кроме того, большинство sh скриптов могут быть запущены Bash без изменений. Bash вполне портативен. Он использует конфигурацию системы, которая обнаруживает характеристики платформы компиляции во время сборки, и поэтому может быть построен практически на каждой версии UNIX. Порты для UNIX-подобных системах, таких как QNX и Minix и не-UNIX систем, таких как OS/2, Windows 95/98 и Windows NT доступны. Bash включает в себя следующие возможности:

Редактирование и завершение

Bash предлагает возможность редактирования командной строки, которая позволяет пользователям редактировать командные строки с помощью знакомых Emacs или VI-стилей команды редактирования. Редактирование позволяет корректировку без необходимости стереть все вплоть до точки ошибки или запуска командной строки заново. Средства редактирования включают функцию, которая позволяет пользователям завершать команду и имена файлов.
Библиотека редактирования командной строки Bash является полностью настраиваемой. Пользователи могут определять свои собственные клавиши - Действия, выполняемые при нажатии клавиши. Также доступны различные варианты редактирования путем ручной настройки.

История и повторный ввод команды

Функция Bash «история команд» запоминает команды, вводимые на корпусе и позволяет их повторное выполнение/отзыв. Список Истории может быть неограниченного размера. Bash позволяет пользователям искать предыдущие команды и элементы повторного использования этих команд при создании новых. Список Истории может быть сохранен через оболочку сессий.
Bash позволяет пользователям контролировать, какие команды будут сохранены в списе истории.

Контроль работы

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

Функции оболочки и псевдонимы

Эти механизмы позволяют связать выбранный пользователем идентификатор со списком команд, которые будут выполняться, когда идентификатор используется в качестве имени команды. Функции оболочки позволяют локальные изменения и рекурсию, и имеют доступ к среде оболочки вызова. Другие названия могут быть использованы для создания мнемонических для имени команды, расширения одного слова до комплексной команды, или чтобы убедиться, что команда называется базовым набором возможностей.

Матрица

Версии Bash новее, чем Bash -2.0 поддерживают индексированные матрицы неограниченного размера. Индекс для матрицы - арифметическое выражение. Матрицы могут быть установлены с новым сложным синтаксисом, а также несколько компонентов обладают опциями для работы переменных матрицы. Bash включает ряд встроенных в матрицу переменных.

Вычисления

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

ANSI-C Цитирование

Bash использует новый синтаксис цитирования, который разрешает расширение избегающих бек-слеш знаков в строках согласно стандарту ANSI C.

Расширение тильды

Домашние каталоги пользователей могут быть расширены с помощью этой функции. Слова, начинающиеся с символа тильды могут быть расширены до текущего или предыдущего рабочего каталога.

Скобки

Скобок - удобный способ для создания списков строк, которые имеют общий префикс или суффикс.

Настройка возможностей

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

Непрямые расширения переменной

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

Расширенные I/O возможности

Bash имеет несколько входных и выходных функций, которые недоступны в sh., в том числе возможность:
• указать файл или дескриптор файла для входа и выхода
• чтение или запись для асинхронных процессов с использованием именованных каналов
• читать строки оканчивающиеся на обратную косую черту
• не читая отображать строки на терминале
• Форматирование меню и интерпретация ответов для меню
• линии эхо именно в качестве входных данных без обработки выхода

Контроль встроенных команд

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

Помощь

Bash имеет встроенные инструменты справки.

Факультативные особенности оболочки

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

Строка настройки

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

Безопасность

Bash предоставляет ограниченную среду оболочки. Кроме того, можно контролировать выполнение SETUID/setgid сценариев.

Хранилище директорий

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

Режим POSIX

Bash практически полностью совместим с POSIX.2. Режим POSIX изменит некоторые зоны Bash на стандартные, где по умолчанию Bash отличается от стандартного. В режиме POSIX, Bash совместим с POSIX.2.

Интернационализация

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

Услуги командной строки редактирования позволяют ввод восьми-битовых символов, поэтому поддерживаются большинство из символов семейства наборов ISO-8859.

Синхронизация команд

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