Linux-термінал: прості команди для контролю сервера

Управління сервером за допомогою командного рядка Linux є фундаментальною навичкою для сис...

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

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

Навігація файловою системою

Перш за все, важливо навчитися переміщатися по файловій системі сервера. Це основа будь-якої роботи з терміналом.

  • pwd (print working directory): Ця команда показує поточний робочий каталог, в якому ви знаходитесь. Це корисно, щоб завжди знати, де саме ви перебуваєте у файловій системі.
  • ls (list): Використовується для перегляду вмісту директорії. За замовчуванням, `ls` показує файли та піддиректорії у поточному каталозі.
    • ls -l: Надає детальний список, включаючи права доступу, власника, розмір файлу та дату останньої зміни.
    • ls -a: Показує всі файли, включаючи приховані (ті, що починаються з крапки).
    • ls -lh: Комбінація, що показує розміри файлів у зручному для читання форматі (КБ, МБ, ГБ).
  • cd (change directory): Дозволяє змінювати поточний робочий каталог.
    • cd /шлях/до/директорії: Переходить до вказаної директорії.
    • cd ..: Переходить на один рівень вище (до батьківської директорії).
    • cd ~ або просто cd: Повертає вас до домашньої директорії користувача.

Управління файлами та директоріями

Після того, як ви навчилися переміщатися, наступним кроком є робота з самими файлами та директоріями.

  • mkdir (make directory): Створює нову директорію.
    • mkdir нова_директорія: Створює директорію з назвою нова_директорія в поточному каталозі.
  • touch: Створює порожній файл або оновлює час доступу/модифікації існуючого файлу.
    • touch новий_файл.txt: Створює порожній файл з імям новий_файл.txt.
  • cp (copy): Копіює файли та директорії.
    • cp джерело призначення: Копіює файл джерело до призначення.
    • cp -r джерело призначення: Копіює директорію джерело (рекурсивно) разом з її вмістом до призначення.
  • mv (move): Переміщує або перейменовує файли та директорії.
    • mv старе_імя нове_імя: Перейменовує файл або директорію.
    • mv файл_або_директорія шлях/до/нового/місця: Переміщує файл або директорію.
  • rm (remove): Видаляє файли та директорії. Будьте надзвичайно обережні з цією командою, оскільки видалені файли, як правило, неможливо відновити.
    • rm файл.txt: Видаляє файл файл.txt.
    • rm -r директорія: Видаляє директорію директорія рекурсивно (разом з усім її вмістом).
    • rm -rf директорія: Примусово видаляє директорію рекурсивно. Використовуйте з максимальною обережністю!

Перегляд вмісту файлів

Часто виникає потреба швидко переглянути вміст текстових файлів без їх редагування.

  • cat (concatenate): Виводить вміст файлу на стандартний вивід.
    • cat файл.txt: Показує весь вміст файлу файл.txt.
    • cat файл1.txt файл2.txt > обєднаний_файл.txt: Обєднує вміст двох файлів в новий файл.
  • less: Дозволяє переглядати вміст файлу сторінка за сторінкою. Це особливо зручно для великих файлів, оскільки не завантажує весь файл у память одночасно.
    • less великий_файл.log: Відкриває великий_файл.log для перегляду. Використовуйте стрілки вгору/вниз для навігації, q для виходу.
  • head: Показує перші кілька рядків файлу (за замовчуванням 10).
    • head файл.txt: Показує перші 10 рядків.
    • head -n 20 файл.txt: Показує перші 20 рядків.
  • tail: Показує останні кілька рядків файлу (за замовчуванням 10). Дуже корисно для моніторингу логів.
    • tail файл.log: Показує останні 10 рядків.
    • tail -n 50 файл.log: Показує останні 50 рядків.
    • tail -f файл.log: Слідкує за файлом і виводить нові рядки в міру їх додавання. Ідеально для моніторингу логів у реальному часі. Натисніть Ctrl+C для виходу.

Робота з процесами

Контроль над запущеними процесами є ключовим аспектом управління сервером.

  • ps (process status): Показує інформацію про поточні процеси.
    • ps aux: Показує всі процеси, що виконуються на сервері, з детальною інформацією (включаючи процеси інших користувачів).
    • ps -ef: Схожа команда, яка часто використовується.
  • top: Інтерактивна програма, що показує список процесів, які виконуються, і використовують ресурси системи (CPU, память) в режимі реального часу.
    • top: Запускає `top`. Натисніть q для виходу.
  • htop: Покращена версія `top`, яка надає більш зручний інтерфейс та додаткові функції. Може знадобитися встановлення: sudo apt install htop або sudo yum install htop.
  • kill: Надсилає сигнал процесу (зазвичай для його завершення).
    • kill PID: Надсилає сигнал TERM (нормальне завершення) процесу з ідентифікатором (PID).
    • kill -9 PID: Надсилає сигнал KILL (примусове завершення) процесу. Використовуйте, коли звичайний `kill` не спрацьовує.
  • pkill: Дозволяє завершувати процеси за імям.
    • pkill імя_процесу: Завершує всі процеси з вказаним імям.
    • pkill -9 імя_процесу: Примусово завершує.

