Командная оболочка в UNIX является интерфейсом командной строки в Unix -подобных операционных системах, то есть выполняет команды, которые подает пользователь, или которые читаются с файлов. Такие файлы с командами оболочки называются сценариями (скриптами, программами) оболочки. Эти сценарии не компилируются, аинтерпретируются оболочкой. Это означает, что оболочка считывает сценарий от начала до конца, строку за строкой, ища указанные там команды и выполняя их; в отличие от этого подхода, компилятор преобразует целую программу к виду, пригодному для выполнения машиной - затем файл с таким кодом можно использовать в сценарии оболочки. Характерная особенность языка оболочки - многие операции, которые в традиционных языках программирования являются встроенными, выполняются с помощью вызова внешних программ.
Одной из задач оболочки является обеспечение пользовательского среды, которое можно настроить с помощью конфигурационных файлов.
Виды оболочек
UNIX предоставляет на выбор несколько различных оболочек:
- sh, или оболочка Борна ( Bourne Shell )
- одна из первых оболочек, которая была использована в UNIX-подобных средах. Это базовая оболочка, маленькая и с небольшим набором возможностей. Она является де-факто стандартной оболочкой, и присутствует на каждой системе с UNIX. На Линукс /bin /sh может быть символьным линком на bash. Это сделано для того, чтобы обеспечить совместимость с программами UNIX.
- bash, или новая оболочка Борна ( Bourne Again Shell )
- стандартная оболочка Линукс. У большинства пользователей Линукс стандартной оболочкой установлен именно bash. В некотором смысле bash - это надстройка над sh, набор дополнений и дополнительных модулей. Таким образом, новая оболочка Борна совместима с обычной оболочкой Борна: команды, работающие в sh, будут работать и в bash, но не обязательно наоборот.
- csh, или C -ориентированная оболочка ( C Shell )
- синтаксис этой оболочки схож с языком программирования C. Обычно, этой оболочкой пользуются программисты.
- tcsh, или улучшенная C-ориентированная оболочка ( Turbo C Shell )
- надстройка над csh.
- ksh, или оболочка Корна ( Korn Shell )
- Была написана в начале 1980-х годов и получила лучшие на то время возможности оболочки Борна и csh. Есть надстройкой над оболочкой Борна и гарантирует выполнение скриптов написанных для оболочки Борна. Стандартом POSIX есть оболочка Корна с ограниченными возможностями.
В файле /etc /shells находится информация о оболочки, присутствуют в системе:
mia:~>cat /etc/shells
/Bin/bash
/Bin/sh
/Bin/tcsh
/Bin/csh
Оболочка пользователя устанавливается в файле /etc /passwd. Например, строка пользователя mia, который имеет установленную оболочку bash :
mia:L2NOfqdlPrHwE:504:504:Mia Maya:/home/mia:/bin/bash
Переключение между оболочками
Пользователь может в любой момент запустить другую оболочку. Например, если он за дефолтом работает под управлениями bash, а ему удобнее выполнить какие-то действия под оболочкой csh, он запускает эту оболочку
mia:~>csh
Для возвращения под управление bash нужно набрать команду exit.