Главная / Linux

🐧 Linux

Процессы, диски и файловые системы, пользователи и группы, файлы и хэши.

⚙️Процессы

  • все процессы ps aux
  • с полной командной строкой ps auxww
  • поиск по строке ps aux | grep [s]tring
  • дерево процессов текущего юзера ps -u $(id -u) f
  • родительский PID процесса ps -o ppid= -p pid
  • завершить процесс kill pid
  • принудительно, без шанса на очистку kill -9 pid
  • убить по имени процесса pkill "name"
  • убить по полной команде pkill -f "command"
  • найти PID по имени pgrep -fl "name"
  • запустить с пониженным приоритетом nice -n 10 command
  • изменить приоритет уже запущенного renice --priority 3 -p pid
  • не завершать при закрытии терминала nohup command &

💽Диски и файловые системы

  • размер директории с подпапками du -h dir
  • суммарный размер du -sh dir
  • всё крупнее порога du -ah --threshold 1G dir
  • использование дисков df -h
  • свободные inode df -i
  • список накопителей деревом lsblk
  • с информацией о ФС и UUID lsblk -f
  • все смонтированные ФС mount
  • примонтировать директорию в другую mount --bind src dst
  • смонтировать всё из /etc/fstab mount -a
  • список разделов sudo fdisk -l
  • интерактивное управление разделами sudo fdisk /dev/sdX

👥Пользователи и группы

  • новый пользователь с домашней папкой sudo useradd -m -s /bin/bash user
  • сразу с дополнительными группами sudo useradd -G group1,group2 user
  • добавить в группу без потери старых sudo usermod -aG group user
  • заблокировать/разблокировать аккаунт sudo usermod -L user / -U user
  • сменить домашнюю директорию sudo usermod -m -d /new/home user
  • новая группа sudo groupadd group
  • сменить пароль пользователя sudo passwd user
  • статус пароля passwd -S

⏰systemd timers

  • список всех таймеров и след. срабатывания systemctl list-timers
  • включая неактивные systemctl list-timers --all
  • запустить юнит, привязанный к таймеру, сейчас systemctl start unit.service
  • статус конкретного таймера systemctl status unit.timer
  • пример юнита: OnCalendar OnCalendar=*-*-* 03:00:00
  • пример юнита: через N минут после загрузки OnBootSec=15min

🔬/proc — заглянуть внутрь ядра

  • командная строка процесса cat /proc/pid/cmdline
  • открытые файловые дескрипторы ls -l /proc/pid/fd
  • карта памяти процесса cat /proc/pid/maps
  • переменные окружения процесса cat -A /proc/pid/environ
  • общая информация о памяти cat /proc/meminfo
  • загрузка CPU по ядрам cat /proc/stat
  • параметры ядра во время выполнения sysctl -a
  • изменить параметр ядра на лету sudo sysctl -w net.ipv4.ip_forward=1

📦Пакетные менеджеры

  • обновить индекс + систему (Debian/Ubuntu) sudo apt update && sudo apt upgrade
  • установить/удалить пакет sudo apt install|remove package
  • какой пакет владеет файлом dpkg -S /path/to/file
  • обновить систему (Fedora/RHEL) sudo dnf upgrade
  • какой пакет владеет файлом (RPM) rpm -qf /path/to/file
  • обновить систему (Arch) sudo pacman -Syu
  • поиск пакета (Arch) pacman -Ss name

💾Swap

  • текущее использование swap swapon --show
  • создать файл подкачки 2GB sudo fallocate -l 2G /swapfile
  • права + разметка под swap sudo chmod 600 /swapfile && sudo mkswap /swapfile
  • включить sudo swapon /swapfile
  • выключить sudo swapoff /swapfile
  • насколько активно используется (0-100) cat /proc/sys/vm/swappiness

🗂️Файлы и хэши

  • подробная информация о файле stat file
  • только права в восьмеричном виде stat -c "%a %n" file
  • тип файла без доверия к расширению file file
  • MIME-тип file -i file
  • дерево директорий на 2 уровня tree -L 2
  • только директории tree -d
  • контрольная сумма файла md5sum file
  • проверка по списку сумм md5sum -c file.md5
  • sha256 файла sha256sum file
  • base64 файла base64 file
  • декодирование base64 base64 -d file
  • hex-дамп файла xxd file
  • обратно из hex в бинарник xxd -r -p file out