С ростом числа автоматических задач в 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
👍11
Если система начинает тормозить или заканчивается место, важно быстро понять, какие разделы и папки занимают больше всего. Эти команды помогут эффективно проанализировать дисковое пространство.
# Показать общее использование всех смонтированных разделов
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
👍12🔥2
Со временем в системе скапливаются пустые директории — после удаления пакетов, распаковки архивов или неудачных установок. Эти команды помогут находить и при необходимости удалять такие папки.
# Найти все пустые папки в системе (может занять время)
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
👍13❤🔥1🔥1
🔆 Управление яркостью и питанием экрана в 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
🔥11❤🔥1
Когда вы синхронизируете резервные копии, разворачиваете новые версии проекта или проверяете содержимое внешнего диска, важно быстро и точно сравнить две папки. Эти команды помогут выявить отличия.
# Сравнить два каталога побайтово (без рекурсии)
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
👍11
Со временем в системе накапливаются временные, кэшированные и устаревшие файлы, которые занимают дисковое пространство и могут замедлять работу. Эти команды помогут безопасно их находить и удалять.
# Очистить системный кэш 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
👍14
Иногда нужно быстро узнать, какие устройства подключены, сколько ядер у процессора, какой установлен модуль памяти или какая видеокарта используется. Эти команды помогут получить максимум информации из системы без установки сторонних утилит.
# Общая информация о системе
uname -a
hostnamectl
# Информация о CPU
lscpu
# Информация о памяти
free -h
cat /proc/meminfo
# Информация об установленных физических модулях памяти
sudo dmidecode --type memory
# Информация о дисках и разделах
lsblk
df -h
# Информация о видеокарте
lspci | grep -i vga
# Список USB-устройств
lsusb
# Подробная информация о блоках устройств
sudo lshw -short
lscpu
, lsblk
, lsusb
дают краткую системную информациюdmidecode
помогает узнать конфигурацию железа — особенно полезно на серверахlshw
— универсальный инструмент для диагностики оборудованияPlease open Telegram to view this post
VIEW IN TELEGRAM
❤🔥9👍4
Когда на системе установлено несколько версий Python, Java, gcc или других утилит, важно уметь управлять тем, какая версия используется по умолчанию. Для этого в Linux есть мощный инструмент —
update-alternatives
.# Показать текущую настройку альтернативы для java
sudo update-alternatives --display java
# Добавить новую альтернативу (например, для Python 3.11)
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.11 1
# Переключиться между доступными версиями python
sudo update-alternatives --config python
# Удалить альтернативу
sudo update-alternatives --remove python /usr/bin/python3.11
# Просмотреть все управляемые альтернативы
sudo update-alternatives --get-selections
update-alternatives
помогает централизованно управлять симлинками для CLI-инструментов/usr/bin
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8👍3
systemd-journald
ведёт централизованный журнал событий ядра и пользователей. Ниже — команды, которые помогут быстро находить нужную информацию, следить за сервисами и управлять объёмом логов.# Показать журнал текущей загрузки
journalctl -b
# Вывести последние 100 строк общего журнала
journalctl -n 100
# Показать логи конкретного сервиса (например, nginx)
journalctl -u nginx.service
# Следить за событиями сервиса в реальном времени
journalctl -f -u ssh
# Фильтровать только ошибки и критические сообщения за текущую загрузку
journalctl -p err..alert -b
# Просмотреть журнал предыдущей загрузки
journalctl -b -1
# Ограничить общий размер журналов до 500 МБ
sudo journalctl --vacuum-size=500M
# Удалить записи старше 10 дней
sudo journalctl --vacuum-time=10d
journalctl -b/-1
разделяет логи по загрузкам — удобно искать сбои после перезагрузки-u
и -f
позволяют дебажить сервисы в реальном времени-p
фильтрует сообщения по уровню важности, убирая «шум»--vacuum-*
помогают контролировать размер и «возраст» журналов без отключения логированияPlease open Telegram to view this post
VIEW IN TELEGRAM
👍11❤🔥2
Контроль над sudo — важный аспект безопасности. Ниже — полезные команды для анализа и настройки привилегий суперпользователя.
# Показать всех пользователей в группе sudo
getent group sudo
# Проверить, какие команды разрешены текущему пользователю
sudo -l
# Найти все попытки использования sudo (включая неудачные)
grep 'sudo' /var/log/auth.log
# Показать конфигурацию sudo и дополнительные правила
sudo cat /etc/sudoers
sudo ls /etc/sudoers.d/
# Проверить конфигурацию sudoers на ошибки
sudo visudo -c
# Добавить правило для пользователя: перезапуск nginx без пароля
echo 'username ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart nginx' | sudo tee /etc/sudoers.d/nginx-restart
sudo -l
помогает понять, какие команды доступныvisudo -c
защищает от ошибок при редактировании/etc/sudoers.d/
— удобное место для изолированных политик доступаPlease open Telegram to view this post
VIEW IN TELEGRAM
👍9❤🔥3
Зомби-процессы (defunct) — это завершённые процессы, чьи родительские процессы не вызвали
wait()
, из-за чего они остаются в таблице процессов. Ниже — набор команд, чтобы находить и анализировать такие процессы.# Найти все зомби-процессы
ps aux | awk '{ if ($8 == "Z") print $0 }'
# Упрощённый вывод PID и команды
ps -eo pid,ppid,state,cmd | grep '[Zz]'
# Посчитать количество зомби-процессов
ps aux | awk '{ if ($8 == "Z") count++ } END { print "🧟 Зомби-процессов:", count+0 }'
# Найти родительские процессы зомби
ps -eo ppid,state,cmd | awk '$2 == "Z" { print "PPID:", $1 }' | sort | uniq
# Отобразить дерево процессов с метками состояний
pstree -p -s | grep defunct
# Альтернатива через top или htop
top -b -n 1 | grep Z
htop # и фильтр F3 → defunct
# Убить родительский процесс, если это безопасно
sudo kill -HUP <PPID>
ps
, awk
и pstree
— эффективные инструменты анализаtop
и htop
показывают общее количество зомби-процессов в заголовкеPlease open Telegram to view this post
VIEW IN TELEGRAM
👍12
Мониторинг активных подключений помогает выявлять неожиданные сетевые активности, открытые порты, потенциальные утечки или вредоносную активность. Ниже — полезный набор команд для анализа сетевых соединений и сокетов.
# Показать все открытые TCP/UDP соединения и прослушиваемые порты
ss -tuln
# Отобразить открытые соединения с отображением PID/имён процессов
sudo ss -tunlp
# Аналог через netstat (если установлен)
sudo netstat -tulnp
# Показать количество установленных входящих соединений по портам
ss -Htan state established | awk '{print $4}' | cut -d: -f2 | sort | uniq -c | sort -nr
# Вывести статистику соединений по состояниям
ss -s
# Показать все сокеты, открытые текущим пользователем
lsof -i -u $(whoami)
# Найти процессы, открывшие порт 80
sudo lsof -i :80
# Мониторинг входящих соединений в реальном времени
watch -n 1 "ss -s"
# Узнать внешний IP-адрес системы
curl ifconfig.me
ss
— современный инструмент анализа сетевых соединенийlsof
показывает, какие процессы используют сетьnetstat
пригодится на старых системахPlease open Telegram to view this post
VIEW IN TELEGRAM
❤🔥8👍5
Иногда нужно временно отключить тачпад, изменить поведение кнопок мыши или включить "tap-to-click". Особенно полезно для ноутбуков, серверов с X11, или в случае проблем с внешними устройствами.
# Показать список всех устройств ввода (мыши, тачпады и др.)
xinput list
# Узнать ID устройства и его свойства
xinput list-props <ID>
# Отключить устройство (например, тачпад)
xinput disable <ID>
# Включить устройство обратно
xinput enable <ID>
# Включить "тап" по тачпаду как клик (если поддерживается)
xinput set-prop <ID> "libinput Tapping Enabled" 1
# Назначить другое поведение для кнопок мыши (например, инвертировать)
xinput set-button-map <ID> 3 2 1
# Постоянное применение параметров через ~/.xprofile или ~/.xinitrc
echo 'xinput set-prop <ID> "libinput Tapping Enabled" 1' >> ~/.xprofile
xinput
работает в окружениях X11 и помогает управлять вводомPlease open Telegram to view this post
VIEW IN TELEGRAM
👍15
Настройка прав доступа — важная часть безопасности и организации данных в системе. Ниже — практичные команды для контроля над доступом, пользователями и группами.
# Показать права доступа к файлу/папке
ls -l /path/to/file
# Изменить владельца файла
sudo chown username /path/to/file
# Изменить владельца и группу
sudo chown username:groupname /path/to/file
# Изменить права доступа (например, rw-r--r--)
chmod 644 /path/to/file
# Сделать скрипт исполняемым
chmod +x myscript.sh
# Запретить доступ к каталогу всем, кроме владельца
chmod 700 /my/secret/dir
# Установить одинаковые права на все файлы внутри каталога
chmod -R 644 /my/data
# Назначить владельца и права для новых файлов в каталоге через umask
umask 027
# Проверить текущую маску прав
umask
# Создать группу и добавить пользователя
sudo groupadd editors
sudo usermod -aG editors username
# Разрешить группе запись в каталог
sudo chown -R :editors /project
sudo chmod -R 775 /project
chmod
, chown
и umask
— основные инструменты управления правами-R
облегчают массовую настройкуumask
влияет на создаваемые файлы по умолчаниюPlease open Telegram to view this post
VIEW IN TELEGRAM
👍11❤🔥1
В Linux каждая программа использует файловые дескрипторы (FD) — не только для файлов, но и сокетов, пайпов, устройств. Переполнение лимита может привести к сбоям. Эти команды помогут понять, кто сколько ресурсов потребляет и где «течёт».
# Посмотреть лимиты текущего пользователя
ulimit -a
# Узнать общий лимит открытых файлов
cat /proc/sys/fs/file-max
# Сколько открытых файлов в системе сейчас
cat /proc/sys/fs/file-nr
# Найти процессы с наибольшим числом открытых файлов
sudo lsof | awk '{ print $2 }' | sort | uniq -c | sort -nr | head
# Посмотреть все открытые файлы конкретного процесса (по PID)
ls /proc/<PID>/fd
# Вывести число открытых дескрипторов по каждому процессу
for pid in $(ls /proc | grep -E '^[0-9]+$'); do
echo -n "$pid: "; ls /proc/$pid/fd 2>/dev/null | wc -l;
done | sort -nk2 | tail
# Найти утечку файловых дескрипторов (много открытых одного и того же файла)
sudo lsof | awk '{print $9}' | sort | uniq -c | sort -nr | head
# Временное увеличение лимита для сессии
ulimit -n 65535
# Постоянное изменение лимита (в /etc/security/limits.conf):
# username soft nofile 65535
# username hard nofile 65535
lsof
помогает диагностировать утечки и узкие местаulimit
управляет лимитами на уровне пользователя и сессииPlease open Telegram to view this post
VIEW IN TELEGRAM
👍10