Вводные замечания о командных оболочках

После загрузки ОС ASPLinux и авторизации в системе пользователь, как правило, оказывается в среде командной оболочки, именуемой также командной строкой, интерпретатором команд, командной средой или, по-английски, просто Shell. Это своего рода аналог COMMAND.COM из MS DOS. Однако, в отличие от последнего, командная оболочка Linux — это не просто интерпретатор команд, встроенных и внешних, но и интерпретатор мощного языка программирования, позволяющего простыми средствами создавать пользовательские сценарии (скрипты) для решения самых разнообразных задач.

Второе важное отличие командных оболочек Linux от командного интерпретатора MS DOS — их разнообразие. Если в MS DOS COMMAND.COM является фактически безальтернативной средой исполнения команд, то в состав любого дистрибутива Linux (и, разумеется,ASPLinux) входит большое количество оболочек, среди которых пользователь может выбрать адекватную своим задачам или просто наиболее ему импонирующую.

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

С другой стороны, командные оболочки различаются синтаксисом интерпретируемого языка. В этом аспекте также выделяется два их класса, Shell-совместимые и C-совместимые. Синтаксис языка последних, как нетрудно догадаться из названия, сходен с языком программирования Си, тогда как в Shell-совместимых оболочках он своеобразен.

Кроме специальных командных оболочек, в качестве рабочих сред текстового режима можно использовать и другие программы — интерпретаторы языков программирования (например, tclsh — интерпретатор языка Tcl), файловые менеджеры типа Midnight Commander и даже текстовые редакторы. Однако это целесообразно только в специальных случаях, которые в этом руководстве не рассматриваются.

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

В системах Linux (и в дистрибутивеASPLinux) традиционной командной оболочкой по умолчанию является одна из производных классической Shell — Bourne-Again Shell (bash). Она принадлежит к категории развитыхоболочек, в полной мере реализуя богатство ихвозможностей.

В принципе все современные оболочки близки по своим возможностям. Поэтому использование той или иной из них— дело вкуса и привычек пользователя. В любой момент можно легко поменять свою рабочую среду: либо редактированием своей учетной записи (об этом подробно говорится в«Руководстве администратора»),либо просто запуском новой оболочки внутри старой. Однако ряд системныхконфигурационных файлов Linux представляет собой сценарии оболочки (скрипты), и для нихобязательным требованием является совместимость по синтаксису со средой Shell. Именно поэтому, а также отдавая дань традиции и функциональности, мы рассматриваем оболочку bash.

Еще материалы по теме: