Поиск

Поиск

  • Поиск в текущей директории . с максимальной вложенностью 999, файла с правами 0777, именем index.php, старше одного дня, к которому обращались более двух дней и размером меньше 2 МБ, с обработкой каждого вхождения, добавлением к нему строки “Found” и выводом в лог:
    find . -maxdepth 999 -type f -perm 0777 -mtime +1 -atime +2 -size -2M -name 'index.php' -exec echo "Found" {} \; > /home/lepkov/result.log
  • Найти ТОП 10 самых больших файлов:
    find . -type f -exec du -h {} + | sort -hr | head -10
  • locate "*.php"моментальный поиск по кешу файловой системы. Перед использованием рекомендуется выполнить updatedb. (Для HDD рекомендуется использовать mlocate).
  • whereis asterisk — показать пути к бинарным файлам, исходникам и руководствам для пакета asterisk.
  • which apache2 — показать полный путь к исполняемому файлу apache2.
  • type nginx — определить тип команды (алиас, файл, функция, встроенная команда).
  • grep port /etc/mysql/my.cnf — найти и вывести строки, содержащие “port”, в файле.
  • grep ^port /etc/mysql/my.cnf — найти и вывести строки, начинающиеся с “port”.
  • grep -r string . — рекурсивный поиск строки “string” в файлах текущей директории.
  • lsof | grep sshd — узнать, какие файлы использует процесс sshd.
  • lsof -p 98989 — показать список файлов, открытых процессом с указанным PID.
  • lsof /home/lepkov — показать список открытых файлов из указанной директории.
  • ncdu / — интерактивный анализатор использования дискового пространства. Ключ -x исключает смонтированные директории.
Архивирование

Архивирование

  • tar -cvf lepkov.tar /home/lepkov/ — создать TAR-архив.
    • c: создать новый архив.
    • v: выводить подробную информацию о процессе.
    • f: указать имя файла архива.
  • tar -cvzf lepkov.tar.gz /home/lepkov/ — создать архив в формате TAR.GZ (с Gzip-сжатием).
  • tar -xvf lepkov.tar -C /home/lepkov — извлечь файлы из архива в указанную директорию.
  • gzip -9 /home/lepkov/file — сжать файл с максимальным уровнем сжатия.
  • gunzip /home/lepkov/file.gz — разжать файл.
Сервисы, пользователи и система

Сервисы / Службы / Демоны

  • systemctl list-units --type=service — список всех сервисов в systemd.
  • service --status-all — список всех сервисов в systemV (init.d).
  • systemctl enable|disable mysql — включить или отключить автозапуск сервиса в systemd.
  • update-rc.d mysql enable|disable — включить или отключить автозапуск сервиса в systemV.
  • systemctl status|stop|start|restart|reload mysql — управление сервисом в systemd.
  • service mysql status|stop|start|restart|reload — управление сервисом в systemV.

Информация о пользователях и системе

  • whoami или echo $USER — показать имя текущего пользователя.
  • groups — показать группы, в которые входит текущий пользователь.
  • id — показать UID, GID и группы пользователя. (Системные пользователи обычно имеют UID до 1000).
  • /etc/passwd — файл с информацией о пользователях.
  • /etc/group — файл с информацией о группах.
  • last — показать список последних входов в систему.
  • last reboot — показать историю перезагрузок системы.
  • w — показать, кто из пользователей в системе и что они делают.
  • echo $XDG_CURRENT_DESKTOP — узнать, какая графическая оболочка используется.
  • hostname — показать имя хоста. hostname -i — показать IP-адрес хоста.
  • uname -a — полная информация о системе (ядро, архитектура).
  • lsb_release -a или cat /etc/os-release — информация о дистрибутиве Linux.
  • neofetch — красивая и подробная сводка о системе (требует установки).
  • dmidecode — подробная информация об аппаратном обеспечении (железе).
  • free -h — информация об использовании оперативной памяти (ОЗУ) и swap.
  • date — показать текущую дату и время.
  • ip addr show — список всех сетевых интерфейсов и IP-адресов.
  • wget -qO- eth0.me или curl ifconfig.me — узнать свой внешний IP-адрес.
  • uptime — показать время работы системы с момента последней загрузки.
  • man ls — показать руководство (manual) для команды ls.
