Командна оболонка Unix
Командна оболонка в 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.