Операційна система GNU/Linux та Shell BASH
Основи архітектури Unix-подібних систем, огляд популярних дистрибутивів, довідник команд CLI та розробка BASH-скрипту текстової авторизації.
1. Коротка інформація про ОС GNU/Linux
GNU/Linux — це вільна, відкрита (Open Source) Unix-подібна операційна система, побудована на базі ядра Linux, створеного Лінусом Торвальдсом у 1991 році, та системних утиліт і бібліотек проекту GNU (Free Software Foundation).
Архітектура Linux відрізняється високим рівнем модульності, надійності та безпеки. Основні компоненти включають ядро (Kernel), командну оболонку (Shell), системні бібліотеки (glibc) та користувацькі утиліти. Linux є стандартом де-факто для сучасних хмарних обчислень, суперкомп'ютерів (100% зі списку TOP500), веб-серверів, Docker-контейнерів, мобільних ОС (Android) та вбудованих систем (IoT).
2. Популярні дистрибутиви Linux
Дистрибутив Linux — це готова операційна система, яка об'єднує ядро Linux, системні утиліти, менеджер пакетів та графічне або текстове середовище.
Ubuntu
Найпопулярніший дистрибутив на базі Debian для робочих станцій та серверів. Відрізняється дружнім інтерфейсом та величезною спільнотою.
Debian
Один із найстаріших і найстабільніших дистрибутивів із суворими стандартами вільного ПЗ. Слугує основою для Ubuntu, Linux Mint та інших ОС.
Fedora / RHEL
Інноваційна платформа від Red Hat. RHEL (Red Hat Enterprise Linux) є корпоративним стандартом для банківських та системних інфраструктур.
Arch Linux
Легковагий дистрибутив для досвідчених користувачів з принципом "KISS" (Keep It Simple, Stupid) та оновленням за моделью Rolling Release.
Alpine Linux
Ультралегка та безпечна ОС розміром усього ~5 МБ на базі musl libc та BusyBox. Стандарт для створення Docker-контейнерів.
Kali Linux
Спеціалізований дистрибутив для фахівців із кібербезпеки, що містить сотні попередньо встановлених інструментів для пентестингу.
3. Приклади команд роботи в Linux CLI
Основні базові команди командного інтерфейсу (Command Line Interface), необхідні для орієнтування, маніпуляції файлами та управління системою:
| # | Команда | Призначення та опис |
|---|---|---|
| 1 | pwd |
Print Working Directory: виводить абсолютний шлях до поточного робочого каталогу сесії. |
| 2 | echo <text> |
Виводить рядок тексту або значення змінної оточення у стандартний потік виводу терміналу. |
| 3 | ls -la |
List Directory: відображає вміст каталогу (прапорці -l — детальний список, -a — включаючи приховані файли). |
| 4 | cd <dir> |
Change Directory: змінює поточний робочий каталог (наприклад, cd .. переходить на рівень вище). |
| 5 | touch <file> |
Створює новий порожній файл або оновлює часову мітку останнього доступу до існуючого файлу. |
| 6 | mkdir -p <path> |
Make Directory: створює нову директорію (прапорець -p створює повний ланцюжок батьківських папок). |
| 7 | cp <src> <dest> |
Copy: копіює файли або директорії (для папок використовується рекурсивний прапорець cp -r). |
| 8 | mv <src> <dest> |
Move: переміщує або перейменовує файли та директорії в файловій системі. |
| 9 | rm -rf <path> |
Remove: видаляє файли або папки (прапорці -r рекурсивно, -f примусово без запиту підтвердження). |
| 10 | history |
Виводить номерний список останніх виконаних команд у командній оболонці BASH. |
4. BASH-скрипт аутентифікації у текстовому режимі
Нижче наведено практичний BASH-скрипт (auth.sh), який моделює процес автентифікації користувача в консолі Linux.
Скрипт запитує логін і пароль (із приховуванням введення read -s), перевіряє їх та надає або блокує доступ.
#!/bin/bash
# Скрипт авторизації користувача у текстовому режимі
VALID_USER="admin"
VALID_PASS="secret123"
MAX_ATTEMPTS=3
attempt=1
echo "=========================================="
echo " СИСТЕМА АВТОРИЗАЦІЇ LINUX (BASH CLI) "
echo "=========================================="
while [ $attempt -le $MAX_ATTEMPTS ]; do
echo -n "Введіть ім'я користувача: "
read username
echo -n "Введіть пароль: "
read -s password
echo ""
if [ "$username" = "$VALID_USER" ] && [ "$password" = "$VALID_PASS" ]; then
echo "[УСПІХ] Авторизація успішна! Ласкаво просимо, $username."
exit 0
else
echo "[ПОМИЛКА] Невірне ім'я користувача або пароль."
attempts_left=$((MAX_ATTEMPTS - attempt))
if [ $attempts_left -gt 0 ]; then
echo "Залишилось спроб: $attempts_left"
echo "------------------------------------------"
fi
fi
attempt=$((attempt + 1))
done
echo "[БЛОКУВАННЯ] Перевищено кількість спроб. Доступ заборонено."
exit 1
💻 Інтерактивна демонстрація роботи BASH-скрипту
Ви можете протестувати виконання даного скрипту безпосередньо у веб-терміналі нижче (Тестові дані: логін: admin, пароль: secret123):
5. Джерела інформації по темі
- Linux Kernel Archives (kernel.org) — офіційний репозиторій вихідного коду ядра Linux.
- GNU Operating System (Free Software Foundation) — філософія вільного ПЗ, ліцензії GPL та системні інструменти GNU.
- ArchWiki — Довідник з системного адміністрування Linux — найдетальніша у світі документація з налаштування Linux систем.
- SS64 Bash Command Line Reference — довідник команд, прапорців та синтаксису скриптів командної оболонки BASH.
- Google Gemini | AntiGravity — матеріал розроблено та згенеровано за допомогою штучного інтелекту AntiGravity.
