From 6b7776227a654c7df67f5946d8d3587011fa9814 Mon Sep 17 00:00:00 2001 From: ilyamak04 Date: Mon, 27 Jan 2025 18:16:27 +0300 Subject: [PATCH] + --- docs/assets/favicon.ico | Bin 0 -> 3323 bytes docs/linux/Команды.md | 263 ++++++++++++++++++++++++++++++++++++++++ mkdocs.yml | 4 +- 3 files changed, 266 insertions(+), 1 deletion(-) create mode 100644 docs/assets/favicon.ico create mode 100644 docs/linux/Команды.md diff --git a/docs/assets/favicon.ico b/docs/assets/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..7e0fab681be3b17b7ffa23b1ac33dcbefa823879 GIT binary patch literal 3323 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 Есть ещё `apt-get`, но это более старая команда, которая в основном используется для скриптов, потому что не предусматривает интерактивную работу с системой + +APT работает поверх более низкоуровневого инструмента `dpkg`, который непосредственно устанавливает .deb пакеты. +- `sudo dpkg -i package_name.deb` - для установки `.deb` пакета +- `sudo apt --fix-broken install` - если возникли проблемы с зависимостями + +--- + +- `rpm -ivh .rpm` - установка rpm пакета +- `rpm -e .rpm` - удаления пакета +- `rpm -Uvh .rpm` - обновление пакета, если он не установленЮ он установится +- `rpm -qi ` - просмотр информации о пакете +- `rpm -V ` - проверка целостности пакета +- `rpm -ql ` - список файлов в пакете +- `dnf install .rpm` - установка rpm пакета через dnf, dnf будет управлять зависимостями + +- `dnf install https://example.com/package-file.rpm` - установка rpm пакета напрямую из ссылки + +### Сеть +- `cat /etc/ssh/sshd_config | grep Port` - показывает на каком порту открыт ssh +- `ss -tulpn` - информация о текущих сетевых соединениях и портах +- `curl ifconfig.me` - узнать публичный ip машины +- `iptables -L` - правила файрвола + - `iptables -L -v` - подробный вывод + - `iptables -L --line-numbers` + - `iptables -L -t nat` - позволяет указать конкретную таблицу для просмотра. Например, для просмотра правил NAT +- `iperf3` - для измерения скорости передачи данных между серверами +- `speedtest-cli` - спидтест + - `speedtest-cli --list` - список серверов + - `speedtest-cli --server SERVER_ID` +- `fuser 9095/tcp` - проверить доступность порта +- `ethtool enp0s3` - диагностика сетевого интерфейса на физическом уровне (`ethtool enp0s3` - статистика) +- `arp -a` - arp таблица (ip -> mac) +- `ip route` - таблица маршрутизации (можно проверить есть ли шлюз) +- `resolvectl status` - инфо о днс +- `cat /etc/resolv.conf` - инфо о днс +- `ip -4 route get 8.8.8.8` + + +### База +- `cp -p` - сохранить атрибуты файлов (время создания, права, владельца) +- `cp -v` - выводить информацию о каждом копируемом файле +- `mv -v` - подробный вывод при перемещении. +- `chmod 644 /etc/passwd` - изменение прав доступа к файлам и директориям +- `chown root:root /etc/hosts` - изменение владельца и группы +- `ps -aux` - выводит список всех процессов с информацией о пользователях, загрузке, времени и командах +- `ps -ef` - полная информация о процессах с идентификаторами владельцев +- `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-сервере + +- `sudo useradd -m username` - добавление нового пользователя (`-m` - создание домашнего каталога) +- `sudo passwd username` - установка или изменение пароля пользователя +- `sudo usermod -aG sudo username` - добавить пользователя в группу `sudo` +- `sudo groupadd developers` - создание новой группы +- `tail -f /var/log/*` - логи (`-f` - обновление в реальном времени) +- `journalctl` - утилита для просмотра логов служб, управляемых `systemd` + - `-u ` - просмотр логов конкретной службы + ```bash + journalctl -u nginx + ``` + - `journalctl -u nginx -f` - просмотр логов в реальном времени + - `journalctl -n 100` - последние 100 строк + - `journalctl --since "2024-10-03 12:00:00" --until "2024-10-03 14:00:00"` - логи за конкретный период + - `journalctl -p err` - можно показывать только ошибки + - emerg (0): Аварийные сообщения. + - alert (1): Требуют немедленных действий. + - crit (2): Критические ошибки. + - err (3): Ошибки. + - warning (4): Предупреждения. + - notice (5): Важные события. + - info (6): Информационные сообщения. + - debug (7): Отладочные сообщения. + - `journalctl -xe` + - x (или --catalog) — выводит дополнительные объяснения (аннотации) к некоторым сообщениям журнала. Это помогает понять детали ошибок или предупреждений, предлагая описания и возможные решения, если такие есть. + - e (или --pager-end) — открывает журнал в режиме постраничного просмотра и сразу прокручивает его до конца, показывая самые последние записи. + +- `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` - извлечь архив + - `-z` - использовать сжатие `gzip` + ```bash + tar -xvfz backup.tar.gz /var/www + ``` +- `sudo tar -zxvf apache-activemq-6.1.3-bin.tar.gz -C /opt` - распаковать в каталог +- `tar xvf 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` покажет, какой процесс его использует +- `strace` - системные вызовы + +- `killall -s 9 ` - убивает все процессы в названием hello (`-s` - тип сигнала) +- `w` - залогиненые пользователи и время `uptime` +- `whoami` - имя залогиненного пользователя +- `uptime` - сколько работает система без перезагрузки + - `-s` - время запуска + - `-p` - время работы системы + +- `less -S` - не переносит на новую строку +- `sudo reboot now` - перезагрузка системы +- `sudo shutdown now` - выключить компьютер +- `watch "some command"` - переодически запускает команду + +- `lscpu` - информация о процессоре +- `lspci` - информация об устройствах подключенных к pci шине +- `lsusb` + +- `/var/log/dmesg` - логи загрузки системы +- `pstree` - дерево процессов +- `/usr/lib/systemd` - директория с юнитами по умолчанию +- `ps aux --sort=-%mem | head -n 10` + +### Разное + +- `alt .` - перебирает последние аргументы из истории команд (`history`), если аргументов нет, то перебирает сами команды +- `ctrl R` - поиск команд из `history` +- ` !! ` +- `ctrl A` - перемещение курсора в начало +- `ctrl E` - перемещение курсора в конец +- `ctrl U` - вырезает всё, что СЛЕВА от курсора (`ctrl Y` - вставить) +- `ctrl W` - выразает 1 слова, СЛЕВА от курсора (`ctrl Y` - вставить) +- `ctrl K` - вырезает всё, что СПРАВА от курсора (`ctrl Y` - вставить) +- `cd -` перейти в предыдущую директорию +- `^restart^status` - замена с ... на ... в последней выполненной команде +- `&` - в конце команды и команды будет выполняться в фоновом режиме +- `nohup &` - если закроем терминал команда продолжит выполняться +- `nl` - как `cat`, но еще выводит номера строк +- `ctrl L` - `clear` +- `reset` - используется для сброса настроек терминала и очистки экрана +--- +- `cd` - вернуться в домашнюю директорию +- `touch file{4..13}` +- `mkdir dir_{a..f}` +- `cp -iv file1 dir1/file2` - (`-i`) спрашиваем будем ли перезаписывать +- `cp -nv` - не перезаписывать +- `stat file` + - Размер файла (Size): В байтах. + - Тип файла: Обычный файл, каталог и т. д. + - Права доступа (Access): Права на чтение, запись и выполнение для владельца, группы и других пользователей. + - Идентификаторы пользователя и группы (UID/GID): Идентификатор владельца и группы. + - Время изменения (Modify): Дата и время последнего изменения содержимого файла. + - Время последнего доступа (Access): Когда файл был последний раз открыт. + - Время изменения метаданных (Change): Когда были изменены права или метаданные файла. + - Номер inode: Уникальный номер файла в файловой системе. +--- + +- `kill -l` - список возможных сигналов + +- `cp -a source_file destination_directory/` - Опция `-a` эквивалентна комбинации нескольких опций: `-d` (сохраняет символические ссылки), `-p` (сохраняет права доступа, владельца и временные метки), и `-r` (рекурсивно копирует каталоги). +- `cp -vu` - пропустить совпадающие файлы, а скопировать только файлы новее или отсутствующие +--- +`/etc/passwd` - инфо о пользователях в системе + + +### Диски +- `sudo fdisk -l` + - Показывает список всех подключенных устройств (жестких дисков, SSD и т.д.). + - Отображает размер дисков, типы разделов, точки монтирования. + - Полезно для диагностики, перед созданием или изменением разделов. +- `lsblk` - показывает дерево всех подключенных устройств, их разделы, точки монтирования. (`-f` - для более детальной информации о файловых системах, `-p` - полные пути к устройствам, `-d` - показывает только диски, без разделов, `-J` - результат в виде json) +- `sudo cfdisk <устройство>` - команда для работы с разделами диска + + +- `sudo mkfs.<тип файловой системы> <устройство>` - команда в Linux для создания файловой системы на разделе диска. Она форматирует указанный раздел с выбранной файловой системой. +- `/etc/fstab` - это файл конфигурации в Linux, который содержит информацию о том, какие файловые системы должны автоматически монтироваться при загрузке системы. + + +Каждая строка в `/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 +``` +- `sudo blkid` - выводит информацию о всех блочных устройствах, включая UUID +- `mount` - используется для подключения файловых систем (например, жестких дисков, флешек) к определенным точкам монтирования в файловой системе +``` +mount [OPTIONS] +``` + +- `sudo mount /dev/sda1 /mnt` - это монтирует раздел /dev/sda1 в директорию /mnt +- `sudo mount -t ext4 /dev/sda1 /mnt` - подключить с указанием типа файловой системы + +--- +- `df -Th` - информация о файловых системах и их типах +- `du -sh *` - размеры файлов и директорий в текущей +- `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` + +- `sudo find / -name pg_config 2>/dev/null` diff --git a/mkdocs.yml b/mkdocs.yml index 63de952..d23f3bd 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -37,7 +37,9 @@ extra: social: - icon: fontawesome/brands/github link: https://git.mcarov.pro/ilyamak04/wiki - + - icon: fontawesome/brands/telegram + link: https://t.me/ya_ne_moguu + markdown_extensions: - attr_list - admonition