$ Команды Linux — короткий справочник

Моя личная шпаргалка по работе в терминале: от перемещения по каталогам до управления пакетами и сетевыми сервисами. Всё, что я использую ежедневно — без лишней теории.

Примеры рассчитаны на обычный сервер с Debian, Ubuntu, AlmaLinux или Fedora. Перед выполнением деструктивных команд — всегда проверяйте путь.

18 разделов 2 менеджера пакетов Bash · Zsh Обновлено: ноябрь 2026

Базовые утилиты

Команды, с которых начинается любая работа в терминале.

КомандаЧто делает
pwdПоказать текущий каталог
cd /путьПерейти в каталог (cd - — вернуться назад, cd ~ — в домашний)
ls -lahСписок файлов с правами, размерами и скрытыми файлами
tree -L 2Дерево каталогов на два уровня вглубь
clearОчистить экран (Ctrl+L делает то же)
historyИстория команд (!! — повторить последнюю)
man lsРуководство по команде (ls --help — кратко)
which nginxПуть к исполняемому файлу команды
echo $PATHПоказать переменную окружения
export VAR=1Задать переменную окружения для текущей сессии

Работа с файлами и каталогами

Создание, копирование, перемещение и удаление.

Создание

bash
mkdir -p /var/www/example/docs      # создать каталог со всеми родителями
touch notes.txt                     # создать пустой файл
ln -s /var/www/example /opt/site    # символическая ссылка

Копирование и перемещение

bash
cp file.conf file.conf.bak          # сделать бэкап
cp -a /etc/nginx /root/backup       # копия с сохранением прав и времени
cp -rv src/ /tmp/dst               # рекурсивно, с выводом
mv report.pdf ~/Документы/          # переместить
mv old-name.txt new-name.txt        # переименовать
rm -i *.log                         # удалить с подтверждением
rm -rf /tmp/build                   # рекурсивно, без вопросов (осторожно!)
Совет: вместо rm -rf $DIR безопаснее писать rm -rf "${DIR:?}" — команда не выполнится, если переменная пустая.

Размер и использование места

bash
du -sh /var/log/*                   # размер каждого элемента в /var/log
du -sh --exclude=.git .            # размер текущего каталога
df -h                               # свободное место на разделах
find . -type f -printf '%s %p\n' | sort -nr | head        # топ-10 самых больших файлов

Просмотр содержимого

КомандаЧто делает
cat fileВывести файл целиком
less fileПостраничный просмотр (/ — поиск, q — выход)
head -n 20 fileПервые 20 строк
tail -n 50 fileПоследние 50 строк
tail -f /var/log/syslogСледить за файлом в реальном времени
wc -l fileПосчитать строки
stat fileПодробная информация о файле и inode
file data.binОпределить тип файла

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

Конвейеры там, где ручная правка занимает слишком много времени.

bash
# заменить строку в конфиге на месте
sed -i 's/^PermitRootLogin.*/PermitRootLogin no/' /etc/ssh/sshd_config

# вывести 2-й и 3-й столбцы, разделитель — запятая
awk -F',' '{print $2, $3}' data.csv

# отсортировать уникальные строки по количеству
sort access.log | uniq -c | sort -rn | head -20

# заменить все вхождения в нескольких файлах
grep -rl 'old-domain.ru' /var/www | xargs sed -i 's/old-domain\.ru/new-domain.ru/g'

# нумерация строк и вывод диапазона
nl file.txt | sed -n '10,20p'
КомандаОписание
cut -d: -f1 /etc/passwdВзять поле по разделителю
tr '[:upper:]' '[:lower:]'Замена символов в потоке
diff -u a bСравнить два файла
paste -d' ' a bСклеить файлы по столбцам

Права и владельцы

rwx = 4 + 2 + 1. Владелец, группа, остальные — по три позиции.

bash
chmod 750 script.sh                 # rwxr-x---
chmod +x deploy.sh                  # добавить исполнение
chmod -R g+rwX /srv/shared          # группа: чтение+запись
chown www-data:www-data -R /var/www # владелец и группа
umask 022                           # маска прав по умолчанию

# ACL — гранулярный доступ для отдельного пользователя
setfacl -Rm u:deploy:rx /var/www/example
getfacl /var/www/example
ЧислоПрава
644Владельцу — чтение/запись, остальным — чтение
600Только владельцу (ключи, приватные конфиги)
755Каталоги и исполняемые файлы
700Только владельцу, полный доступ

Архивы и сжатие

bash
# создать и распаковать tar.gz
tar -czf backup-$(date +%F).tar.gz /var/www/example
tar -xzf backup-2026-11-07.tar.gz -C /tmp/restore

