Знание ключевых команд — основа эффективного администрирования сервера. Мы собрали топ-10 команд Ubuntu 24.04, без которых не обойтись в повседневной работе: от мониторинга ресурсов и анализа логов до управления пакетами, сетевыми соединениями и правами доступа.
Введение
Ubuntu 24.04 LTS вышла больше года назад и уже активно используется на серверах. В этой версии осталось большинство привычных команд, но есть и изменения. Мы собрали топ-10 команд для администратора Ubuntu 24.04, которые пригодятся в повседневной работе и помогут быстро решать типичные задачи.
Команды top / htop
Чтобы контролировать загрузку сервера и его поведение в реальном времени, чаще всего используют команды top или htop. Обе утилиты показывают активные процессы, загрузку CPU, использование памяти, swap, аптайм и другую системную информацию.
Команда top есть в Ubuntu по умолчанию. Она отображает информацию в текстовом режиме и позволяет управлять процессами с клавиатуры. Полезные клавиши:
- P — сортировка по CPU;
- M — сортировка по памяти;
- k — завершение процесса (по PID);
- u — фильтр по имени пользователя;
- h — справка.
Например, чтобы завершить процесс с PID 1234, нажмите k, затем введите 1234.
Утилита htop — это более удобная и визуально наглядная альтернатива. Она отсутствует в системе по умолчанию и устанавливается отдельно:
sudo apt update
sudo apt install htop
Основные преимущества htop:
- управление стрелками и функциональными клавишами;
- возможность выбирать несколько процессов;
- цветовая подсветка загрузки;
- поиск (F3) и фильтрация (F4) по имени процесса;
- завершение процесса (F9) и изменение приоритета (F7, F8).
Обе утилиты читают данные из /proc и раз в несколько секунд обновляют отображение. Это позволяет отслеживать ситуацию в реальном времени без установки дополнительных агентов.
Команда journalctl
В Ubuntu 24.04, как и в предшествующих версиях, системные логи управляются через systemd-journald, а основной командой для их просмотра является journalctl. Эта утилита позволяет фильтровать, искать и анализировать события в системе, в том числе ошибки запуска служб, сбои процессов, обращения к сети и многое другое.
По умолчанию journalctl выводит все сообщения из системного журнала в хронологическом порядке. Чтобы просмотреть самые свежие записи, используйте:
journalctl -xe
Флаг -x добавляет пояснения к записям, а -e перемещает курсор в конец журнала — туда, где находятся последние события. Это удобно при диагностике ошибок после перезагрузки или сбоя службы.
Команда также поддерживает фильтрацию по времени:
journalctl --since "2025-06-01 12:00" --until "2025-06-01 13:00"
Если указать только --since "1 hour ago" — будут показаны логи за последний час. Это помогает сузить диапазон при поиске проблемы.
Чтобы посмотреть сообщения, относящиеся к конкретной службе (юниту systemd), например nginx:
journalctl --unit=nginx
Флаг --unit принимает точное имя юнита, такое же, как у systemctl status.
Поиск по ключевым словам:
journalctl | grep "Out of memory"
Или:
journalctl -g "Out of memory"
Также можно ограничить вывод определённым уровнем логирования:
journalctl -p err
Это отфильтрует только сообщения уровня ошибки (err), игнорируя обычные информационные события.
Команда ss
Команда ss используется для диагностики сетевых соединений и открытых портов. В отличие от устаревшего netstat, она работает быстрее, так как берёт данные напрямую из ядра, без промежуточных вызовов. Кроме того, в новых версиях Ubuntu пакет net-tools, содержащий netstat, больше не устанавливается по умолчанию, а ss входит в состав утилиты iproute2, которая предустановлена.
Чаще всего команда выглядит так:
sudo ss -tulpn
Рассмотрим, что означают флаги:
- -t — показывает TCP-соединения;
- -u — UDP-соединения;
- -l — отображает только прослушиваемые сокеты (listening);
- -p — показывает PID и имя процесса, который использует порт (требует root-доступа);
- -n — отключает попытки обратного DNS и разрешения имён сервисов (ускоряет вывод и делает его чище).
Эта команда позволяет быстро увидеть службы, слушающие порты, поэтому она полезна после установки нового сервиса — например, nginx, PostgreSQL или sshd — чтобы убедиться, что нужный порт открыт, а служба действительно работает и слушает его.
Если ss показывает, что порт закрыт, это может быть связано с настройками файрвола, сбоем службы или ошибкой в конфигурации. В этом случае проведите диагностику через systemctl, ufw или проанализируйте логи с помощью journalctl.
Команда systemctl
Команда systemctl — инструмент для управления службами (юнитами) в системах на базе systemd, включая Ubuntu 24.04. Она позволяет запускать, останавливать, перезапускать сервисы, настраивать автозагрузку и получать информацию о статусе любого юнита.
Базовые команды:
- sudo systemctl start <служба> — запустить;
- sudo systemctl stop <служба> — остановить;
- sudo systemctl restart <служба> — перезапустить;
- sudo systemctl enable <служба> — включить автозапуск при загрузке;
- sudo systemctl disable <служба> — отключить автозапуск;
- systemctl status <служба> — показать текущее состояние и последние строки лога.
Если сервис работает некорректно, команда status покажет код выхода, сообщения об ошибках и последние события.
Иногда нужно найти активный юнит по ключевому слову. Для этого удобно использовать:
systemctl list-units --type=service | grep <ключ>
Если юнит не отображается в списке активных, его можно поискать в каталоге unit-файлов:
systemctl list-unit-files | grep <ключ>
systemctl также позволяет перезагружать systemd (без перезагрузки ядра), что полезно после изменения конфигурации или установки новых unit-файлов:
sudo systemctl daemon-reload # перезагрузка файлов конфигурации systemd
sudo systemctl daemon-reexec # перезапуск демона systemd
При сбоях сервисов связка systemctl + journalctl даёт быстрый доступ к информации, необходимой для устранения проблем. Например, при ошибке запуска можно получить статус юнита, увидеть последние записи в логах, проверить права на конфигурационные файлы и попытаться перезапустить службу вручную.
UFW
Утилита UFW (Uncomplicated Firewall) — это упрощённый интерфейс для настройки брандмауэра на базе nftables. Он предустановлен в Ubuntu и предназначен для тех случаев, когда нужен базовый контроль доступа к портам без погружения в сложный синтаксис сетевых фильтров. Для большинства задач — например, открыть порт для SSH или закрыть доступ к базе данных из внешней сети — ufw подходит идеально.
Команда, чтобы включить брандмауэр:
sudo ufw enable
Перед этим обязательно разрешите нужные подключения — в первую очередь SSH, чтобы не потерять доступ к серверу:
sudo ufw allow ssh
Аналогично можно разрешать или запрещать порты по номерам:
- sudo ufw allow 80 — разрешить HTTP;
- sudo ufw allow 443/tcp — разрешить HTTPS;
- sudo ufw deny 3306 — запретить доступ извне к порту, который использует MySQL.
Если нужно разрешить доступ с определённого IP:
sudo ufw allow from 192.168.1.100 to any port 22
Проверить текущие правила можно так:
sudo ufw status verbose
Для сброса всех настроек:
sudo ufw reset
Отключение брандмауэра:
sudo ufw disable
Пакетный менеджер apt
Пакетный менеджер apt — один из основных инструментов для установки, обновления и удаления программ в Ubuntu 24.04. Он работает поверх более низкоуровневых утилит (dpkg, apt-cache и других) и предоставляет удобный синтаксис для повседневной работы. Через apt устанавливаются не только пользовательские приложения, но и системные компоненты, включая ядро, службы и библиотеки.
Перед установкой всегда обновляйте список доступных пакетов:
sudo apt update
Эта команда не устанавливает пакеты или обновления, а лишь загружает свежие метаданные — без этого невозможно получить актуальные версии программ.
Чтобы обновить установленные пакеты до последних доступных версий:
sudo apt upgrade
Команда для полного обновления:
sudo apt full-upgrade
В отличие от upgrade, она может удалять устаревшие зависимости, если это необходимо для обновления. Использовать её стоит с осторожностью, особенно на продакшен-серверах.
Установка новых пакетов:
sudo apt install <имя_пакета>
Если нужно установить нескольких пакетов за раз, просто перечислите их через пробел.
Удаление неиспользуемых зависимостей:
sudo apt autoremove
Эта команда полезна после удаления программ, чтобы система не хранила лишние библиотеки и вспомогательные утилиты.
Поиск пакетов:
apt search <ключевое_слово>
Информация о конкретном пакете:
apt show <имя_пакета>
Эта команда покажет описание, размер, зависимости, источник и другую информацию.
Для безопасного обновления ПО на сервере важно:
- делать резервные копии конфигураций и данных;
- проверять, какие именно пакеты будут обновлены (apt list --upgradable);
- обновлять только критически важные компоненты и только при необходимости (особенно на системах с высокой нагрузкой);
- использовать терминальные мультиплексоры (screen или tmux), чтобы не потерять сессию при обрыве SSH-соединения;
- после обновления перезапускать только нужные сервисы или перезагружать систему вручную, а не автоматически.
Утилита rsync
rsync — это инструмент для копирования и синхронизации файлов и каталогов. Он копирует только изменённые файлы или части файлов, экономя трафик и ускоряя процесс. rsync особенно полезен при регулярном резервном копировании, синхронизации каталогов между серверами и развёртывании конфигураций.
Простое резервное копирование внутри локальной системы:
rsync -a /источник/ /backup/целевой_каталог/
Флаг -a (archive) включает рекурсивное копирование, сохранение прав, времени, символических ссылок и других метаданных — это оптимальный режим для переноса конфигураций и данных.
Если нужно передавать файлы по сети, rsync может использовать SSH:
rsync -az /источник/ user@remote_host:/директория_назначения/
Здесь:
- -a — архивный режим (как выше);
- -z — сжатие передаваемых данных (полезно на медленных каналах);
- user@remote_host: — указание удалённого хоста через SSH.
Для зеркалирования каталога с удалением файлов, отсутствующих в источнике:
rsync -az --delete /источник/ /директория_назначения/
Флаг --delete удаляет на целевой стороне всё, чего нет на стороне источника. Это удобно для резервного копирования и поддержания идентичного состояния данных.
Например, копирование сайта с одного сервера на другой без остановки работы:
rsync -az /var/www/ user@remote_host:/var/www/
Создание локальной резервной копии конфигурации:
rsync -a /etc/ /backup/etc/
Быстрая синхронизация каталогов с минимальной передачей данных:
rsync -az --delete /media/data/ /mnt/backup/data/
Почему rsync, а не scp или cp, также предназначенные для копирования:
- scp копирует всё подряд и не поддерживает синхронизацию, в то время как rsync копирует только изменённые файлы, поддерживает проверку целостности, удаление лишних файлов и более гибкую настройку;
- cp не работает по сети и не умеет сравнивать содержимое, не поддерживает сжатие и удаление устаревших файлов на целевой стороне.
Команды chmod и chown
Следующие команды из нашего топ-10 — chmod и chown. Они нужны для управления правами доступа в Ubuntu: позволяют задавать, кому разрешено читать, изменять или исполнять файлы и директории, а также указывать владельцев.
chmod управляет разрешениями. Пример:
chmod 600 ~/.ssh/authorized_keys
Здесь 600 означает, что владелец может читать и записывать, а группа и остальные пользователи не имеют доступа.
Числовая запись прав (например, 600, 755 и т. д.) состоит из трёх цифр:
- первая — права владельца;
- вторая — группы;
- третья — остальных пользователей, не входящих в группу владельца.
Каждая из этих цифр — это сумма чисел, соответствующих чтению (4), записи (2) и выполнению (1).
Примеры:
- 600 — только владелец может читать и писать (6=4+2);
- 644 — владелец может читать и писать, остальные — только читать;
- 755 — владелец может всё (7=4+2+1), остальные могут только читать и выполнять (5=4+1, часто используется для скриптов и директорий);
- 700 — полный доступ только владельцу.
chown задаёт владельца и группу:
chown -R <пользователь>:<группа> <директория>
Например, команда для назначения владельца и группы каталогу сайта:
chown -R www-data:www-data /var/www
Проверить текущие права можно с помощью ls -l:
ls -l ~/.ssh/authorized_keys
Команды df -h и du -sh
Команды df и du используются для контроля за дисковым пространством, но решают разные задачи. df показывает использование места по файловым системам (разделам), а du — по каталогам и отдельным файлам.
df -h — это быстрый способ узнать, сколько свободного и занятого места на каждом смонтированном разделе. Флаг -h включает удобный для человека формат (human-readable), отображая размеры в мегабайтах и гигабайтах. Если вы видите, что корневой раздел (/) почти заполнен — значит нужно искать, что занимает место. Для этого и используют du. Например, чтобы узнать, размер конкретного каталога:
du -sh /var/log
Если нужно посмотреть, какие подкаталоги занимают больше всего:
du -h /var/log | sort -h | tail
Команда покажет 10 самых тяжёлых папок или файлов в /var/log.
Чтобы найти, что именно занимает диск на сервере, часто начинают с корня:
sudo du -h / --max-depth=1 | sort -h
Это помогает оценить, какие верхнеуровневые каталоги занимают больше всего места, и выбрать, с чего начать дальнейшую проверку.
Утилиты tar и gzip
tar и gzip применяются для архивации, сжатия и резервного копирования данных. В большинстве случаев эти утилиты используются совместно: tar собирает файлы в один архив, а gzip его сжимает.
Для создания сжатого архива применяют команду:
tar -czf backup.tar.gz /etc/nginx
Разберём её:
- -c — создать архив (create);
- -z — использовать gzip для сжатия (можно заменить на -j для bzip2 или -J для xz);
- -f — указать имя выходного файла (file);
- backup.tar.gz — имя архива;
- /etc/nginx — каталог, который архивируется.
Архив можно сохранить локально или передать на другой сервер.
Для распаковки архива используется:
tar -xvf backup.tar.gz
Флаги:
- -x — извлечь файлы (extract),
- -v — подробный вывод (verbose),
- -f — указание файла архива.
Если нужно распаковать в определённый каталог:
tar -xvf backup.tar.gz -C /tmp/restore
Для создания резервных копий всей системной конфигурации:
tar -czf etc-backup-$(date +%F).tar.gz /etc
Архив будет содержать дату в имени, например:
etc-backup-2025-06-01.tar.gz
Это облегчает хранение и автоматизацию.
Для архивации нескольких директорий перечислите их через пробел:
tar -czf config.tar.gz /etc/nginx /etc/php /etc/ssh
Проверка содержимого архива без распаковки:
tar -tf backup.tar.gz
Заключение
Знание базовых команд — залог уверенного и эффективного администрирования Ubuntu 24.04. Эти утилиты помогают быстро диагностировать проблемы, управлять службами, работать с сетью и данными. Освоив их, вы сможете поддерживать стабильную работу сервера и оперативно реагировать на любые сбои.
Читайте в блоге:
- Настройка ZRAM в Ubuntu 24.04 LTS на VPS
- CI/CD на базе Ubuntu 24.04 LTS: GitHub Actions, Docker, NGINX
- Ansible с Ubuntu 24.04: быстрый старт автоматизации