File Managment
Система и процессы
(Управление процессами, мониторинг, логи, диски)
ps - просмотр всех запущенных процессов в системе. (a = процессы всех пользователей, не только текущего;
u = показать владельца процесса и подробную информацию - расход CPU, памяти; x = показать фоновые процессы;
-u = показать процессы конкретного пользователя; -p = показать конкретный процесс по PID)
Пример 1: ps aux
Пример 2: ps -u k.mmax
Пример 3: ps -p 1234
lsof - просмотр файлов и ресурсов, открытых процессами. (-i = TCP и UDP; -i TCP = только TCP; -i UDP = только UDP; -n = ip адреса;
-i :PORT = по конкретному порту; -p = по PID; -u = конкретного пользователя; -P = не преобразовывать имена портов в имена сервисов)
Пример 1: lsof -i -P
Пример 2: lsof -i TCP
Пример 3: lsof -i :443
Пример 4: lsof -i UDP:443
Пример 5: lsof -p 1234
Пример 6: lsof -u k.mmax
kill - завершение процесса по PID. (-15 = завершить корректно, SIGTERM; -9 = завершить принудительно, SIGKILL)
Пример: kill -9 5000
pkill - завершение процессов по имени или другим параметрам. (-15 = завершить корректно, SIGTERM; -9 = завершить принудительно, SIGKILL;
-f = завершить все процессы по полной командной строке; -u = завершить все процессы конкретного пользователя)
(Примечание: полная командная строка - это вся команда, которой был запущен процесс, включая аргументы)
Пример 1: pkill -15 nginx
Пример 2: pkill -f "python3 loop.py"
Пример 3: pkill -u k.mmax
pgrep - поиск процессов по имени или другим параметрам. (-f = искать по полной командной строке; -u = искать для конкретного пользователя;
-l = показать имя процесса вместе с PID; -a = показать полную командную строку процесса вместе с PID)
Пример 1: pgrep nginx
(выведет PID процессов с именем nginx)
Пример 2: pgrep -f "python3"
(выведет PID процессов, у которых в полной командной строке есть python3)
Пример 3: pgrep -u k.mmax
(выведет PID процессов пользователя k.mmax)
Пример 4: pgrep -l nginx
(выведет PID и имя процессов nginx)
Пример 5: pgrep -a nginx
(выведет PID и полную командную строку процессов nginx)
systemctl - управление системными сервисами (нет на macOS). Обычно требует sudo
start = запустить
stop = остановить
restart = перезапустить
reload = перечитать конфигурацию сервиса
daemon-reload = перечитать конфигурацию всех юнитов systemd
status = статус
enable = установить автозапуск при загрузке системы
disable = отключить автозапуск при загрузке системы
is-enabled = проверить включен ли автозапуск
is-active = проверить, активен ли сервис
list-units --type=service = cписок всех загруженных и активных сервисов
list-units --type=service --all = список всех сервисов
Пример 1: sudo systemctl start nginx
Пример 2: sudo systemctl reload nginx
Пример 3: systemctl list-units --type=service
journalctl - просмотр системных логов (нет на macOS). Обычно требует sudo. (-f = обновлять в реальном времени;
-n = показать сколько-то строк с конца; -u = показать логи указанного systemd-сервиса)
Пример: journalctl -f -u nginx -n 20
screen - управление терминальными сессиями. (-d = не подключаться к сессии сразу, detach; -m = принудительно создать новую сессию;
-S = указать имя сессии; -ls = показать список существующих сессий; -r = подключиться к отсоединенной сессии; -X = выполнить
команду управления самой сессией, без подключения к ней; -X stuff = передать текст в терминал внутри сессии, без подключения к ней)
Пример 1: screen -dmS minecraft /home/kmmax/paperMC/start.sh
(принудительно создаем новую отсоединенную сессию с именем minecraft и запускаем в ней скрипт start.sh)
Пример 2: screen -ls
(выведет в консоль список всех сессий)
Пример 3: screen -r minecraft
(подключаемся к отсоединенной сессии с именем minecraft)
Пример 4: screen -S minecraft -X quit
(выполняем команду управления сессией quit, которая завершает сессию minecraft без входа в нее)
Пример 5: screen -S minecraft -X stuff "gamemode creative kmmax"
(выполняем команду gamemode creative kmmax внутри терминала сессии minecraft, не подключаясь к ней)
df - занятость дисков. (-h = человеко-читаемый формат)
Пример: df -h
du - размер файла или директории. (-h = человеко-читаемый формат; -s = только итоговый размер, для директорий;
-a = показать файлы в выводе, по умолчанию только директории; -d = максимальная глубина отображения директорий)
Пример 1: du -ha ~/Documents
Пример 2: du -h -d 2 ~/Projects
free - использование оперативной памяти и swap (нет на macOS). (-h = человеко-читаемый формат)
Пример: free -h
uname - получить информацию о системе. (-a = все данные; -s = имя ядра; -r = версия ядра;
-n = имя компьютера в сети; -m = архитектура машины; -o = имя операционной системы)
Пример: uname -a
uptime - показать время работы системы, количество пользователей и среднюю нагрузку
Пример: uptime
top - интерактивный мониторинг процессов в реальном времени (нагрузка, память, CPU)
Пример: top
btop - интерактивный мониторинг процессов в реальном времени c графическим интерфейсом
Пример: btop
watch - периодическое выполнение команды с обновлением вывода через заданный интервал.
(-n = интервал обновления)
Пример: watch -n 0.1 "ss -tulpn"
who - кто залогинен в систему (кратко: время входа, имя пользователя, терминал)
Пример: who
w - кто залогинен в систему и что делает (подробно: время входа, нагрузка, активность)
Пример: w
source - загрузить и выполнить команды из файла в текущей сессии shell
Пример: source ./start.sh
crontab - утилита для управления расписанием задач в системе (не рекомендуется для macOS)
(-l = список задач; -e = редактирование; -r = удалить все задачи; -u = задачи другого пользователя)
Пример 1: crontab -e
(откроет задачи текущего пользователя для редактирования)
Пример 2: sudo crontab -u k.mmax -l
(откроет список существующих задач пользователя k.mmax)