Основные команды Linux делятся на группы: навигация (pwd, ls, cd), работа с файлами (cp, mv, rm, mkdir), права (chmod, chown), пакеты (apt), процессы (ps, top, kill), поиск и обработка текста (find, grep, sed, awk), сеть (ip, ss, curl) и службы (systemctl, journalctl). Ниже — таблицы с командами и примерами, которые закрывают большую часть повседневной работы в терминале.
Эта шпаргалка по командам Linux собрана по группам задач: найти файл, поставить пакет, убить зависший процесс, вытащить строку из лога, проверить порт. Команды проверены на Ubuntu и Debian; почти всё работает и в других дистрибутивах, отличаются в основном менеджеры пакетов.
Справка и подсказки
| Команда | Что делает |
man ls | полное руководство по команде, выход — q, поиск — /слово |
ls --help | краткая справка по флагам |
type cd | что это: встроенная команда, алиас или файл |
which python3 | путь к исполняемому файлу |
history | история команд; !123 повторит команду номер 123 |
Ctrl+R | поиск по истории |
Ctrl+C / Ctrl+D | прервать команду / закрыть оболочку |
Навигация по файловой системе
| Команда | Что делает |
pwd | текущий каталог |
ls -la | все файлы, включая скрытые, с правами и размерами |
ls -lh | размеры в удобном виде (K, M, G) |
ls -lt | сортировка по времени изменения |
cd /var/log | перейти по абсолютному пути |
cd .. / cd ~ / cd - | на уровень вверх / домой / в предыдущий каталог |
tree -L 2 | дерево каталогов на 2 уровня (пакет tree) |
Работа с файлами и каталогами
| Команда | Что делает |
touch file.txt | создать пустой файл или обновить время изменения |
mkdir -p a/b/c | создать каталоги вместе с родительскими |
cp file.txt backup.txt | скопировать файл |
cp -r src/ dst/ | скопировать каталог рекурсивно |
mv old.txt new.txt | переименовать или переместить |
rm file.txt | удалить файл (без корзины) |
rm -r dir/ | удалить каталог с содержимым; -f — без вопросов, осторожно |
rmdir dir | удалить пустой каталог |
ln -s /opt/app/current app | символическая ссылка |
stat file.txt | подробности: размер, права, inode, даты |
file image.bin | определить тип файла по содержимому |
Просмотр содержимого
| Команда | Что делает |
cat file | вывести файл целиком |
less file | постраничный просмотр, поиск /, выход q |
head -n 20 file | первые 20 строк |
tail -n 50 file | последние 50 строк |
tail -f /var/log/syslog | следить за файлом в реальном времени |
wc -l file | количество строк |
diff a.conf b.conf | различия между файлами |
Права и владельцы
| Команда | Что делает |
chmod +x script.sh | разрешить выполнение |
chmod 644 file | rw-r--r--: владелец пишет, остальные читают |
chmod 755 dir | rwxr-xr-x: типично для каталогов и скриптов |
chmod 600 ~/.ssh/id_ed25519 | только владелец: для приватных ключей |
sudo chown www-data:www-data file | сменить владельца и группу |
sudo chown -R alice /srv/app | сменить владельца рекурсивно |
id | ваш UID, GID и группы |
sudo -i | оболочка root |
sudo usermod -aG docker alice | добавить пользователя в группу |
Пакеты (apt, Debian и Ubuntu)
| Команда | Что делает |
sudo apt update | обновить списки пакетов из репозиториев |
sudo apt upgrade | обновить установленные пакеты |
sudo apt install nginx | установить пакет |
sudo apt remove nginx | удалить, оставив конфиги; purge — вместе с конфигами |
sudo apt autoremove | удалить ненужные зависимости |
apt search htop | найти пакет |
apt show nginx | описание и версия |
dpkg -l | grep nginx | установлен ли пакет |
dpkg -L nginx | какие файлы установил пакет |
В RHEL, Fedora, Rocky Linux аналоги — dnf install, dnf remove, dnf upgrade, rpm -qa.
Окружение и профиль
| Команда | Что делает |
echo $PATH | где оболочка ищет программы |
env | все переменные окружения |
export APP_ENV=prod | задать переменную для текущей сессии и дочерних процессов |
alias ll='ls -la' | сокращение команды |
source ~/.bashrc | перечитать профиль без перезахода |
crontab -e / crontab -l | редактировать / показать задания cron |
Процессы
| Команда | Что делает |
ps aux | все процессы с пользователем, CPU и памятью |
ps aux | grep nginx | найти процесс |
pgrep -a nginx | PID и командная строка по имени |
top / htop | нагрузка в реальном времени |
kill 1234 | попросить процесс завершиться (SIGTERM) |
kill -9 1234 | убить принудительно (SIGKILL) — крайняя мера |
pkill -f "python app.py" | завершить по совпадению командной строки |
command &, jobs, fg | фоновый запуск и управление заданиями |
nohup ./job.sh & | процесс переживёт закрытие терминала |
free -h | память и swap |
uptime | время работы и средняя нагрузка |
strace -p 1234 | системные вызовы процесса |
Службы и логи (systemd)
| Команда | Что делает |
systemctl status nginx | состояние службы и последние строки лога |
sudo systemctl start|stop|restart nginx | запустить, остановить, перезапустить |
sudo systemctl reload nginx | перечитать конфиг без остановки |
sudo systemctl enable --now nginx | включить автозапуск и запустить |
systemctl --failed | упавшие юниты |
journalctl -u nginx -f | лог службы в реальном времени |
journalctl -u nginx --since "1 hour ago" | лог за последний час |
journalctl -p err -b | ошибки с момента загрузки |
Поиск файлов
| Команда | Что делает |
find /var/log -name "*.log" | найти по имени |
find . -type f -mtime -1 | файлы, изменённые за последние сутки |
find / -size +500M 2>/dev/null | крупные файлы, ошибки доступа скрыты |
find . -name "*.tmp" -delete | найти и удалить |
du -sh * | размер каждого элемента в каталоге |
df -h | свободное место на файловых системах |
Поиск и обработка текста: grep, sed, awk, jq
| Команда | Что делает |
grep "error" app.log | строки, содержащие слово |
grep -i -n "error" app.log | без учёта регистра, с номерами строк |
grep -r "listen" /etc/nginx/ | рекурсивно по каталогу |
grep -v "DEBUG" app.log | строки, где слова нет |
grep -c "500" access.log | число совпадений |
grep -E "warn|error" app.log | расширенные регулярные выражения |
sed 's/old/new/g' file | заменить и вывести результат |
sed -i 's/8080/9090/' app.conf | заменить прямо в файле |
sed -n '10,20p' file | вывести строки 10–20 |
awk '{print $1}' access.log | первое поле каждой строки |
awk -F: '{print $1}' /etc/passwd | имена пользователей (разделитель :) |
awk '$9 == 500' access.log | строки, где девятое поле равно 500 |
sort | uniq -c | sort -rn | подсчитать повторы и отсортировать по частоте |
cut -d, -f2 data.csv | второй столбец CSV |
jq '.items[].name' data.json | извлечь поля из JSON |
Пример конвейера: десять IP-адресов, сделавших больше всего запросов к nginx.
awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head -10
Перенаправление и конвейеры
| Конструкция | Что делает |
cmd > out.txt | записать вывод в файл (перезаписать) |
cmd >> out.txt | дописать в конец файла |
cmd 2> err.txt | перенаправить ошибки |
cmd > all.log 2>&1 | вывод и ошибки в один файл |
cmd1 | cmd2 | передать вывод одной команды на вход другой |
cmd | tee out.txt | вывести на экран и сохранить |
cmd1 && cmd2 | выполнить вторую, только если первая успешна |
cmd1 || cmd2 | выполнить вторую, если первая упала |
Архивы
| Команда | Что делает |
tar -czf backup.tar.gz dir/ | упаковать и сжать gzip |
tar -xzf backup.tar.gz | распаковать |
tar -tzf backup.tar.gz | посмотреть содержимое |
zip -r site.zip site/ / unzip site.zip | zip-архивы |
Сеть
| Команда | Что делает |
ip a | интерфейсы и IP-адреса |
ip r | таблица маршрутов |
ping -c 4 8.8.8.8 | доступность узла |
ss -tulpn | открытые порты и процессы на них |
dig example.com / nslookup example.com | DNS-запрос |
curl -I https://example.com | только заголовки ответа |
curl -s https://api.example.com | jq | запрос к API и красивый JSON |
wget URL | скачать файл |
traceroute example.com | путь пакетов до узла |
ssh user@host | подключиться к серверу |
ssh-keygen -t ed25519 | создать пару SSH-ключей |
scp file user@host:/tmp/ | скопировать файл на сервер |
rsync -avz dir/ user@host:/srv/dir/ | синхронизировать каталог |
sudo ufw status | правила файрвола |
Система и диски
| Команда | Что делает |
uname -a | ядро и архитектура |
cat /etc/os-release | дистрибутив и версия |
hostnamectl | имя хоста и сведения о системе |
lsblk | диски и разделы |
sudo mount /dev/sdb1 /mnt | смонтировать раздел |
who / w | кто сейчас в системе |
sudo reboot / sudo shutdown -h now | перезагрузка / выключение |
Коротко
Для повседневной работы хватает пары десятков команд: ls, cd, cp, mv, rm, chmod, sudo, apt, ps, kill, systemctl, journalctl, grep, find, ss, curl и ssh. Сохраните эту шпаргалку по командам Linux и сверяйтесь с ней, пока команды не уйдут в пальцы. Все группы команд разобраны на практике в курсе по Linux.
Как выйти из man или less?
Нажмите q. Для поиска внутри наберите косую черту и слово, n переходит к следующему совпадению.
Как выйти из редактора vim?
Нажмите Esc, затем наберите :q! и Enter, чтобы выйти без сохранения, или :wq, чтобы сохранить и выйти. Новичкам проще редактировать файлы в nano.
Чем rm -rf опасна?
Команда удаляет без подтверждения и без корзины, а ошибка в пути (например, лишний пробел перед звёздочкой) может стереть не тот каталог. Перед запуском проверяйте путь через ls.
Как повторить последнюю команду с sudo?
Наберите sudo !! — оболочка подставит предыдущую команду целиком.
Как остановить зависшую команду в терминале?
Ctrl+C отправляет сигнал прерывания. Если команда не реагирует, найдите её PID через ps или pgrep в другом терминале и завершите командой kill.