Диски и директории

Диски и директории

  • lsblk -a — информация о блочных устройствах (дисках и разделах).
  • blkid — показать UUID и тип файловой системы для разделов.
  • file -s /dev/sda1 — определить тип файловой системы раздела.
  • fdisk -l — подробная информация о дисках и таблицах разделов.
  • df -h — показать использование места на смонтированных файловых системах.
  • df -i — показать использование inode (индексных дескрипторов).
  • du -sh /home/lepkov — показать общий размер указанной директории.
  • ncdu /home/lepkov — интерактивный анализ размера директорий и файлов (требует установки).
  • findmnt — показать все точки монтирования и их параметры.

Размер установленных пакетов (Debian/Ubuntu):

dpkg-query -Wf '${Installed-Size}\t${Package}\n' | sort -n

Размер установленных пакетов (CentOS/Fedora/RHEL):

rpm -q -a --qf '%{SIZE}\t%{NAME}\n' | sort -n
Файловые системы

Файловые системы

  • badblocks -v /dev/sda1 — проверить раздел на наличие поврежденных блоков (bad blocks).
  • mkfs.ext4 /dev/sda1 — создать файловую систему ext4. Ключ -c выполнит проверку на bad blocks.
  • fsck.ext4 /dev/sda1 — проверить и восстановить целостность файловой системы.
  • smartctl -i /dev/sda — проверить, доступен ли S.M.A.R.T. для диска.
  • smartctl -A /dev/sda — показать атрибуты S.M.A.R.T. диска.
  • Посекторное клонирование диска sda на sdb (быстрее, чем просто dd):
    dd if=/dev/sda | dd of=/dev/sdb
Монтирование
  • mount -a — смонтировать все файловые системы, перечисленные в /etc/fstab.
  • mount /dev/sda2 /mnt/data — смонтировать раздел в указанную директорию.
  • mount /dev/cdrom /mnt/cdrom — смонтировать CD/DVD-ROM.
  • mount -o loop file.iso /mnt/iso — смонтировать ISO-образ.
  • mount.cifs //192.168.1.1/share /mnt/smb -o user=user,domain=domain,vers=3.0 — монтировать сетевую папку Windows (CIFS/SMB).
  • mount -o bind /source/dir /target/dir — “привязать” одну директорию к другой (полезно, когда симлинки не работают).
  • umount /mnt/data — размонтировать файловую систему.
  • fuser -km /mnt/data — принудительно размонтировать раздел, завершив все процессы, которые его используют.
Работа с файлами
  • pwd — показать текущую рабочую директорию.
  • mkdir -p /path/to/nested/dir — создать дерево директорий.
  • cd /path/to/dir — перейти в директорию. cd .. — на уровень вверх. cd — в домашнюю директорию.
  • ls -lha — показать все файлы (включая скрытые) в виде списка с подробной информацией.
  • lsattr — показать специальные атрибуты файлов.
  • cp file file.bak — скопировать файл.
  • cp -r /source /destination — рекурсивно скопировать директорию.
  • time cp ... — замерить время выполнения команды.
  • scp -r /local/path user@host:/remote/path — скопировать файлы по SCP на удаленный хост.
  • rsync -avr /source/ /target/ — синхронизировать директории (локально или удаленно).

