Bash: обзор возможностей

Название оболочки bash расшифровывается как “еще одна оболочка Борна”, “заново рожденный шелл” и тому подобным образом. Она происходит от первого шелла первозданного Unix’а, разработанного Борном (которая именовалась просто shell или sh), но снабжена многими дополнительными возможностями.

Оболочка bash оказалась тесно интегрирована с операционной системой Linux: именно она волею судеб стал одной из первых программ, которые Линус запустил поверх своего новосозданного ядра. И потому идеи bash-скриптинга пронизали Linux до самых его оснований.

Однако роль bash не исчерпывается скриптингом — в первую очередь это среда для выполнения пользовательских команд. Различаются встроенные команды оболочки и команды внешние.

Bash поддерживает множество встроенных команд (built-ins) -- около 70, с полным их списком можно ознакомиться на странице man builtins. Встроенные команды выполняются в рамках того же процесса, что и сама оболочка, и потому работают быстро и требуют мало ресурсов (хотя на современных мащинах этого практически не заметно).

В качестве внешних команд могут выступать любые исполняемые бинарные файлы или сценарии оболочки. Однако обычно под термином внешние команды понимаются консольные утилиты, системные и пользовательские, входящие в так называемый набор Base Linbux (подробнее о них написано здесь). Их количество вообще огромно -- в свежеустановленной Linux-системе без графической оболочки более 700.

Интерфейс bash предоставляет широкие возможности для навигации по командной строке и её редактирования, как это было описано в предыдущем разделе. Эти функции обеспечиваются отдельным пакетом -- библиотекой readline, которая практически всегда устанавливается по умолчанию при первичной инсталляции вместе с самой оболочкой (по крайней мере, в Fedora это именно так).

Оболочка bash поддерживает все описанные ранее интерактивные возможности, столь важные для пользователя, как то: автодополнение для команд и путей к файлам, историю оных (включая средства инкрементного поиска), мощные возможности навигации и редактирования командной строки. Важно, что существует дополнительный пакет bash-completion (правда, в Fedora его надо установить самостоятельно, в инсталляции по умолчанию он отсутствует). Установка этого пакета обогащает базовую оболочку множеством опциональных средств настройки автодополнения (в том числе и для аргументов команд). Однако, чтобы эта дополненная оболочка была по настоящему удобной и функциональной, нужно приложить некоторые усилия по её настройке, чем мы и займемся на следующей странице.


Главная
Содержание

. .