Моя личная шпаргалка по работе в терминале: от перемещения по каталогам до управления пакетами и сетевыми сервисами. Всё, что я использую ежедневно — без лишней теории.
Примеры рассчитаны на обычный сервер с 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
Склеить файлы по столбцам
Поиск
bash
# поиск файлов по имени
find /etc -name "*.conf"
# файлы, изменённые за последние сутки
find /var/www -type f -mtime -1
# поиск по содержимому рекурсивно
grep -rn "listen 443" /etc/nginx
# регулярное выражение, только имена файлов
grep -rlE "(BEGIN|END) PRIVATE KEY" ~/
# быстрое поисковое дерево (если установлен fd/fzf)
fd -e html -x wc -l {}
Права и владельцы
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
Менеджеры пакетов
Выберите семейство дистрибутива — таблица команд переключится. Раздел закрепляется в адресе страницы, так что ссылкой можно поделиться.
Семейство:
debapt / 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 # список установленных пакетов
rpmdnf на 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 # список установленных пакетов
Проверка конфигов перед перезапуском: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: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