Командна оболонка в UNIX є інтерфейсом командного рядка в Unix-подібних операційних системах, тобто виконує команди, які подає користувач, або які читаються з файлів. Такі файли з командами оболонки називаються сценаріями (скриптами, програмами) оболонки. Ці сценарії не компілюються, а інтерпретуються оболонкою. Це означає, що оболонка прочитує сценарій від початку до кінця, рядок за рядком, шукаючи зазначені там команди й виконуючи їх; на відміну від цього підходу, компілятор перетворює цілу програму до вигляду, придатного до виконання машиною — потім файл з таким кодом можна використати в сценарії оболонки. Характерна особливість мови оболонки — багато операцій, які в традиційних мовах програмування є вбудованими, виконуються з допомогою виклику зовнішніх програм.

Знімок екрану bash

Одним з завдань оболонки є забезпечення користувацького середовища, яке можна налаштувати за допомогою конфігураційних файлів.

Види оболонок

ред.
 

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

Джерела

ред.