# посмотреть содержимое архива
tar -tzf backup.tar.gz | head

# zip / unzip
zip -r site.zip ./site -x "*.git*"
unzip -o site.zip -d /var/www

# сжатие одного файла
gzip -9 large.log
xz -T0 big.sql

Менеджеры пакетов

Выберите семейство дистрибутива — таблица команд переключится. Раздел закрепляется в адресе страницы, так что ссылкой можно поделиться.

Семейство:
deb apt / dpkg — Debian, Ubuntu, Mint, Kali

Обновление пакетов

bash
apt update                          # обновить список пакетов
apt upgrade -y                      # установить доступные обновления
apt full-upgrade -y                 # с учётом зависимостей и удалений
apt autoremove --purge -y           # убрать ненужные пакеты

Установка и удаление

bash
apt install -y nginx curl ufw
apt remove nginx                    # удалить, конфиги оставить
apt purge nginx nginx-common        # удалить вместе с конфигами
dpkg -i package.deb                 # установить локальный .deb
apt install -f                      # починить зависимости

Поиск и информация

КомандаЧто делает
apt search nginxПоиск пакета в репозиториях
apt show nginxПодробности о пакете
apt list --installedСписок установленных пакетов
apt list --upgradableПакеты с доступными обновлениями
dpkg -l | grep nginxНайти установленный пакет через dpkg
dpkg -L nginxКакие файлы установил пакет
dpkg -S /usr/sbin/nginxКакому пакету принадлежит файл

Репозитории и бэкап

bash
cat /etc/os-release                 # версия дистрибутива
ls /etc/apt/sources.list.d/         # дополнительные репозитории
add-apt-repository ppa:ondrej/php   # подключить PPA
apt-mark hold nginx                 # заморозить версию пакета
dpkg --get-selections > packages.txt # список установленных пакетов
rpm dnf на RHEL 8+/AlmaLinux/Rocky и Fedora, yum на CentOS 7 · rpm

Обновление пакетов

bash
dnf check-update                    # проверить, что можно обновить
dnf upgrade -y                      # обновить всё (yum upgrade — то же)
dnf autoremove -y                   # удалить лишние зависимости
dnf makecache                       # обновить кэш метаданных

Установка и удаление

bash
dnf install -y nginx curl firewalld
dnf remove nginx
dnf install ./package.rpm           # локальный файл (или yum localinstall)
rpm -ivh package.rpm                # установка через rpm
rpm -Uvh package.rpm                # обновление через rpm
rpm -e nginx                        # удалить через rpm
dnf clean all                       # очистить кэш

Поиск и информация

КомандаЧто делает
dnf search nginxПоиск пакета в репозиториях
dnf info nginxПодробности о пакете
dnf list installedСписок установленных пакетов
dnf provides /usr/sbin/nginxКакой пакет содержит файл
rpm -qa | grep nginxНайти установленный пакет через rpm
rpm -ql nginxКакие файлы установил пакет
rpm -qf /usr/sbin/nginxКакому пакету принадлежит файл
rpm -V nginxПроверить целостность файлов пакета

Репозитории и бэкап

bash
cat /etc/os-release                         # версия дистрибутива
ls /etc/yum.repos.d/                        # файлы репозиториев
dnf repolist --all                          # список всех репозиториев
dnf config-manager --set-enabled crb        # включить репозиторий CodeReady
dnf versionlock add nginx                   # заморозить версию (плагин)
rpm -qa > packages.txt                      # список установленных пакетов
↑ Наверх

Сервисы и systemd

bash
systemctl status nginx
systemctl start nginx && systemctl enable --now nginx
systemctl restart nginx             # полный перезапуск
systemctl reload nginx              # перечитать конфиг без простоя
systemctl disable --now nginx
systemctl list-units --type=service --state=running
systemctl list-unit-files --state=enabled
systemctl cat nginx                 # показать unit-файл
systemctl edit nginx                # override без правки основного файла

# логи конкретного сервиса
journalctl -u nginx -f -n 100
Проверка конфигов перед перезапуском: nginx -t, sshd -t, named-checkconf. Перезапуск с ошибкой в конфиге временно уронит сервис.

Процессы

КомандаЧто делает
ps auxВсе процессы системы
ps aux --sort=-%mem | headСамые прожорливые по памяти
top / htopИнтерактивный монитор
pgrep -af nginxНайти процессы по имени
kill -15 PIDМягко завершить процесс (SIGTERM)
kill -9 PIDПринудительно убить (SIGKILL)
pkill -f 'worker'Убить по шаблону командной строки
nice -n 10 cmdЗапустить с пониженным приоритетом
renice -n 5 -p PIDИзменить приоритет процесса
bash
# запустить в фоне так, чтобы жил после выхода из SSH
nohup ./worker.sh > worker.log 2>&1 &

