Що таке shell і як працює системна оболонка?

Автор: Опубліковано

Коротко: Shell, або системна оболонка, — це програма, яка приймає команди користувача й дає змогу запускати програми та виконувати операції в системі. Найчастіше йдеться про текстову оболонку, наприклад Bash, Zsh або PowerShell. Shell і термінал — не те саме: термінал надає місце для введення команд, а оболонка їх інтерпретує.

Для чого потрібна системна оболонка?

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

Коли ви вводите команду, shell розпізнає її назву й додаткові аргументи — дані, що визначають спосіб виконання завдання. Потім оболонка виконує власну функцію або запускає зовнішню програму. Наприклад, у команді python skrypt.py оболонка запускає інтерпретатор Python і передає йому назву файлу для виконання, а не інтерпретує код Python самостійно.

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

Термін «оболонка» має й ширше значення: він може означати графічний інтерфейс для роботи із системою. Проте в документації для розробників та в адмініструванні серверів слово «shell» зазвичай стосується текстової оболонки.

Shell, термінал, консоль і SSH — у чому різниця?

Ці назви іноді вживають як синоніми, але вони позначають різні складники роботи з комп’ютером:

ПоняттяЩо означає
ShellПрограма, що інтерпретує команди, наприклад Bash або PowerShell.
ТерміналЗастосунок, який забезпечує текстове введення й виведення та в якому може працювати shell, наприклад Windows Terminal.
КонсольЗначення залежить від контексту: це може бути системний термінал або, у розмовному вжитку, вікно команд.
SSHПротокол для безпечного підключення до іншого комп’ютера, часто для роботи в його оболонці.

Наприклад, ви можете відкрити Windows Terminal, запустити в ньому PowerShell, а потім підключитися через SSH до сервера з Linux. Після входу команди може обробляти Bash, що працює на сервері. Вікно залишається тим самим, але змінюються комп’ютер, який виконує команди, та оболонка, що їх обробляє.

Ця різниця має практичне значення, коли ви читаєте інструкції. Команда з вказівкою «вставте в термінал» може потребувати певної оболонки, системи або додаткової програми. Саме лише відкриття довільного текстового вікна не гарантує сумісності.

Найпопулярніші оболонки та їх застосування

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

PowerShell розвивають передусім для автоматизації та адміністрування. Ця оболонка працює у Windows, а її сучасні версії доступні також для Linux і macOS. На відміну від типових текстових конвеєрів у Bash, конвеєри PowerShell можуть передавати структуровані об’єкти, наприклад відомості про процеси з окремими полями для назви та ідентифікатора.

cmd.exe, класичний інтерпретатор команд Windows, досі трапляється в старіших інструкціях і пакетних скриптах. Це не інша назва PowerShella. Команди та синтаксис цих двох оболонок відрізняються, хоча обидві можуть працювати у Windows Terminal.

Для початку не потрібно встановлювати нову оболонку. Користуйтеся тією, що доступна у вашому середовищі, і перевіряйте, для якої системи та оболонки написано інструкцію, яку ви виконуєте.

Перші команди: простий приклад

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

У Bash або Zsh введіть по черзі:

pwd
ls
mkdir navchannia-shell
cd navchannia-shell
pwd

Команда pwd показує поточний каталог, ls виводить його вміст, а mkdir створює новий каталог. Команда cd переходить до вказаного каталогу. Цей приклад не видаляє файлів: він створює папку navchannia-shell, якщо ви маєте відповідні права й такої папки ще немає.

У PowerShellu аналогічна послідовність із повними назвами команд має такий вигляд:

Get-Location
Get-ChildItem
New-Item -ItemType Directory -Name navchannia-shell
Set-Location navchannia-shell
Get-Location

Якщо шлях містить пробіли, візьміть його в лапки, наприклад cd "Мої документи". Без лапок оболонка може сприйняти частини шляху як окремі аргументи.

Як безпечно користуватися shell?

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

Перш ніж виконати незнайому команду, з’ясуйте, що вона робить, і перевірте поточний каталог. Не копіюйте без розуміння конструкції, які завантажують скрипт з інтернету й одразу запускають його. Підключившись до сервера через SSH, також переконайтеся, у якому середовищі ви працюєте — тестовому чи робочому.

Перші вправи виконуйте в окремому каталозі з копіями неважливих файлів. Наступним кроком може бути перегляд довідки для однієї команди: у Bash скористайтеся help cd, а в PowerShellu — Get-Help Set-Location.

Читайте також

Дізнайтеся, як PHP-FPM обробляє запити PHP, чим відрізняється від вебсервера та як налаштувати процеси під трафік і ресурси хостингу.
Дізнайтеся, як BIND обслуговує DNS, чим відрізняються його серверні ролі та коли варто розгортати його самостійно замість керованої послуги.
Дізнайтеся, що означають польський реєстр і номер REGON, чим вони відрізняються від NIP та KRS і як перевірити дані підприємства.