Руководства

Команды Linux: шпаргалка для администратора сервера

Команды Linux, которые реально нужны на сервере: файлы, права, процессы, сеть, systemd, пакеты и архивы — в одной шпаргалке со ссылками на подробности.

Опубликовано ~9 мин чтения

Короткий ответ: таблицы ниже собирают команды Linux, которые реально нужны администратору сервера, — файлы, процессы, сеть, права, пакеты — с короткой расшифровкой, что каждая делает. Там, где у команды есть отдельная подробная статья (полный разбор или конкретная ошибка), таблица ссылается на неё.

Файлы и каталоги

КомандаЧто делает
ls -laСписок файлов, включая скрытые, с правами и размерами
cd pathПерейти в каталог
pwdПоказать текущий каталог
cp -r src dstКопировать, рекурсивно — для каталога
mv src dstПереместить или переименовать
rm -rf pathУдалить рекурсивно и без подтверждения — отменить нельзя
mkdir -p a/b/cСоздать каталог и все недостающие родительские
touch fileСоздать пустой файл или обновить время изменения
ln -s target linkСоздать символическую ссылку
find /path -name '*.log'Искать файлы по имени, рекурсивно
df -hСвободное место по каждой смонтированной файловой системе, в читаемых единицах
du -sh pathСуммарный размер каталога

Чтобы найти не сколько места свободно, а что именно его занимает, см. проверку занятого места на Linux (англ.) (англ.).

Права и владение

КомандаЧто делает
chmod 755 fileЗадать точные права восьмеричным кодом
chmod +x fileДобавить право на выполнение, не трогая остальные
chown user:group fileСменить владельца и группу файла
ls -l fileПоказать текущие права и владельца файла

Полный разбор — восьмеричный и символьный режим, рекурсивный chmod без поломки каталогов и почему 777 почти никогда не решение — в руководстве по команде chmod (англ.) (англ.).

Процессы

КомандаЧто делает
ps auxСписок всех запущенных процессов
top / htopЖивой, обновляющийся вид загрузки CPU и памяти по процессам
kill PIDПопросить процесс завершиться (SIGTERM)
kill -9 PIDПринудительно завершить процесс (SIGKILL, без очистки)
pkill nameЗавершить по имени процесса, а не по PID
nohup cmd &Запустить команду, которая переживёт закрытие терминала

Что означает каждый столбец ps aux, разобрано в объяснении ps aux (англ.) (англ.).

Сеть

КомандаЧто делает
ip -4 addr showПоказать IPv4-адреса на всех интерфейсах
ip routeПоказать таблицу маршрутизации
ss -tlnpСписок прослушиваемых TCP-портов и процесса на каждом
ping hostПроверить доступность и время отклика
curl -I urlПолучить только HTTP-заголовки по URL
dig domainЗапросить DNS-записи домена
nc -zv host portПроверить, открыт ли один конкретный TCP-порт

Подробнее про ss, lsof и другие способы проверить, что слушает порты, — в проверке открытых портов в Linux.

Как задать адрес, чтобы он не менялся при перезагрузке, — в статических IP-адресах, а про сброс устаревшего ответа DNS — в очистке кеша DNS (англ.) (англ.).

Службы и логи (systemd)

КомандаЧто делает
systemctl status nameЗапущена ли служба и последние строки её лога
systemctl restart nameПерезапустить службу
systemctl enable nameЗапускать службу автоматически при загрузке
journalctl -u name -fСледить за логом службы в реальном времени
journalctl -xeПерейти к концу системного лога с дополнительным контекстом

Установка программ

ДистрибутивУстановитьОбновить всё
Debian · Ubuntusudo apt install namesudo apt update && sudo apt upgrade
RHEL · Rocky · Almasudo dnf install namesudo dnf upgrade
Alpinesudo apk add namesudo apk update && sudo apk upgrade

Если команда «command not found» появляется сразу после установки, часто дело в том, что оболочка ещё не перечитала пути к командам (помогает hash -r), либо пакет ставит исполняемый файл под другим именем, чем вы ожидали.

Обработка текста

КомандаЧто делает
cat fileВывести содержимое файла
less fileПостранично просматривать файл (q — выйти)
grep text fileИскать текст внутри файла
grep -r text dirИскать рекурсивно по каталогу
tail -f fileСледить за файлом по мере добавления новых строк
wc -l fileПосчитать строки в файле
sed 's/old/new/g' fileЗаменить текст (потоковый редактор)

Архивы и передача файлов

КомандаЧто делает
tar -czvf out.tar.gz dir/Создать сжатый архив
tar -xzvf out.tar.gzРаспаковать архив
scp file user@host:/pathСкопировать файл на удалённый сервер по SSH
rsync -av src/ user@host:/path/Синхронизировать каталог, передавая только изменения

Для интерактивной сессии вместо разового копирования см. команду sftp (англ.) (англ.).

Docker

Контейнеры, образы, Compose и очистка выросли в отдельный справочник — шпаргалку по командам Docker (англ.) (англ.).

Команда, которая ставит всех в тупик

Раньше или позже что-нибудь откроет vim — git commit, crontab -e, минимальный образ сервера без установленного nano — и самое сложное — из него выйти:

Esc, затем :wq сохраняет и выходит; :q! выходит без сохранения. Полная таблица команд выхода и почему vim вообще застревает — в инструкции, как выйти из vim (англ.) (англ.).

SSH — вход во всё перечисленное выше

Любая команда на этой странице предполагает, что вы уже можете зайти на сервер — начните с создания SSH-ключа (англ.), если ещё не сделали этого.

В каком порядке выполнять всё это на новом сервере — создать пользователя, закрыть SSH, настроить файрвол — см. первоначальную настройку сервера (англ.) (англ.).

Частые вопросы

Какие команды Linux нужны чаще всего на сервере?

Файлы и каталоги (ls, cp, mv, rm, find), права (chmod, chown), процессы (ps aux, top, kill), сеть (ip, ss, curl, dig), systemd (systemctl, journalctl) и установка пакетов (apt, dnf, apk) — это покрывает почти всю повседневную администраторскую работу. Таблицы в этой статье собирают их с коротким описанием каждой.

Как посмотреть и остановить процесс в Linux?

ps aux показывает список всех запущенных процессов, top или htop — живую обновляющуюся картину загрузки CPU и памяти. Чтобы остановить процесс, выполните kill PID — это просит его завершиться (SIGTERM); если он не реагирует, kill -9 PID завершает его принудительно (SIGKILL) без возможности корректно закрыться. pkill name делает то же самое по имени процесса, а не по PID.

Как установить программу в Linux из командной строки?

В Debian и Ubuntu — sudo apt install имя_пакета, в дистрибутивах семейства RHEL (Rocky, Alma) — sudo dnf install имя_пакета, в Alpine — sudo apk add имя_пакета. Если команда сразу после установки пишет «command not found», чаще всего дело либо в том, что оболочка ещё не перечитала пути (помогает hash -r), либо в том, что исполняемый файл называется иначе, чем ожидалось.

Читайте также

Все статьи раздела