Полезные команды Linux для повседневной работы с сервером
Командная строка Linux — один из самых быстрых способов управлять сервером, находить причины сбоев и автоматизировать рутинные задачи. Даже если вы привыкли к графическому интерфейсу, на серверах чаще всего доступен только SSH, поэтому уверенное владение базовыми командами экономит время и снижает риск ошибок. В этом материале собраны команды, которые особенно часто нужны при работе с сайтами, логами, процессами и сетью.
Чтобы применять команды, вам нужен доступ к оболочке (обычно по SSH) и пользователь с подходящими правами. На управляемом хостинге часть операций можно выполнить в панели, но при переходе к большей свободе, например на VPS, командная строка становится основным инструментом. Для максимальной изоляции и производительности подойдут выделенные серверы, а для простых сайтов часто достаточно хостинга.
Замечание по безопасности: перед запуском любой команды убедитесь, что понимаете её действие, и по возможности тестируйте на копии или staging-среде. Особенно опасны rm, перенаправление вывода (>) и команды с sudo. В примерах ниже иногда используются “защитные” опции (например, -i), чтобы снизить вероятность случайного удаления данных.
Полезное правило, которое снижает риск аварий: “сначала посмотреть, потом делать”. Если команда может массово удалить или перезаписать данные, сперва выполните проверку в режиме вывода. С find сначала убедитесь, что фильтр выбирает именно нужные файлы, и только потом добавляйте действия. При работе с перенаправлением вывода чаще используйте >> (добавить), а не > (перезаписать), пока не уверены, что файл можно переписать.
Навигация и управление файлами
После входа на сервер важно быстро сориентироваться: pwd показывает текущую директорию, ls — содержимое, а cd меняет каталог. Если установлен tree, он удобно показывает структуру папок. Для веб-проектов полезно различать типичные пути вроде /var/www и /home, чтобы случайно не править файлы не там.
pwd ls -lah cd /var/www tree -L 2
Копирование, перемещение и удаление выполняются командами cp, mv, rm. Безопасная привычка — использовать rm -i, если есть сомнения. Перед массовыми операциями полезно проверить, что именно попадёт под шаблон, и куда будут перемещены файлы. Помните: mv может перезаписать файл так же “безвозвратно”, как и удаление.
cp -av site/ site_backup/ mv app.conf app.conf.bak rm -i file.txt
Для поиска файлов используйте find (или locate, если база актуальна). find работает везде и не зависит от индекса. Типовые задачи: найти свежие изменения, лог-файлы, конфиги по имени или большие файлы, которые “съели” диск. Комбинации с -exec очень мощные, но начинайте с режима “только вывести”, чтобы не запустить необратимые действия.
find /var/www -type f -name "*.log" -mtime -2 find / -type f -size +1G 2>/dev/null
Просмотр текста и анализ логов
Большинство проблем можно понять по логам. Для чтения достаточно cat, less, head, tail. Если лог большой, лучше less: можно искать по шаблону через / и удобно прокручивать. Для “живого” просмотра используйте tail -f, например при перезапуске nginx или проверке изменений в конфиге.
less /var/log/syslog tail -n 200 /var/log/nginx/error.log tail -f /var/log/nginx/access.log
Фильтрация делается через grep, а быстрая статистика — через связку awk + sort + uniq. Так можно быстро увидеть, какие IP чаще всего приходят, какие коды ответа доминируют, или где пошли 500/404. Это особенно полезно, когда нужно быстро понять: проблема в приложении, в боте, или в ресурсоёмком запросе.
grep " 500 " /var/log/nginx/access.log | head
awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -nr | head
awk '{print $9}' /var/log/nginx/access.log | sort | uniq -c | sort -nr | head
Перед редактированием конфигов сделайте резервную копию. Простая привычка “.bak перед правкой” часто спасает, если после изменения сервис перестал стартовать из-за синтаксической ошибки. Используйте удобный редактор (nano или vim), но не пропускайте этап бэкапа.
cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak nano /etc/nginx/nginx.conf
Процессы, сервисы и ресурсы
Если сервер “тормозит”, начните с ресурсов. top (и htop, если установлен) показывает CPU, память и процессы. Свободное место на диске — df -h, размер каталогов — du -sh. Эти команды быстро отвечают на вопрос, что именно стало узким местом: CPU, RAM/swap или заполненный диск, который часто вызывает цепочку ошибок.
top df -h du -sh /var/www/*
Управление сервисами на современных системах обычно делается через systemctl. Можно проверить статус, перезапустить или “перечитать” конфиг, а логи смотреть через journalctl. Хороший порядок действий после правок: проверить синтаксис (если есть команда проверки), затем reload/restart, затем снова посмотреть статус и свежие ошибки.
systemctl status nginx nginx -t systemctl reload nginx journalctl -u nginx --since "10 min ago"
Чтобы понять, кто слушает порт, используйте ss или lsof. Это помогает, если сервис не стартует из-за занятого порта, или если нужно проверить, действительно ли приложение слушает на нужном интерфейсе. Заодно это быстрая проверка безопасности: какие порты открыты наружу.
ss -lntp lsof -i :80
Архивы и резервные копии
На практике постоянно приходится упаковывать проект, переносить каталоги и делать быстрые бэкапы. tar — стандартный инструмент в Linux, а zip часто встречается в дистрибутивах приложений. Добавляйте дату в имя архива, чтобы не путаться. И обязательно следите за секретами: приватные ключи, .env и дампы баз данных не должны случайно попасть в публичные директории или репозитории.
tar -czf site_backup_$(date +%F).tar.gz /var/www/site tar -tzf site_backup_2026-02-20.tar.gz | head
Для бэкапа базы используйте нативные инструменты (например, mysqldump или pg_dump) и храните копии вне сервера, чтобы отказ одного узла не уничтожил и прод, и резерв. Snapshot удобен для быстрого отката, но ключевая практика — тест восстановления: периодически проверяйте, что бэкап реально поднимается.
Сеть и проверки доступности
Если “не открывается”, проверьте слой за слоем. ping показывает базовую связность, traceroute (или mtr) — где теряется маршрут. Для DNS используйте dig или host. Помните, что изменения DNS не мгновенные: есть пропагация и кэширование, из-за чего разные сети могут видеть разные ответы.
ping -c 4 8.8.8.8 dig example.com A +short dig example.com MX +short
На уровне HTTP самый быстрый тест — curl. Он показывает статус-коды, редиректы и заголовки. Это полезно после настройки SSL или перенаправлений, чтобы убедиться, что HTTP корректно уходит на HTTPS с 301 и что сервер отдаёт ожидаемые ответы.
curl -I http://example.com curl -IL https://example.com
Установка программ зависит от дистрибутива. В Debian/Ubuntu используется apt, а в CentOS/RHEL — dnf или yum. Сначала обновите индексы пакетов, затем ставьте только нужное. На продакшене избегайте случайного подключения сомнительных репозиториев: лучше использовать проверенные источники и фиксировать в документации, что именно было установлено и зачем.
apt update apt install htop curl
Права доступа и более безопасная работа
Многие проблемы сайтов связаны с правами. ls -l показывает владельца и режимы, chown и chmod меняют их. Следуйте принципу минимальных прав: файлам сайта почти никогда не нужен режим 777. Выясните, под каким пользователем работает веб-сервер (часто www-data), и выставляйте владельца и права осознанно, постепенно проверяя результат.
ls -l /var/www/site chown -R www-data:www-data /var/www/site find /var/www/site -type d -exec chmod 755 скорость доступа к серверу с максимальной нагрузкой на сайт идеально подходит для посетителей со всего мира! ; find /var/www/site -type f -exec chmod 644 скорость доступа к серверу с максимальной нагрузкой на сайт идеально подходит для посетителей со всего мира! ;
Административные действия выполняйте через sudo, а не под root постоянно. Так проще отслеживать изменения и меньше шанс сделать ошибку “на автомате”. Считайте каждую команду с повышенными правами небольшим “коммитом”: перепроверьте путь, параметры и целевые файлы перед выполнением.
Быстрая диагностика за 2 минуты
Если нужно быстро понять, что происходит, используйте последовательность: (1) uptime и top для нагрузки, (2) df -h для диска, (3) systemctl status для сервиса, (4) tail для свежих ошибок, (5) curl -I для ответа клиенту. Этот минимум часто сразу показывает направление, куда копать дальше, и помогает сформулировать задачу для поддержки.
Если вы ведёте журнал изменений (что правили, когда и почему), то даже сложные инциденты разбираются быстрее, а повторные ошибки случаются реже.
Командная строка приносит максимум пользы, когда вы дополняете её мониторингом и автоматизацией (cron, скрипты, алерты). Тогда инцидентов меньше, а восстановление быстрее. Даже простые регулярные проверки и аккуратная документация по изменениям сильно повышают предсказуемость работы сервера.
Итог: команды с самой большой отдачей
Если вам нужен короткий список “на каждый день”, чаще всего достаточно: ls/cd, find, less/tail -f, grep, df/du, top, systemctl, journalctl, ss и curl. Выучите ключевые флаги, держите привычки безопасности (бэкап перед правкой, минимальные права), и фиксируйте изменения. Тогда администрирование Linux становится понятным, а поиск проблем — спокойным и быстрым.