Управління сервером за допомогою командного рядка 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.
