Що таке CLI і навіщо розробники досі користуються чорним вікном
Є два способи спілкуватися з комп’ютером. Перший — через графічний інтерфейс: мишка, іконки, папки, вікна. Це зручно, інтуїтивно і знайомо. Але коли ти працюєш з сервером, налаштовуєш програму або пишеш код — мишка раптом стає перешкодою.
CLI (Command Line Interface — командний рядок) — це альтернатива: ти пишеш команду текстом, комп’ютер виконує і повертає результат. Без графіки. Без кнопок. Тільки текст. І, як виявляється, для багатьох задач це значно швидше.
Якщо ти коли-небудь бачив у фільмах хакера, який нескінченно друкує в чорне вікно з білими літерами — це приблизно він. Але спокійно: реальність значно нудніша і набагато корисніша.
Проблема / контекст: чому ми досі тут
Сучасні операційні системи зробили все, щоб людині не треба було вводити команди. Але є ситуації, коли без CLI ніяк:
На сервері немає мишки. Більшість серверів працюють без монітора й без графічної оболонки. Ти підключаєшся віддалено (через SSH), і єдине, що ти бачиш — командний рядок. Без нього ти просто не зможеш нічого зробити з цим сервером.
CLI — це автоматизація. Якщо ти можеш зробити щось однією командою, ти можеш зробити це тисячу разів у циклі або за розкладом. Спробуй автоматизувати кліки мишкою через інтерфейс — буде не дуже.
CLI — це точність. У графічному інтерфейсі ти часто робиш щось не зовсім так: не той каталог, не той файл, не той параметр. У CLI ти пишеш конкретно: який файл, яке ім’я, що саме робити. Це як написати інструкцію для когось, замість того, щоб показувати жестами.
Як це працює простими словами
У CLI є два основні компоненти:
Термінал — програма-вікно, в якому ти бачиш командний рядок і вводиш текст. У Linux — будь-який емулятор терміналу (gnome-terminal, xterm, Konsole), у macOS — Terminal або iTerm2, у Windows — Windows Terminal.
Оболонка (Shell) — програма, яка стоїть за цим вікном. Вона читає те, що ти вводиш, інтерпретує і каже операційній системі, що робити. Найвідоміша — bash, але є й інші: zsh, fish, PowerShell.
Коли ти вводиш команду, ось що відбувається:
- Оболонка читає текст.
- Знаходить програму, яка відповідає за цю команду.
- Запускає її з потрібними параметрами.
- Показує результат на екрані.
Базові команди, які знадобляться будь-кому
Не треба вчити все одразу. Починаємо з найпростішого:
Навігація і файли
ls # показати файли в поточному каталозі
ls -la # детальний список: права, розмір, дата зміни
cd /шлях # перейти в каталог
cd .. # піднятися на рівень вище
pwd # показати, де ти зараз (повний шлях)
Створення та управління
mkdir новий_каталог # створити директорію
touch файл.txt # створити пустий файл
cp оригінал.txt копія.txt # скопіювати файл
mv старе_ім'я.txt нове_ім'я.txt # перейменувати або перемістити
rm файл.txt # видалити файл (обережно!)
Читання та пошук
cat файл.txt # вивести весь файл
head файл.txt # показати перші 10 рядків
grep "слово" файл.txt # знайти рядки, де є "слово"
find /шлях -name "*.txt" # знайти всі .txt файли
Мережа та процес і
ping google.com # перевірити, чи є інтернет
curl https://example.com # зробити HTTP-запит
top або htop # показати запущені процеси
ps aux # список усіх процесів
Як працюють прапорці
Прапорці (flags) — це додаткові параметри, які змінюють поведінку команди. Вони пишуться з дефісом або подвійним дефісом:
ls -l # довгий формат: з правами, розмірами, датою
ls -a # показати приховані файли (які починаються з .)
ls -la # і довгий, і приховані разом
curl -I https://example.com # тільки заголовки відповіді, без повного вмісту
curl --max-time 10 https://example.com # таймаут 10 секунд
Практичне правило: якщо не знаєш, що робить прапорець — man <команда> покаже все.
Пайплайн: коли потрібна комбінація
Одна з найкрутіших можливостей командного рядка — комбінувати команди. Символ | (pipe) бере результат першої команди і передає його як ввід у другу:
ls -la | grep ".txt" # показати тільки .txt файли
cat log.txt | grep "error" | wc -l # порахувати, скільки рядків містять "error"
ps aux | grep node | awk '{print $2}' # знайти PID процесів з "node"
Це як конструктор: ти збираш потрібну поведінку з маленьких кубиків.
Як розуміти повідомлення про помилки
CLI не завжди говорить красиво. Іноді це permission denied, іноді command not found, іноді якийсь нечитабельний стектрейс. Але зазвичай відповідь досить конкретна:
command not found— такої програми нема в системі. Треба встановити.permission denied— нема прав. Можливо, треба додатиsudoабо змінити права черезchmod.no such file or directory— шлях неправильний. Перевірpwdіls.connection refused— сервіс не відповідає. Можливо, він не запущений або зафайрволив.
Команди зазвичай повертають код виходу: 0 означає успіх, будь-який інший код — помилку. Подивитись можна командою echo $? (одразу після виконання).
Типові помилки початківця
1. Боятися терміналу
Це найпоширеніша помилка. Термінал не кусає. Так, можна видалити не те, але якщо не запускати команди наосліп і не копіювати підозрілі речі без розуміння, нічого критичного не станеться.
2. Копіювати команди без розуміння
Інтернет дає готові команди, якими ти можеш зламати систему. Завжди читай, що робить команда, перш ніж натиснути Enter. sudo не треба ставити просто тому, що “працює”.
3. Видаляти файли з під рутом як root
sudo rm -rf / — ніколи, і ні за яких обставин. Це знищить всю файлову систему. Навіть варіанти цієї команди (з іншими шляхами) можуть бути небезпечними, якщо ти не впевнений.
4. Не перевіряти, де ти знаходишся
Перш ніж вводити команду, особливо з видаленням або перейменуванням, завжди роби pwd і ls. Одна помилка в шляхі — і файл пішов. Перевірка займає секунду і рятує години.
5. Ігнорувати man-сторінки
man ls, man grep, man curl — це повна документація по команді прямо в терміналі. Її не треба гуглити. Зазвичай достатньо команда --help для швидкого перегляду прапорців.
Висновок / план дії
CLI — це не чорна магія. Це мова, якою ти говориш із комп’ютером. Якщо ти розробник, DevOps-інженер або навіть просто цікавишся, як щось працює — командний рядок стане одним із найкорисніших інструментів у твоєму наборі.
Що зробити найближчим часом:
- Відкрий термінал і подивися, що ти бачиш (зазвичай це шлях до поточної теки і курсор).
- Введи
lsіls -la— порівняй. - Створи теку, перейди в неї, створи файл, подивися його вміст — пройди базовий цикл.
- Спробуй
grepі|(пайплайн) — поєднай дві команди. - Знайди довідку будь-якою командою:
команда --helpабоman команда.
Того дня, коли ти зможеш зробити 10 речей за 30 секунд через термінал (і зрозумієш, скільки часу це б зайняло через мишку), ти повернешся.