>>> Шпаргалка по RSYNC <<<

  • mv old_name new_name — переименовать или переместить файл/директорию.
  • rm file — удалить файл. rm -r dir — удалить директорию. rm -rf dir — принудительно удалить без подтверждения.
  • ln -s /path/to/target link_name — создать символическую ссылку (soft link).
  • ln /path/to/target link_name — создать жесткую ссылку (hard link).
  • touch file — создать пустой файл или обновить время его модификации.
  • cat file — вывести содержимое файла. cat -n file — с нумерацией строк.
  • tac file — вывести содержимое файла в обратном порядке.
  • more file или less file — постраничный просмотр содержимого файла.
  • head -n 10 file — вывести первые 10 строк файла.
  • tail -n 10 file — вывести последние 10 строк файла.
  • sort file1 file2 | uniq -u — показать уникальные строки, которые не повторяются.
  • sort file1 file2 | uniq -d — показать только те строки, которые повторяются.
  • wc file — посчитать количество строк, слов и байт в файле.
Специальные атрибуты файлов (chattr)
  • chattr +i file — сделать файл неизменяемым (immutable).
  • chattr +a file — разрешить только дозапись в конец файла (append only).
  • chattr +s file — безопасно удалить файл (место будет заполнено нулями).
  • chattr +u file — сделать файл восстанавливаемым после удаления.
  • chattr +d file — указать утилите dump игнорировать файл при бэкапе.
  • chattr +c file — автоматически сжимать/разжимать файл ядром.
  • chattr +S file — синхронизировать запись на диск немедленно.
Редактор Nano: Горячие клавиши
  • Ctrl+G — Справка (все горячие клавиши)
  • Ctrl+W — Поиск
  • Alt+W — Повторить последний поиск
  • Ctrl+Y / Ctrl+V — Страница вверх / вниз
  • Ctrl+K — Вырезать (удалить) строку
  • Ctrl+O — Сохранить
  • Ctrl+X — Выход
  • Alt+\ / Alt+/ — В начало / в конец файла
  • Alt+U / Alt+E — Отменить / вернуть действие
Управление пользователями и группами

>>> Настройка SSH-авторизации по ключу <<<

  • useradd -m user1 — создать пользователя с домашней директорией.
  • useradd -c "Comment" -g group -d /home/user1 -s /bin/bash user1 — создать пользователя с параметрами.
  • userdel -r user1 — удалить пользователя и его домашнюю директорию.
  • passwd user1 — задать или изменить пароль пользователя.
  • usermod -aG sudo user1 — добавить пользователя в группу sudo.
  • Для отключения запроса пароля для sudo:
    echo "user1 ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/user1
  • chage -E 2025-12-31 user1 — установить дату истечения срока действия учетной записи.
  • groupadd group1 — создать группу.
  • groupdel group1 — удалить группу.
  • groupmod -n new_name old_name — переименовать группу.
  • pwck и grpck — проверить целостность файлов /etc/passwd и /etc/group.
Управление правами доступа (chmod, chown)
  • chown user:group file — изменить владельца и группу файла.
  • chown -R user:group /path/to/dir — рекурсивно изменить владельца для директории.

CHMOD

  • Установить права 700 (rwx——) для директории рекурсивно:
    chmod -R 700 /home/alepkov
  • Установить права 755 для всех директорий и 644 для всех файлов:
    # Права 755 для всех папок
    find . -type d -exec chmod 755 {} \;
    # Права 644 для всех файлов
    find . -type f -exec chmod 644 {} \;
Справка по правам доступа

Обозначения: r – чтение, w – запись, x – выполнение.

Категории пользователей: u – владелец, g – группа, o – остальные.

Примеры: u+x (добавить выполнение владельцу), go-w (убрать запись у группы и остальных).

Цифровые значения:

  • 4 — чтение (r)
  • 2 — запись (w)
  • 1 — выполнение (x)

Примеры в цифрах:

  • 755 (rwxr-xr-x) — полный доступ для владельца, чтение и выполнение для остальных. Стандарт для веб-директорий.
  • 644 (rw-r--r--) — владелец может читать и писать, остальные только читать. Стандарт для веб-файлов.
  • 777 (rwxrwxrwx) — все могут всё. Использовать с осторожностью!
