Як DevOps інженер, освоєння команд Linux є основою для управління інфраструктурою, автоматизації задач і забезпечення безперебійних розгортань. Цей блог висвітлює критичні категорії команд Linux, які повинен знати кожен DevOps професіонал.
1. Управління процесами
Управління процесами є важливим для контролю і моніторингу програм, що працюють на Linux системах. Ось основні команди:
Ключові команди та їх використання:
Список процесів:
ps aux # Показує всі працюючі процеси
ps -ef # Альтернативний формат для списку процесів
ps -u username # Процеси для конкретного користувача
Моніторинг процесів:
top # Інтерактивний перегляд процесів
htop # Покращена версія з кольоровим кодуванням і підтримкою миші
Керування процесами:
kill PID # Надіслати SIGTERM для завершення процесу
kill -9 PID # Примусове завершення процесу
killall name # Завершити всі процеси за ім'ям
Управління сервісами:
systemctl start service # Запустити сервіс
systemctl stop service # Зупинити сервіс
systemctl restart service # Перезапустити сервіс
Управління пріоритетами процесів:
nice -n 10 command # Запустити команду з нижчим пріоритетом
renice -n 10 -p PID # Налаштувати пріоритет для працюючого процесу
2. Управління файловою системою
Файлові системи Linux організовані в дерево. Управління файлами та каталогами є важливою частиною адміністрування систем.
Ключові команди та їх використання:
Правила доступу до файлів
chmod 755 file # rwx для власника, rx для інших
chown user:group file # Змінити власника
Пошук файлів
find / -type f -name "*.log" # Знайти всі лог файли
find / -mtime -7 # Файли, змінені за останні 7 днів
Використання диску
du -sh * # Розмір вмісту каталогу
df -h # Використання файлової системи
3. Управління мережею
Налаштування мережі та налагодження є важливими навичками DevOps.
Ключові команди та їх використання:
Мережеве підключення:
ip addr # Показати IP адреси
ping -c 4 host # Перевірити підключення за допомогою 4 пакетів
Моніторинг портів:
netstat -tulpn # Показати порти і процеси, що слухають
ss -tunlp # Сучасна альтернатива netstat
Налагодження мережі:
tcpdump -i eth0 # Захоплення пакетів на мережевому інтерфейсі
nmap localhost # Сканування відкритих портів
4. Моніторинг системи
Моніторинг продуктивності системи гарантує надійність.
Ключові команди та їх використання:
Моніторинг ресурсів:
free -m # Показати використання пам'яті в МБ
vmstat 1 # Статистика віртуальної пам'яті, оновлювана кожну секунду
Аналіз продуктивності:
perf top # Аналіз продуктивності CPU
strace command # Трасування системних викликів
5. Управління логами
Логи необхідні для налагодження і аудиту системних операцій.
Ключові команди та їх використання:
Системні логи:
journalctl -f # Слідкувати за системними логами
journalctl -u service # Переглянути логи конкретного сервісу
tail -f /var/log/syslog # Слідкувати за системним логом
Аналіз логів:
grep -r "error" /var/log/ # Шукати помилки в логах
awk '/pattern/ {print $1,$2}' logfile # Видобути певні поля
6. Управління пакетами
Ефективне управління програмним забезпеченням є важливим для оновлень системи та розгортання.
Ключові команди та їх використання:
Для RHEL/CentOS:
yum update -y # Оновити всі пакунки
yum install package # Встановити конкретний пакунок
Для Ubuntu/Debian:
apt update && apt upgrade # Оновити систему
apt install package # Встановити пакунок
7. Управління безпекою
Забезпечення безпеки системи включає в себе управління доступом користувачів, моніторинг і зміцнення конфігурацій.
Ключові команди та їх використання:
Управління користувачами:
useradd -m username # Створити користувача з домашнім каталогом
passwd username # Встановити пароль для користувача
Моніторинг безпеки:
last # Показати останні входи
fail2ban-client status # Показати заблоковані IP
Висновок
Освоєння цих команд Linux покращить вашу ефективність як DevOps інженера. Вони є важливими для автоматизації, налагодження і підтримки безпечних та високопродуктивних систем.
Перекладено з: Essential Linux Commands for DevOps Engineers