Основные команды Linux для администрирования сервера
Основы4 минРедакция Innovialabs
Коротко
Для повседневной работы с сервером хватает пары десятков команд: ls, cd, df, du для файлов, ps, top, systemctl для процессов, ss, curl для сети, journalctl, tail для логов, apt или dnf для пакетов и useradd, chmod для прав.
Какие команды нужны в первую очередь
Чтобы уверенно обслуживать сервер, не нужно знать сотни команд. Достаточно базового набора, сгруппированного по задачам: файлы и диск, процессы и сервисы, сеть, логи, пакеты, пользователи и права. Ниже — именно он, с примерами, которые можно запускать как есть. Примеры рассчитаны на дистрибутивы с systemd (Ubuntu, Debian, RHEL-семейство).
Файлы и диск
| Команда | Что делает |
|---|---|
ls -lah | Список файлов с правами, размерами и скрытыми файлами |
cd, pwd | Перейти в каталог, показать текущий |
cp -r, mv, rm -r | Копировать, переместить, удалить |
find / -name "*.log" | Найти файлы по имени |
df -h | Свободное место на дисках |
du -sh /var/* | Сколько занимает каждый каталог |
Типичная ситуация — «закончилось место». Последовательность:
df -h # какой раздел заполнен
sudo du -sh /var/* | sort -h # что внутри занимает больше всего
Осторожно с rm -rf: удаление без корзины и без подтверждения. Перед удалением проверьте путь через ls.
Процессы и сервисы
topилиhtop— нагрузка на CPU и память в реальном времени.ps aux | grep nginx— найти процесс по имени.kill PID— корректно завершить процесс;kill -9 PID— принудительно, только если обычный не помог.systemctl status nginx— состояние сервиса.systemctl restart nginx— перезапуск;reload— перечитать конфиг без остановки, если сервис это поддерживает.systemctl enable nginx— автозапуск при загрузке.free -hиuptime— память и средняя нагрузка.
Сеть
ip a # IP-адреса интерфейсов
ss -tulpn # какие порты слушаются и каким процессом
curl -I https://example.com # заголовки ответа сайта
ping -c 4 8.8.8.8 # есть ли связь
dig example.com # DNS-записи домена
ss -tulpn — главная команда, когда сервис «не отвечает»: сразу видно, запущен ли он и на каком порту. Старый аналог — netstat, но во многих дистрибутивах он уже не установлен по умолчанию.
Для файрвола на Ubuntu часто используют ufw: sudo ufw status, sudo ufw allow 443/tcp. Перед включением файрвола обязательно разрешите SSH, иначе потеряете доступ.
Логи
journalctl -u nginx -n 100— последние 100 строк логов сервиса.journalctl -u nginx -f— следить за логом в реальном времени.journalctl --since "1 hour ago"— события за последний час.tail -f /var/log/nginx/error.log— логи, которые пишутся в файлы.grep -i "error" /var/log/syslog— поиск по тексту.less файл— удобный просмотр больших файлов с поиском по/.
Правило: при любой проблеме сначала логи, потом перезапуск.
Пакеты
| Задача | Debian/Ubuntu | RHEL/Rocky/Alma |
|---|---|---|
| Обновить список | sudo apt update | sudo dnf check-update |
| Обновить систему | sudo apt upgrade | sudo dnf upgrade |
| Установить пакет | sudo apt install nginx | sudo dnf install nginx |
| Удалить пакет | sudo apt remove nginx | sudo dnf remove nginx |
Обновляйте систему регулярно, но на продакшене — после проверки и с планом отката.
Пользователи и права
sudo adduser deploy # создать пользователя (Debian/Ubuntu)
sudo usermod -aG sudo deploy # дать права sudo
sudo chown -R deploy:deploy /srv/app # сменить владельца
chmod 640 config.env # владелец читает и пишет, группа читает
id deploy # группы пользователя
Права в chmod записываются тремя цифрами: владелец, группа, остальные. 4 — чтение, 2 — запись, 1 — выполнение. Не ставьте chmod 777 — это открывает файл всем.
Частые ошибки
- Работать под root постоянно. Используйте обычного пользователя и
sudo. - Перезагружать сервер вместо диагностики. Проблема вернётся, а логи уже не помогут.
- Править конфиг без проверки. Для nginx есть
nginx -t, для многих других сервисов — аналогичные проверки. - Не следить за местом на диске. Переполненный раздел с логами ломает базы данных и приложения.