Прочие оболочки
Оболочка bash — не единственная используемая в Linux. Исторически первой среди нихбыла собственно оболочка Борна — sh (Bourne Shell), родившаяся вместе с первыми LINUX-системами. Она была реализована для всех LINUX и LINUX-подобных систем и принята в них в качестве стандартной. Многие общесистемные сценарии требуют для своей работы оболочки sh. Именно поэтому в первой строке большинства сценариев приводится строка #!/bin/sh.
Основные отличия sh от bash можно охарактеризовать частицей НЕ: она не поддерживает автодополнения команд и путей при вводе, истории команд, редактирования командной строки, контроля заданий и многихдругих возможностей, ставших стандартными для современных оболочек. Кроме того, она не является свободно распространяемой.
Все это служит причиной того, что в ASPLinux оболочка sh не используется.
Правда, в каталоге /bin можно обнаружить файл /bin/sh, однако это — не более чем символическая ссылка на /bin/bash, который и запускается, если оболочка sh в явном виде запрашивается каким-либо сценарием.
Список других оболочек, входящих в дистрибутив ASPLinux можно получить, просмотрев файл /etc/shells командой
cat /etc/shells
содержание его следующее:
/bin/bash2
/bin/bash
/bin/sh
/bin/ash
/bin/bash
/bin/tcsh
/bin/csh
/bin/zsh
Файлы /bin/bash2 и /bin/sh — символические ссылки на /bin/bash . Оболочки ash и zch принадлежат к семейству Shell-совместимых, csh и tcsh — к C-совместимым оболочкам.
Оболочка ash — самая маленькая и компактная из всехиспользуемыхв Linux: размер ее около 64 Кбайт (для сравнения, bash — более 500 Кбайт). Этим обусловлены многие ограничения ее возможностей (нет автодополнения, истории команд и ряда другихинтерактивныхвозможностей). Однако, в отличие от sh , ash поддерживает некоторые современные функции работы со сценариями. И потому используется главным образом при создании загрузочных дискет для аварийныхситуаций.
В отличие от ash , zsh — одна из самыхполнофункциональныхоболочек, поддерживающая все современные ихфункции, как интерактивные (редактирование командной строки, автодополнение, историю команд и т.д.), так и ориентированные на использование в сценариях, а также наибольшее количество команд (более 80) и опций приглашения командной строки (более 50).
Высказывалось мнение, что zsh аккумулирует полезные свойства всехдру-гихоболочек. Любознательным пользователям предоставляется возможность самостоятельно проверить справедливость этого утверждения.
Оболочка csh — первый представитель семейства C-совместимыхоболочек. По сравнению с близкой по возрасту sh она поддерживала многие дополнительные возможности, ставшие позднее стандартными для современныхобо-лочек (автодополнение, историю команд и т.д.), однако реализованы они обычно иначе, чем в bash . Так, для автодополнения используется не клавиша табуляции Tab , а Esc .
Как и sh , собственно исходная оболочка csh вASPLinuxне используется — файл /bin/csh представляет собой символическую ссылку на /bin/tcsh . Оболочка tcsh — клон csh , наделенный многими дополнительными возможностями, реализация которыхприближена к таковой bash . При интерактивной работе заметить различие между tcsh и bash очень трудно — оно проявляется только при настройке и создании сценариев, что связано с отличием синтаксиса языка интерпретатора csh . Так, внутренние переменные оболочки tcsh задаются с помощью конструкции вида:
set имя [= значение]
Для определения переменной окружения используются следующие конструкции
setenv EDITOR joe
и т.д., чем достигается несколько больший (по сравнению с Shell-совместимыми оболочками) лаконизм сценариев.
В заключение следует подчеркнуть, что ни одна из полнофункциональных оболочек, включенныхв составASPLinux, не имеет принципиальныхпреимуществ перед другими. И использование какой-либо из них— исключительно дело вкуса и привычек пользователя.
Для смены оболочки можно использовать команду chsh (от change shell). В ответ на нее предлагается сначала ввести пароль пользователя, а затем — указать полный путь к исполнимому файлу новой оболочки
New shell [/bin/bash]:
Например, для смены bash на zsh, в этой строке следует ввести /bin/zsh, и так далее.
Еще материалы по теме:
- Общие сведения о системе Linux
- Linux - Руководство пользователя на примере ASPLinux
- Linux для начинающих
- Введение в Linux
- Linux - это очень просто
- Основные функции и компоненты системы LINUX
