Иногда логи или конфигурационные файлы содержат повторяющиеся строки. Удаление дубликатов помогает сократить размер и упростить анализ.
# Удалить дубликаты и отсортировать строки
sort file.txt | uniq > cleaned.txt
# Сохранить порядок, удаляя только повторяющиеся строки
awk '!seen[$0]++' file.txt > cleaned.txt
# Перезаписать оригинальный файл без дубликатов
awk '!seen[$0]++' file.txt > temp && mv temp file.txt
sort | uniq
удаляет дубликаты, но меняет порядокawk
позволяет сохранить исходный порядок строкPlease open Telegram to view this post
VIEW IN TELEGRAM
Когда нужно быстро оценить структуру директорий или найти вложенные папки — поможет команда tree.
# Установить tree (если не установлено)
sudo apt install tree # Debian/Ubuntu
sudo pacman -S tree # Arch
sudo dnf install tree # Fedora
# Посмотреть структуру директорий текущей папки
tree
# Показать только папки (без файлов)
tree -d
# Ограничить глубину вложенности
tree -L 2
# Подсчитать количество файлов и папок
tree -f --noreport | wc -l
Please open Telegram to view this post
VIEW IN TELEGRAM
diff
и rsync
Когда нужно узнать, чем отличаются две папки — например, резервная копия и рабочая версия — удобно использовать встроенные инструменты Linux.
# Сравнить два каталога построчно
diff -qr dir1/ dir2/
# Сравнить содержимое с выводом различий
diff -r dir1/ dir2/
# Только отличающиеся файлы по имени и дате
rsync -avun dir1/ dir2/
# Сравнить каталоги с сохранением логов
rsync -av --dry-run dir1/ dir2/ > changes.log
diff -r
показывает отличия в содержимом файловrsync --dry-run
подойдёт, если планируется синхронизацияPlease open Telegram to view this post
VIEW IN TELEGRAM
dpkg
и rpm
)Иногда нужно выяснить, какие пакеты были недавно установлены или обновлены — например, после настройки системы или отладки багов. Это можно сделать с помощью встроенных инструментов.
# Debian/Ubuntu: показать 20 последних установленных пакетов
grep " install " /var/log/dpkg.log | tail -n 20
# Или, если лог разрезан, ищем во всех
zgrep " install " /var/log/dpkg.log* | tail -n 20
# RedHat/CentOS/Fedora: список последних установленных пакетов
rpm -qa --last | head -n 20
# Узнать, когда конкретный пакет был установлен
rpm -q --last nginx
Please open Telegram to view this post
VIEW IN TELEGRAM
Со временем система может накопить множество неиспользуемых библиотек и зависимостей. Эти команды помогут найти и удалить их, освободив место и ускорив систему.
# Показать список неиспользуемых пакетов
sudo apt autoremove --dry-run
# Удалить неиспользуемые зависимости
sudo apt autoremove
# Очистить кеш пакетов
sudo apt clean
# Проверить вручную установленные и редко используемые пакеты
apt-mark showmanual | xargs apt-cache show | grep -E 'Package:|Priority:'
# Найти "висячие" зависимости (с помощью deborphan)
sudo apt install deborphan
deborphan
autoremove
удаляет неиспользуемые зависимостиclean
освобождает место, очищая кэшdeborphan
ищет библиотеки без владельцевPlease open Telegram to view this post
VIEW IN TELEGRAM
Linux сам по себе безопасная система, но небольшие улучшения могут значительно повысить её защиту. Эти команды и практики помогут вам укрепить систему.
# Обновить пакеты и установить критические исправления
sudo apt update && sudo apt upgrade
# Включить автоматическую установку обновлений безопасности
sudo apt install unattended-upgrades
sudo dpkg-reconfigure unattended-upgrades
# Установить и настроить брандмауэр UFW
sudo apt install ufw
sudo ufw enable
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow ssh
# Проверить активные сетевые соединения
sudo lsof -i -P -n | grep LISTEN
# Проверить наличие rootkit'ов
sudo apt install rkhunter
sudo rkhunter --check
unattended-upgrades
автоматически ставит обновленияufw
защищает от несанкционированного доступаrkhunter
помогает находить потенциальные угрозыPlease open Telegram to view this post
VIEW IN TELEGRAM
Со временем Linux-система может загружаться медленнее из-за лишних сервисов. Эти команды помогут проанализировать и ускорить процесс загрузки.
# Посмотреть общее время загрузки системы
systemd-analyze
# Показать список сервисов и их время загрузки
systemd-analyze blame
# Проверить, какие службы запускаются при старте
systemctl list-unit-files --state=enabled
# Отключить ненужный сервис
sudo systemctl disable имя_сервиса
# Установить задержку старта для тяжёлого сервиса
sudo systemctl edit имя_сервиса
# В открывшемся файле добавить:
# [Service]
# ExecStartPre=/bin/sleep 30
systemd-analyze
показывает время загрузки системыsystemctl
позволяет отключать или откладывать запуск лишних службPlease open Telegram to view this post
VIEW IN TELEGRAM
🕵️ Скрытые процессы и rootkits: как найти невидимку в Linux
Иногда
Вот как найти спрятанное👇
🔍 1. chkrootkit — проверка на известные rootkit'ы
📌 Ищет признаки заражения, подмену системных утилит, скрытые процессы, ловушки ядра.
🛡 2. rkhunter — глубокий аудит системы
📌 Проверяет бинарники, конфиги, права, подозрительные изменения.
🫥 3. unhide — находим скрытые процессы
📌 Сравнивает процессы в
🧩 4. auditctl — аудит системных вызовов
📌 Ловит каждый
🧠 Что делать, если ps и top молчат, а диск, сеть и CPU загружены?
✅ Смотри
✅ Используй
✅ Сравни
✅ Запусти live-дистрибутив и просканируй систему снаружи
😎 PyLinux | #linux #security
Иногда
ps
, top
и даже htop
не показывают зловредный процесс, хотя ты точно знаешь — он где-то сидит. Вот как найти спрятанное
sudo apt install chkrootkit
sudo chkrootkit
sudo apt install rkhunter
sudo rkhunter --check
sudo apt install unhide
sudo unhide proc
sudo unhide sys
/proc
, syscalls и ps
. Помогает, если ps
не показывает, но процесс явно есть.sudo apt install auditd
sudo auditctl -a exit,always -F arch=b64 -S execve
execve
, даже если процесс мгновенно скрывается. Идеально для отлова аномалий./proc
, ищи "дырки" в PID
lsof
, netstat
, ss
— они могут показать процессы, которых нет в ps
/bin/ps
с версией из пакета (debsums
, rpm -V
) Please open Telegram to view this post
VIEW IN TELEGRAM
Если система начала тормозить — возможно, какие-то процессы чрезмерно грузят процессор. Эти команды помогут быстро выявить и устранить нагрузку.
# Топ процессов по загрузке CPU
ps -eo pid,comm,%cpu --sort=-%cpu | head
# Запуск интерактивного мониторинга
top
htop # Более удобный интерфейс (если установлен)
# Убить процесс с высокой нагрузкой по PID
kill -9 <PID>
# Ограничить нагрузку от процесса (через nice)
nice -n 10 командa
ps
+ sort
быстро выявляют топовые процессыtop
и htop
позволяют следить в реальном времениnice
— задаёт приоритет и снижает нагрузкуPlease open Telegram to view this post
VIEW IN TELEGRAM
Если система начала тормозить, возможно, некоторые процессы потребляют слишком много оперативной памяти. Эти команды помогут выявить и устранить проблему.
# Показать использование памяти в удобочитаемом формате
free -h
# Найти топ процессов по потреблению памяти
ps -eo pid,comm,%mem --sort=-%mem | head
# Запуск интерактивного мониторинга памяти
htop # Более удобный интерфейс (если установлен)
# Очистка кэша памяти (не рекомендуется на рабочих серверах)
sudo sync; sudo sysctl -w vm.drop_caches=3
# Перезапустить службу, если она потребляет слишком много памяти
sudo systemctl restart имя_службы
free -h
— показывает текущую загрузку памятиps
позволяет быстро выявить "прожорливые" процессыhtop
показывает потребление в реальном времениPlease open Telegram to view this post
VIEW IN TELEGRAM
Удалил
rm important.txt
и понял, что это был не тот файл? Вот что можно сделать, пока диск не перезаписан Чем больше ты используешь диск, тем выше шанс, что данные будут перезаписаны.
Не копируй, не устанавливай, не сохраняй ничего в ту же директорию.
—
extundelete
(только для ext3/ext4)umount /dev/sdX1
extundelete /dev/sdX1 --restore-file path/to/important.txt
—
photorec
(работает даже без имён)sudo photorec
—
testdisk
— если потерял весь разделsudo testdisk
send2trash
)Попробуй посмотреть в корзине:
~/.local/share/Trash/files/
from send2trash import send2trash
send2trash("important.txt")
extundelete
, photorec
, testdisk
— must-havesend2trash
, особенно для файлов пользователяPlease open Telegram to view this post
VIEW IN TELEGRAM
Иногда файлы с неправильными правами доступа могут стать причиной утечки данных или эксплойта. Эти команды помогут выявить потенциально небезопасные файлы и директории.
# Найти файлы с правами на запись для всех пользователей
find / -type f -perm -o+w 2>/dev/null
# Найти исполняемые файлы в домашних каталогах пользователей
find /home -type f -perm -u+x 2>/dev/null
# Проверить наличие SUID-бит у файлов (возможные точки эскалации привилегий)
find / -perm /4000 -type f 2>/dev/null
# Найти файлы с неожиданно широкими правами доступа (777)
find / -type f -perm 0777 2>/dev/null
# Проверить владельцев и права на критичные системные файлы
ls -l /etc/passwd /etc/shadow /etc/sudoers
find
помогает искать файлы с потенциально небезопасными правамиls -l
позволяет проверить важные системные файлы на наличие аномалийPlease open Telegram to view this post
VIEW IN TELEGRAM
Со временем на сервере или рабочей машине могут скапливаться дубликаты файлов, особенно в папках с резервными копиями или медиа. Эти команды помогут выявить и удалить дубликаты, освобождая место на диске.
# Найти дубликаты файлов по хешу (SHA256)
find /path/to/dir -type f -exec sha256sum {} + | sort | uniq -w 64 -d
# Найти дубликаты с помощью fdupes (если установлен)
sudo apt install fdupes
fdupes -r /path/to/dir
# Найти дубликаты изображений по содержимому (с помощью findimagedupes)
sudo apt install findimagedupes
findimagedupes /path/to/images
# Очистка найденных дубликатов с подтверждением
fdupes -rd /path/to/dir
# Вывод статистики о дубликатах по размеру
find /path/to/dir -type f -exec du -h {} + | sort -h | uniq -D -w 10
find + sha256sum
позволяет найти дубликаты по контрольным суммамfdupes
предлагает автоматизацию поиска и удаленияfindimagedupes
полезен для поиска похожих изображенийPlease open Telegram to view this post
VIEW IN TELEGRAM
Если вы анализируете сетевой трафик, логи или входы в систему, может быть полезно узнать, откуда происходят подключения. Эти команды позволяют определять географическое расположение IP-адресов прямо из терминала.
# Установить утилиту geoiplookup
sudo apt install geoip-bin
# Определить страну по IP
geoiplookup 8.8.8.8
# Установить более точную версию с поддержкой города (через geoipupdate)
sudo apt install geoipupdate
sudo geoipupdate # обновление базы
# Использовать сервис ipinfo.io (через curl)
curl ipinfo.io/8.8.8.8
# Получить только страну через ipinfo.io
curl -s ipinfo.io/8.8.8.8/country
geoiplookup
позволяет быстро определить страну по IPcurl ipinfo.io
даёт подробную информацию: город, регион, провайдерPlease open Telegram to view this post
VIEW IN TELEGRAM
С ростом числа автоматических задач в cron можно случайно настроить дублирующиеся или конфликтующие задания. Эти команды помогут выявить такие случаи и навести порядок в расписании.
# Показать текущие задания для всех пользователей
for user in $(cut -f1 -d: /etc/passwd); do
echo "🧑💻 Задания пользователя: $user"
crontab -l -u "$user" 2>/dev/null
done
# Найти повторы в crontab текущего пользователя
crontab -l | sort | uniq -d
# Проверить системный cron (например, /etc/crontab)
cat /etc/crontab
# Найти скрипты, вызываемые в cron чаще всего
grep -hr /etc/cron* | awk '{print $6}' | sort | uniq -c | sort -nr | head
# Проверка синтаксиса cron-задания (через crontab.guru)
# (пример через браузер)
xdg-open "https://crontab.guru/#*/5_*_*_*_*"
crontab -l
показывает все задания пользователяuniq -d
выявляет дублирующиеся строкиPlease open Telegram to view this post
VIEW IN TELEGRAM
Если система начинает тормозить или заканчивается место, важно быстро понять, какие разделы и папки занимают больше всего. Эти команды помогут эффективно проанализировать дисковое пространство.
# Показать общее использование всех смонтированных разделов
df -h
# Показать размер каждой папки в корне
du -h --max-depth=1 / | sort -h
# Найти самые большие директории в /home
du -sh /home/* | sort -hr | head
# Использовать интерактивный анализатор ncdu
sudo apt install ncdu
ncdu /
# Найти файлы больше 1 ГБ
find / -type f -size +1G -exec ls -lh {} \; 2>/dev/null | awk '{ print $9 ": " $5 }'
df -h
показывает общую загрузку по разделамdu
помогает найти "тяжёлые" каталогиncdu
— удобный инструмент для интерактивного анализаfind -size
выявляет самые крупные файлыPlease open Telegram to view this post
VIEW IN TELEGRAM
Со временем в системе скапливаются пустые директории — после удаления пакетов, распаковки архивов или неудачных установок. Эти команды помогут находить и при необходимости удалять такие папки.
# Найти все пустые папки в системе (может занять время)
find / -type d -empty 2>/dev/null
# Найти пустые директории в домашнем каталоге
find ~/ -type d -empty
# Удалить все пустые директории в указанной папке
find /path/to/dir -type d -empty -delete
# Посчитать количество пустых папок в каталоге
find /path/to/dir -type d -empty | wc -l
# Найти только "глубоко пустые" каталоги (вложенные без файлов)
find /path/to/dir -depth -type d -empty
find -empty
помогает быстро выявить пустые директории-delete
автоматически очищает мусорPlease open Telegram to view this post
VIEW IN TELEGRAM
🔆 Управление яркостью и питанием экрана в Linux
Если вы работаете с ноутбуком или энергоэффективной рабочей станцией, управление яркостью и питанием экрана — важный способ продлить срок службы батареи и снизить нагрузку на глаза.
📌 Полезные команды
🟢
🟢
🗣 Эти команды подойдут тем, кто хочет контролировать поведение экрана вручную или автоматизировать энергосбережение.
😎 PyLinux | #linux
Если вы работаете с ноутбуком или энергоэффективной рабочей станцией, управление яркостью и питанием экрана — важный способ продлить срок службы батареи и снизить нагрузку на глаза.
# Показать текущий уровень яркости
cat /sys/class/backlight/*/brightness
# Показать максимальный уровень яркости
cat /sys/class/backlight/*/max_brightness
# Установить яркость вручную (например, 50%)
echo 50 | sudo tee /sys/class/backlight/*/brightness
# Установить экран в спящий режим после 5 минут бездействия
xset s 300
# Полностью отключить экран после 10 минут простоя
xset dpms 0 0 600
# Немедленно выключить экран вручную
xset dpms force off
/sys/class/backlight/
позволяет напрямую управлять уровнем подсветкиxset
управляет экраном и таймерами энергосбереженияPlease open Telegram to view this post
VIEW IN TELEGRAM
Когда вы синхронизируете резервные копии, разворачиваете новые версии проекта или проверяете содержимое внешнего диска, важно быстро и точно сравнить две папки. Эти команды помогут выявить отличия.
# Сравнить два каталога побайтово (без рекурсии)
cmp -s dir1/file dir2/file && echo "✔️ Совпадают" || echo "❌ Различия"
# Рекурсивное сравнение двух директорий
diff -qr /path/to/dir1 /path/to/dir2
# Сравнить содержимое директорий с учётом структуры и размеров
rsync -avn /dir1/ /dir2/
# Найти файлы, которых нет во второй папке
comm -23 <(ls dir1 | sort) <(ls dir2 | sort)
# Использовать fdupes для поиска одинаковых файлов в двух местах
fdupes -r /dir1 /dir2
# Визуальное сравнение в терминале (если установлен dirdiff)
sudo apt install dirdiff
dirdiff /path/to/dir1 /path/to/dir2
diff -qr
показывает все отличия файлов и поддиректорийrsync -avn
безопасно симулирует копирование и выявляет отличияcomm
, cmp
, fdupes
— удобны для более точечного анализаPlease open Telegram to view this post
VIEW IN TELEGRAM
Со временем в системе накапливаются временные, кэшированные и устаревшие файлы, которые занимают дисковое пространство и могут замедлять работу. Эти команды помогут безопасно их находить и удалять.
# Очистить системный кэш APT
sudo apt clean && sudo apt autoclean
# Найти и удалить файлы во временных папках старше 7 дней
sudo find /tmp -type f -atime +7 -delete
# Найти лог-файлы больше 100МБ
sudo find /var/log -type f -size +100M
# Очистить старые архивы логов
sudo journalctl --vacuum-time=10d
# Использовать BleachBit в терминале (если установлен)
sudo apt install bleachbit
sudo bleachbit --clean system.cache system.tmp system.logs
# Анализировать и очищать мусор вручную с помощью ncdu
sudo apt install ncdu
sudo ncdu /
apt clean
и journalctl --vacuum
освобождают место, не удаляя важногоfind
позволяет точно задать условия для удаления старых или тяжёлых файловncdu
и BleachBit
— удобны для ручного контроля и визуального анализаPlease open Telegram to view this post
VIEW IN TELEGRAM