From 91d1db6df6829f78f72c434edc5dbefe93cc03e4 Mon Sep 17 00:00:00 2001
From: ilyamak04 <makilya04@gmail.com>
Date: Mon, 27 Jan 2025 22:50:11 +0300
Subject: [PATCH] =?UTF-8?q?=D0=BF=D0=B5=D1=80=D0=B2=D1=8B=D0=B5=20=D0=B7?=
 =?UTF-8?q?=D0=B0=D0=BC=D0=B5=D1=82=D0=BA=D0=B8=20=D0=B3=D0=BE=D1=82=D0=BE?=
 =?UTF-8?q?=D0=B2=D1=8B?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 docs/linux/Команды.md | 125 ++++++++++++++++++------------------------
 1 file changed, 54 insertions(+), 71 deletions(-)

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 <groupname>` - добавить группу
-
 - `adduser <username>`- добавить пользователя 
-
 - `usermod -aG <groupname> <username>` - добавить пользователя в группу без удаления его из других групп
-
 - `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-server> <dns-name>` - инфа о 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 <service_name>` - просмотр логов конкретной службы
     ```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-server> <dns-name>` - инфа о 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 <filename>` - Если файл заблокирован и его нельзя удалить или переместить, `lsof` покажет, какой процесс его использует
 - `strace` - системные вызовы
-
+---
 - `killall -s 9 <hello>` - убивает все процессы в названием 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 <pg_config> 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] <DEVICE> <MOUNTPOINT>
 ```
-
 - `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`