diff --git a/docs/linux/Команды.md b/docs/linux/Команды.md index 1650b9f..03a1a47 100644 --- a/docs/linux/Команды.md +++ b/docs/linux/Команды.md @@ -2,15 +2,10 @@ ### Настройка сервера - `groups username` - группы пользователя - - `addgroup ` - добавить группу - - `adduser `- добавить пользователя - - `usermod -aG ` - добавить пользователя в группу без удаления его из других групп - - `su -`: если добавить - (или --login), это переключит вас на пользователя root и загрузит окружение (все переменные окружения будут инициализированы для пользователя root), как если бы вы вошли в систему как root - - `lsb_release -a` или `hostnamectl` - версия ОС (и не только) @@ -69,7 +64,7 @@ APT работает поверх более низкоуровневого ин - `iptables -L -v` - подробный вывод - `iptables -L --line-numbers` - `iptables -L -t nat` - позволяет указать конкретную таблицу для просмотра. Например, для просмотра правил NAT -??? tip "**ufw** - удобная надстройка над iptables" +??? tip "`**ufw**` - удобная надстройка над iptables" Чаще используют в Ubuntu и Debian ```bash # Включаем фаерволл @@ -149,27 +144,28 @@ APT работает поверх более низкоуровневого ин - `chown root:root /etc/hosts` - изменение владельца и группы - `ps -aux` - выводит список всех процессов с информацией о пользователях, загрузке, времени и командах - `ps -ef` - полная информация о процессах с идентификаторами владельцев +- `pstree` - дерево процессов +- `ps aux --sort=-%mem | head -n 10` - первые 10 процессов по потреблению памяти +- `kill -9 1234` - принудительное завершене процесса (1234 — PID процесса) - `top -o %CPU` - сортировка процессов по указанному полю (например, по CPU) - `shift + v` в top - процессы в древовидной структуре с отображением дочерних процессов - `1` - нагрузка на поток (логическое ядро) -- `kill -9 1234` - принудительное завершене процесса (1234 — PID процесса) -- `df -h` - информация о файловых системах -- `df -i` - иноды -- `du` - отображение размера файлов и каталогов - - `-s` - отображает только итоговый размер - - `--max-depth=1` - выводит размер каталога и его подкаталогов -- `du -sh /tml` - размер директории -- `ifconfig` - информация о сетевых интерфейсах -- `ss -tulpn` - информация о сетевых соединениях -- `ping` - проверка доступности хоста -- `traceroute` - через какие маршрутизаторы проходит пакет до хоста -- `nslookup` - информация о DNS-сервере - - `useradd -m username` - добавление нового пользователя (`-m` - создание домашнего каталога) - `passwd username` - установка или изменение пароля пользователя - `usermod -aG username` - добавить пользователя в группу `sudo` - `groupadd developers` - создание новой группы +--- +- `ifconfig` - информация о сетевых интерфейсах +- `ss -tulpn` - информация о сетевых соединениях +- `ping` - проверка доступности хоста +- `traceroute` - через какие маршрутизаторы проходит пакет до хоста +- `nslookup`, `dig @ ` - инфа о DNS сервере +- `curl -Lv domain.ru` - получить html страницу +- `curl -v telnet://127.0.0.1:22` - доступность порта +- `tcpdump -i any port 9100 -nn` - пакеты через этот порт +--- - `tail -f /var/log/*` - логи (`-f` - обновление в реальном времени) +- `head` - как tail, но head - `journalctl` - утилита для просмотра логов служб, управляемых `systemd` - `-u ` - просмотр логов конкретной службы ```bash @@ -188,18 +184,23 @@ APT работает поверх более низкоуровневого ин - info (6): Информационные сообщения. - debug (7): Отладочные сообщения. - `journalctl -xe` - - x (или --catalog) — выводит дополнительные объяснения (аннотации) к некоторым сообщениям журнала. Это помогает понять детали ошибок или предупреждений, предлагая описания и возможные решения, если такие есть. + - x (или --catalog) — выводит дополнительные объяснения (аннотации) к некоторым сообщениям журнала, помогает понять детали ошибок или предупреждений, предлагая описания и возможные решения, если такие есть. - e (или --pager-end) — открывает журнал в режиме постраничного просмотра и сразу прокручивает его до конца, показывая самые последние записи. - +- `less -S` - не переносит на новую строку +- `dmesg -T` - логи ядра системы +- `/var/log/dmesg` - логи загрузки ядра (только *загрузки* ядра! dmesg - все логи ядра) +--- +- `df -h` - информация о дисках +- `df -i` - иноды +- `du` - отображение размера файлов и каталогов + - `-s` - отображает только итоговый размер + - `--max-depth=1` - выводит размер каталога и его подкаталогов +- `du -sh /tml` - размер директории - `smartctl -a /dev/sda` - смарт отчет диска, генерит сам диск - `free -m` - оперативная память - `cat /proc/meminfo` - подробно про память - `cat /proc/cpuinfo` - подробно про проц -- `traceroute` - путь пакетов от сервера к серверу (промежуточные маршрутизаторы) (`mtr` покажет путь в лайве) -- `nslookup`, `dig @ ` - инфа о DNS сервере -- `curl -Lv domain.ru` - получить html страницу -- `curl -v telnet://127.0.0.1:22` - доступность порта -- `tcpdump -i any port 9100 -nn` - пакеты через этот порт +--- - `tar` - работа с архивами - `-cvf` - создать архив - `-xvf` - извлечь архив @@ -209,42 +210,34 @@ APT работает поверх более низкоуровневого ин ``` - `tar -zxvf apache-activemq-6.1.3-bin.tar.gz -C /opt` - распаковать в каталог - `tar -zxvf apache-tomcat-9.0*tar.gz -C /opt/_Tomcat/application1-8080 --strip-components=1` - каталог apache-tomcat-9.0* не будет создан -- `dmesg -T` - логи ядра системы + ### Система - - `lsof` - Команда lsof (List Open Files) в Linux используется для отображения списка открытых файлов в системе. В Linux (и Unix-подобных системах) практически все является файлом, включая сетевые соединения и устройства. - `lsof` - просмотр всех открытых файлов - `lsof -u username` - файлы открытые конкретным пользователем - `lsof -p 1234` - поиска файлов открытых определённым процессом - `lsof -i :80` - соединения по конкретному порту - `lsof /dev/sda1` - файлы использующие определённое устройство или файловую систему - - `lsof | grep filename` - Если файл заблокирован и его нельзя удалить или переместить, `lsof` покажет, какой процесс его использует + - `lsof | grep ` - Если файл заблокирован и его нельзя удалить или переместить, `lsof` покажет, какой процесс его использует - `strace` - системные вызовы - +--- - `killall -s 9 ` - убивает все процессы в названием hello (`-s` - тип сигнала) - `w` - залогиненые пользователи и время `uptime` - `whoami` - имя залогиненного пользователя - `uptime` - сколько работает система без перезагрузки - `-s` - время запуска - `-p` - время работы системы - -- `less -S` - не переносит на новую строку - `reboot now` - перезагрузка системы - `shutdown now` - выключить компьютер - `watch "some command"` - переодически запускает команду - `lscpu` - информация о процессоре - `lspci` - информация об устройствах подключенных к pci шине -- `lsusb` +- `lsusb` - информация об usb-устройствах -- `/var/log/dmesg` - логи загрузки системы -- `pstree` - дерево процессов -- `/usr/lib/systemd` - директория с юнитами по умолчанию -- `ps aux --sort=-%mem | head -n 10` ### Разное - - `alt .` - перебирает последние аргументы из истории команд (`history`), если аргументов нет, то перебирает сами команды - `ctrl R` - поиск команд из `history` - ` !! ` @@ -266,6 +259,9 @@ APT работает поверх более низкоуровневого ин - `mkdir dir_{a..f}` - `cp -iv file1 dir1/file2` - (`-i`) спрашиваем будем ли перезаписывать - `cp -nv` - не перезаписывать +- `cp -a source_file destination_directory/` - Опция `-a` эквивалентна комбинации нескольких опций: `-d` (сохраняет символические ссылки), `-p` (сохраняет права доступа, владельца и временные метки), и `-r` (рекурсивно копирует каталоги). +- `cp -vu` - пропустить совпадающие файлы, а скопировать только файлы новее или отсутствующие +- `cp /etc/fstab{,.bkp}` == `cp /etc/fstab /etc/fstab.bkp` - `stat file` - Размер файла (Size): В байтах. - Тип файла: Обычный файл, каталог и т. д. @@ -276,12 +272,13 @@ APT работает поверх более низкоуровневого ин - Время изменения метаданных (Change): Когда были изменены права или метаданные файла. - Номер inode: Уникальный номер файла в файловой системе. --- - - `kill -l` - список возможных сигналов - -- `cp -a source_file destination_directory/` - Опция `-a` эквивалентна комбинации нескольких опций: `-d` (сохраняет символические ссылки), `-p` (сохраняет права доступа, владельца и временные метки), и `-r` (рекурсивно копирует каталоги). -- `cp -vu` - пропустить совпадающие файлы, а скопировать только файлы новее или отсутствующие - `/etc/passwd` - инфо о пользователях в системе +- `htop -p ` - процесс на таком-то порту +- `truncate -s 0 /var/log/messages` +--- +- `find / -name 2>/dev/null` +- `grep -A 10 <файл>` - вывести 10 строк после найденного совпадения ### Диски @@ -291,47 +288,33 @@ APT работает поверх более низкоуровневого ин - Полезно для диагностики, перед созданием или изменением разделов. - `lsblk` - показывает дерево всех подключенных устройств, их разделы, точки монтирования. (`-f` - для более детальной информации о файловых системах, `-p` - полные пути к устройствам, `-d` - показывает только диски, без разделов, `-J` - результат в виде json) - `cfdisk <устройство>` - команда для работы с разделами диска - - -- `mkfs.<тип файловой системы> <устройство>` - команда в Linux для создания файловой системы на разделе диска. Она форматирует указанный раздел с выбранной файловой системой. +- `mkfs.<тип файловой системы> <устройство>` - для создания файловой системы на разделе диска, форматирует указанный раздел с выбранной файловой системой - `/etc/fstab` - это файл конфигурации в Linux, который содержит информацию о том, какие файловые системы должны автоматически монтироваться при загрузке системы. +!!! tip "Про `**fstab**`" + Каждая строка в `/etc/fstab` описывает один файловый раздел и содержит следующие поля: + - Файл устройства (например, /dev/sda1 или UUID диска). + - Точка монтирования (например, /, /home, /mnt/data). + - Тип файловой системы (например, ext4, ntfs, swap). + - Опции монтирования (например, defaults, noatime, ro). + - Параметр для dump (обычно 0, определяет необходимость резервного копирования). + - Параметр для проверки на ошибки (fsck) (0 — не проверять, 1 — проверять при загрузке). -Каждая строка в `/etc/fstab` описывает один файловый раздел и содержит следующие поля: - -- Файл устройства (например, /dev/sda1 или UUID диска). -- Точка монтирования (например, /, /home, /mnt/data). -- Тип файловой системы (например, ext4, ntfs, swap). -- Опции монтирования (например, defaults, noatime, ro). -- Параметр для dump (обычно 0, определяет необходимость резервного копирования). -- Параметр для проверки на ошибки (fsck) (0 — не проверять, 1 — проверять при загрузке). - -Пример строки -``` -UUID=3b14dabe-6a1a-4a1b-9e41-3d9b26b6ef1f / ext4 defaults 0 1 -``` + Пример строки + ``` + UUID=3b14dabe-6a1a-4a1b-9e41-3d9b26b6ef1f / ext4 defaults 0 1 + ``` - `blkid` - выводит информацию о всех блочных устройствах, включая UUID - `mount` - используется для подключения файловых систем (например, жестких дисков, флешек) к определенным точкам монтирования в файловой системе -``` +```bash mount [OPTIONS] ``` - - `mount /dev/sda1 /mnt` - это монтирует раздел /dev/sda1 в директорию /mnt - `mount -t ext4 /dev/sda1 /mnt` - подключить с указанием типа файловой системы - ---- - `df -Th` - информация о файловых системах и их типах -- `du -sh *` - размеры файлов и директорий в текущей +- `du -sh * | sort -rh` - размеры файлов и директорий в текущей (по убыванию) - `lsblk -d -o name,rota` - 1 это HDD (жесткий диск). - 0 это SSD (твердотельный накопитель) > диск с названием sr* это cd привод - - `lsscsi` - отображает устройства, подключенные через интерфейс SCSI -- `cp /etc/fstab{,.bkp}` == `cp /etc/fstab /etc/fstab.bkp` - - -- `grep -A 10 <файл>` - вывести 10 строк после найденного файла -- `htop -p ` - процесс на таком-то порту -- `truncate -s 0 /var/log/messages` -- `find / -name pg_config 2>/dev/null`