Командна оболонка в 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 є оболонка Корна з обмеженими можливостями. zsh сучасна оболонка, зворотно сумісна із bash.
У файлі /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.
Див. також DEV Challenge
Джерела Посібник з Bash для початківців Softpanorama: Nikolai Bezroukov. Introduction to the Unix shell history