Многозадачность в SSH
  • ssh user@host -p 22 — подключиться по SSH.
  • Ctrl+Z — приостановить текущую задачу и отправить в фон.
  • bg — возобновить выполнение последней приостановленной задачи в фоновом режиме.
  • fg — вернуть последнюю фоновую задачу на передний план.
  • jobs — показать список фоновых задач.
  • fg %N — вернуть задачу номер N на передний план.
Обработка текста и логов
  • Наблюдение за логом в реальном времени (последние 10 строк):
    tail -f -n 10 /var/log/nginx/error.log
  • Просмотр системного журнала (journalctl) для сервиса cron в реальном времени:
    journalctl -u cron.service -f -n 10 --since today
  • Удалить пустые строки из файла:
    sed '/^$/d' file.txt > new_file.txt
  • Удалить дубликаты строк:
    awk '!seen[$0]++' file.txt > new_file.txt
  • Удалить пробелы и табуляцию в начале каждой строки:
    sed 's/^[ \t]*//' file.txt > new_file.txt
  • Удалить строки с комментариями (начинающиеся с ; или #) и пустые строки:
    grep -E -v '^(#|;|$)' file.txt > new_file.txt
  • Выполнить команду 5 раз:
    for n in {1..5}; do echo "Hello"; done
  • Заменить “search” на “replace” во всем файле:
    sed 's/search/replace/g' file.txt > new_file.txt
  • Рекурсивно заменить текст во всех файлах в текущей директории:
    grep -rl 'старый_текст' . | xargs sed -i 's/старый_текст/новый_текст/g'
Работа с процессами
  • htop — улучшенный интерактивный диспетчер задач.
  • pstree -p — вывести дерево процессов с их PID.
  • kill PID — завершить процесс по его ID. kill -9 PID — принудительное завершение.
  • pkill name — завершить процесс(ы) по имени.
  • killall name — завершить все процессы с указанным именем.
  • Убить все процессы, содержащие “myProcessName”:
    ps aux | grep 'myProcessName' | grep -v grep | awk '{print $2}' | xargs -r kill -9
  • Посчитать количество процессов “nodejs”:
    ps ax | grep "nodejs" | wc -l
Анализ сети
  • wget https://example.com/file.zip — скачать файл.

>>> Шпаргалка по маршрутам <<<

>>> Шпаргалка по UFW <<<

  • ss -tuln или netstat -tuln — показать слушаемые TCP и UDP порты.
  • iptables -L -v -n — показать все правила iptables.
  • ufw status numbered — показать правила UFW с нумерацией.
  • host lepkov.ru или dig lepkov.ru ANY — получить DNS-записи домена.
  • tcpdump -i eth0 tcp port 80 — перехватывать и отображать трафик на порту 80.
  • traceroute lepkov.ru — трассировка маршрута до хоста.
  • curl -LI https://lepkov.ru/ — получить только HTTP-заголовки ответа сайта.
  • Подсчет активных подключений по IP-адресам (топ IP с >10 подключениями):
    netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr | awk '$1 > 10'
  • Анализ логов веб-сервера (топ-100 IP по количеству запросов):
    tail -n 10000 /var/log/nginx/access.log | awk '{print $1}' | sort | uniq -c | sort -nr | head -n 100
  • Показать все активные сетевые соединения:
    lsof -ni
Выключение и перезагрузка
  • shutdown now — немедленно выключить систему.
  • shutdown -h +10 — выключить систему через 10 минут.
  • shutdown -c — отменить запланированное выключение.
  • reboot — перезагрузить систему.
  • poweroff — выключить питание (аналог shutdown now).

Полезные ссылки

  • Explainshell — незаменимый инструмент, который разбирает и объясняет любую команду.
  • CommandLineFu — коллекция лучших однострочников (oneliner'ов).
  • Bash-Oneliner — еще одна коллекция полезных команд.

ОБНОВЛЕНО: 22.09.2025

Поделиться