# или через tmux / screen
tmux new -s work
tmux attach -t work
tmux ls

Сеть

bash
ip -br a                            # адреса на интерфейсах
ip route                            # таблица маршрутов
ip a add 192.168.1.10/24 dev eth0   # добавить адрес

ss -tlnp                            # слушающие TCP-порты с процессами
ss -tunlp                           # то же + UDP
ss -tan state established | wc -l   # количество активных соединений

curl -I https://example.com         # заголовки ответа
curl -o file.zip -L https://example.com/file.zip
wget -c https://example.com/big.iso # докачиваемый загрузик
dig example.com +short              # DNS-запрос
ping -c 4 1.1.1.1
traceroute example.com
КомандаЧто делает
ufw allow 22/tcpОткрыть порт в UFW (Debian/Ubuntu)
ufw status verboseПравила файрвола
firewall-cmd --add-port=22/tcp --permanentОткрыть порт в firewalld (RHEL/Fedora)
firewall-cmd --reloadПрименить правила firewalld

Диски, разделы и память

bash
lsblk -f                            # диски, разделы, ФС
df -hT                              # занятость по точкам монтирования
free -h                             # оперативная память
swapon --show                       # swap-разделы
mount /dev/sdb1 /mnt/data
umount /mnt/data
findmnt -T /var/www                 # на каком разделе лежит путь
iotop -o                            # кто активно пишет на диск
Смонтировать при загрузке: добавьте строку в /etc/fstab и проверьте через mount -a до перезагрузки.

Пользователи и группы

bash
whoami && id
useradd -m -s /bin/bash deploy
passwd deploy
usermod -aG sudo deploy
userdel -r olduser
groups deploy
last -n 10                          # последние входы
w                                   # кто сейчас в системе
su - deploy
sudo -u www-data whoami

SSH и передача файлов

bash
# подключение
ssh -p 2222 user@example.com
ssh -i ~/.ssh/id_ed25519 user@example.com

# ключи
ssh-keygen -t ed25519 -C "me@laptop"
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@example.com
ssh-keygen -y -f id_ed25519 > id_ed25519.pub   # восстановить публичный из приватного

# туннели
ssh -L 8080:127.0.0.1:80 user@example.com      # локальный форвард
ssh -R 9000:127.0.0.1:3000 user@bak            # удалённый форвард

# передача файлов
scp -r ./site user@example.com:/var/www/
rsync -avz --delete ./site/ user@example.com:/var/www/site/
rsync -avz --progress ./data/ ./backup/
Защита SSH: PasswordAuthentication no и PermitRootLogin no в /etc/ssh/sshd_config, затем sshd -t && systemctl reload sshd.

Информация о системе

КомандаЧто показывает
uname -aВерсия ядра и архитектура
cat /etc/os-releaseДистрибутив и версия
uptimeВремя работы и средняя нагрузка
lscpuПроцессор, ядра, потоки
dmidecode -t systemМодель сервера (нужен root)
timedatectlЧасовой пояс и синхронизация времени
hostnamectl set-hostname serverСменить имя хоста
reboot -f / poweroffПерезагрузка / выключение

Планировщик Cron

bash
crontab -l                          # мои задачи
crontab -e                          # редактировать

# мин час день мес день_недели команда
0 3 * * * /usr/local/bin/backup.sh >> /var/log/backup.log 2>&1   # каждый день в 3:00
*/15 * * * * /usr/bin/flock -n /tmp/job.lock /opt/job.sh           # каждые 15 минут
@reboot /opt/start.sh
Время в cron: используется часовой пояс системы, а не пользователя. Проверьте timedatectl.

Логи

bash
journalctl -xe                      # последние ошибки
journalctl --since "1 hour ago"
journalctl -u nginx --since today -p err
dmesg -T | tail -50                 # сообщения ядра
tail -f /var/log/nginx/access.log
less /var/log/auth.log
ФайлЧто внутри
/var/log/syslogОбщий журнал (Debian / Ubuntu)
/var/log/messagesОбщий журнал (RHEL / Fedora)
/var/log/auth.logАвторизация и sudo
/var/log/nginx/Логи веб-сервера

Горячие клавиши Bash

КлавишиДействие
Ctrl + AВ начало строки
Ctrl + EВ конец строки
Ctrl + U / Ctrl + KУдалить до начала / до конца строки
Ctrl + WУдалить слово перед курсором
Ctrl + RПоиск по истории
Ctrl + CПрервать команду
Ctrl + Z / fg / bgОстановить / вернуть / продолжить в фоне
Alt + .Вставить последний аргумент предыдущей команды