Робота з мережею

Діагностика мережевих проблем та перевірка звязку є важливими завданнями.

  • ping: Перевіряє доступність хоста шляхом надсилання ICMP-пакетів.
    • ping google.com: Відправляє пакети на google.com і показує час відповіді та відсоток втрачених пакетів. Натисніть Ctrl+C для виходу.
  • ifconfig (у старих системах) або ip addr (у нових системах): Показує конфігурацію мережевих інтерфейсів.
    • ifconfig або ip addr show: Виводить IP-адреси, MAC-адреси та інші мережеві параметри.
  • etstat: Показує мережеві зєднання, таблиці маршрутизації, статистику інтерфейсів тощо.
    • etstat -tulnp: Показує всі відкриті TCP та UDP порти, що слухають, а також програми, які їх використовують.
  • ssh (Secure Shell): Дозволяє безпечно підключатися до віддаленого сервера.
    • ssh користувач@адреса_сервера: Підключається до сервера за вказаною адресою від імені користувача.

Управління користувачами

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

  • whoami: Показує імя поточного користувача.
  • sudo (superuser do): Дозволяє виконувати команди з правами суперкористувача (root).
    • sudo команда: Виконує команду з правами root. Вас попросять ввести пароль поточного користувача.
  • useradd: Додає нового користувача.
  • passwd: Змінює пароль користувача.
  • userdel: Видаляє користувача.

Інші корисні команди

  • man (manual): Дозволяє переглядати посібники (manual pages) для будь-якої команди. Це найважливіший інструмент для вивчення нових команд.
    • man ls: Відкриває посібник для команди `ls`. Використовуйте пробіл для прокрутки вниз, q для виходу.
  • grep: Шукає рядки, що відповідають заданому шаблону, у файлах або виводі інших команд.
    • grep текст файл.txt: Шукає всі рядки, що містять текст, у файлі файл.txt.
    • ls -l | grep myfile.txt: Шукає файл myfile.txt у списку файлів.
  • history: Показує список раніше виконаних команд.
    • history: Виводить історію команд.
    • !номер_команди: Виконує команду з історії за її номером.
  • df (disk free): Показує вільне місце на дисках.
    • df -h: Показує використання дискового простору у зручному для читання форматі.
  • du (disk usage): Показує розмір файлів та директорій.
    • du -sh директорія/: Показує загальний розмір директорії у зручному форматі.
  • echo: Виводить текст або значення змінної.
    • echo Привіт, світ!: Виведе Привіт, світ!.
    • echo $PATH: Покаже шлях до виконуваних файлів.
  • service (у старих системах) або systemctl (у системах з systemd): Для керування сервісами (демонами).
    • sudo systemctl status apache2: Перевіряє статус веб-сервера Apache.
    • sudo systemctl start apache2: Запускає Apache.
    • sudo systemctl stop apache2: Зупиняє Apache.
    • sudo systemctl restart apache2: Перезапускає Apache.

Поради для ефективної роботи

  • Використовуйте автодоповнення (Tab): Натискання клавіші Tab після введення частини команди, імені файлу або директорії автоматично доповнює її. Якщо є кілька варіантів, натисніть Tab двічі, щоб побачити їх.
  • Комбінуйте команди за допомогою пайпів (|): Вивід однієї команди можна перенаправити на вхід іншої. Наприклад, ps aux | grep nginx знайде всі процеси, повязані з Nginx.
  • Перенаправлення виводу (>, >>): Вивід команди можна зберегти у файл. ls -l > список_файлів.txt збереже вивід `ls -l` у файл, перезаписавши його. ls -l >> список_файлів.txt додасть вивід у кінець файлу.
  • Вивчайте `man` сторінки: Це ваш найкращий друг. Якщо ви не знаєте, як працює команда або які у неї є опції, `man` завжди допоможе.
  • Практикуйтесь!: Найкращий спосіб навчитися — це регулярне використання команд. Налаштуйте віртуальну машину або тестовий сервер, щоб експериментувати без ризику.

Висновок

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

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