Поиск
Поиск
- Поиск в текущей директории . с максимальной вложенностью 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/— синхронизировать директории (локально или удаленно).
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— скачать файл.
>>> Шпаргалка по маршрутам <<<
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



Свежие комментарии