This commit is contained in:
parent
3ff740877e
commit
4dda57a436
Binary file not shown.
Before Width: | Height: | Size: 3.2 KiB |
@ -3,35 +3,44 @@
|
|||||||
### Настройка сервера
|
### Настройка сервера
|
||||||
- `groups username` - группы пользователя
|
- `groups username` - группы пользователя
|
||||||
|
|
||||||
- `sudo addgroup groupname` - добавить группу
|
- `addgroup <groupname>` - добавить группу
|
||||||
|
|
||||||
- `sudo adduser username` - добавить пользователя
|
- `adduser <username>`- добавить пользователя
|
||||||
|
|
||||||
- `sudo usermod -aG groupname username` - для добавления пользователя в группу без удаления его из других групп
|
- `usermod -aG <groupname> <username>` - добавить пользователя в группу без удаления его из других групп
|
||||||
|
|
||||||
|
- `su -`: если добавить - (или --login), это переключит вас на пользователя root и загрузит окружение (все переменные окружения будут инициализированы для пользователя root), как если бы вы вошли в систему как root
|
||||||
|
|
||||||
|
- `lsb_release -a` или `hostnamectl` - версия ОС (и не только)
|
||||||
|
|
||||||
- `su -`: если добавить - (или --login), это переключит вас на пользователя root и загрузит окружение, как если бы вы вошли в систему как root. Это означает, что все переменные окружения будут инициализированы для пользователя root, и вы будете находиться в домашнем каталоге root.
|
|
||||||
- `lsb_release -a` или `hostnamectl` - версия ОС
|
|
||||||
|
|
||||||
### Пакетный менеджер (apt)
|
### Пакетный менеджер (apt)
|
||||||
- `apt remove --purge` или `sudo apt purge` - удаляет как сам пакет, так и все связанные с ним конфигурационные файлы
|
- `apt remove --purge <packege_name>` или `apt purge <packege_name>` - удаляет сам пакет и все связанные с ним конфиги
|
||||||
- `sudo apt autoremove` - используется для удаления пакетов, которые были автоматически установлены в качестве зависимостей для других пакетов, но больше не нужны
|
- `apr remove <packege_name>` - удаляет пакет
|
||||||
- `sudo apt update` - система скачивает список пакетов и их версий с серверов репозиториев, но **не устанавливает и не обновляет пакеты**.
|
- `apt autoremove` - используется для удаления пакетов, которые были автоматически установлены в качестве зависимостей для других пакетов, но больше не нужны
|
||||||
- `sudo apt upgrade` - обновляет все установленные пакеты до последних доступных версий, основываясь на информации, полученной с помощью `apt update`, однако эта команда не устанавливает новые пакеты или не удаляет старые. Если для обновления пакета требуются новые зависимости, они не будут установлены.
|
- `apt update` - скачивает список пакетов и их версий с серверов репозиториев, но **не устанавливает и не обновляет пакеты**.
|
||||||
- `sudo apt full-upgrade` - не только обновляет пакеты, но и может устанавливать новые зависимости и удалять старые пакеты, если это необходимо для завершения обновления
|
- `apt upgrade` - обновляет все установленные пакеты до последних доступных версий, основываясь на информации, полученной с помощью `apt update`, однако эта команда не устанавливает новые пакеты или не удаляет старые. Если для обновления пакета требуются новые зависимости, они не будут установлены.
|
||||||
- `sudp apt install` - устанавливает пакет
|
- `apt full-upgrade` - не только обновляет пакеты, но и может устанавливать новые зависимости и удалять старые пакеты, если это необходимо для завершения обновления
|
||||||
- `supo apt search ` - поиск пакета по имени
|
- `sudp apt install <packege_name>` - устанавливает пакет
|
||||||
- `sudo apt show` - инфо о пакете
|
- `supo apt search <packege_name>` - поиск пакета по имени
|
||||||
- `sudo apt autoclean` - для удаления старых неиспользуемых файлов
|
- `apt show <packege_name>` - инфо о пакете
|
||||||
- `sudo apt clean` - APT хранит загруженные .deb файлы в кэше на диске, чтобы очистить этот кэш. Эта команда удаляет все файлы в dir `/var/cache/apt/archives/`
|
- `apt autoclean` - для удаления старых неиспользуемых файлов
|
||||||
|
- `apt clean` - APT хранит загруженные .deb файлы в кэше на диске, чтобы очистить этот кэш. Эта команда удаляет все файлы в dir `/var/cache/apt/archives/`
|
||||||
- `/etc/apt/sources.list` - основной файл, где перечислены все репозитории. Этот файл указывает, откуда APT будет загружать пакеты.
|
- `/etc/apt/sources.list` - основной файл, где перечислены все репозитории. Этот файл указывает, откуда APT будет загружать пакеты.
|
||||||
- `/etc/apt/sources.list.d/` - в этот каталог можно добавлять дополнительные файлы для подключения новых репозиториев.
|
- `/etc/apt/sources.list.d/` - в этот каталог можно добавлять дополнительные файлы для подключения новых репозиториев.
|
||||||
> Есть ещё `apt-get`, но это более старая команда, которая в основном используется для скриптов, потому что не предусматривает интерактивную работу с системой
|
> Есть ещё `apt-get`, но это более старая команда, которая в основном используется для скриптов, потому что не предусматривает интерактивную работу с системой
|
||||||
|
|
||||||
APT работает поверх более низкоуровневого инструмента `dpkg`, который непосредственно устанавливает .deb пакеты.
|
APT работает поверх более низкоуровневого инструмента `dpkg`, который непосредственно устанавливает .deb пакеты.
|
||||||
- `sudo dpkg -i package_name.deb` - для установки `.deb` пакета
|
- `dpkg -i package_name.deb` - для установки `.deb` пакета
|
||||||
- `sudo apt --fix-broken install` - если возникли проблемы с зависимостями
|
- `apt --fix-broken install` - если возникли проблемы с зависимостями
|
||||||
|
|
||||||
---
|
|
||||||
|
### Пакетный менеджер (dnf, rpm)
|
||||||
|
- `dnf install https://example.com/package-file.rpm` - установка rpm пакета напрямую из ссылки
|
||||||
|
- `dnf install <packege_name>` - устанавливает пакет из репозитория
|
||||||
|
- `dnf remove <packege_name>` - удаляет пакет
|
||||||
|
- `dnf upgrade` - обновляет систему
|
||||||
|
- `dnf search <packege_name>` - поиск пакета
|
||||||
|
|
||||||
- `rpm -ivh <package_name>.rpm` - установка rpm пакета
|
- `rpm -ivh <package_name>.rpm` - установка rpm пакета
|
||||||
- `rpm -e <package_name>.rpm` - удаления пакета
|
- `rpm -e <package_name>.rpm` - удаления пакета
|
||||||
@ -41,27 +50,95 @@ APT работает поверх более низкоуровневого ин
|
|||||||
- `rpm -ql <package_name>` - список файлов в пакете
|
- `rpm -ql <package_name>` - список файлов в пакете
|
||||||
- `dnf install <package_name>.rpm` - установка rpm пакета через dnf, dnf будет управлять зависимостями
|
- `dnf install <package_name>.rpm` - установка rpm пакета через dnf, dnf будет управлять зависимостями
|
||||||
|
|
||||||
- `dnf install https://example.com/package-file.rpm` - установка rpm пакета напрямую из ссылки
|
!!! tip "Лучше использовать высокоуровневый пакетный менеджер (apt, dnf)"
|
||||||
|
Высокоуровневые пакетные менеджеры (например, dnf, apt) удобнее и безопаснее, поскольку автоматически управляют зависимостями, работают с репозиториями, проверяют конфликты и целостность пакетов, одним словом, упрощают обновление ПО. При работе с rpm, dpkg требуется самостоятельная работа с зависимостями и есть вероятность накосячить с установкой, а если ПО требует дополнительные библиотеки, их придётся ставить отдельно.
|
||||||
|
|
||||||
|
|
||||||
### Сеть
|
### Сеть
|
||||||
|
- `ifconfig` - сетевые интерфейсы + статистика
|
||||||
|
- `ping` - проверка доступности хоста
|
||||||
|
- `traceroute` - путь пакетов от сервера к серверу (промежуточные маршрутизаторы) (`mtr` покажет путь в лайве)
|
||||||
|
- `nslookup`, `dig @<dns-server> <dns-name>` - инфа о DNS сервере
|
||||||
- `cat /etc/ssh/sshd_config | grep Port` - показывает на каком порту открыт ssh
|
- `cat /etc/ssh/sshd_config | grep Port` - показывает на каком порту открыт ssh
|
||||||
- `ss -tulpn` - информация о текущих сетевых соединениях и портах
|
- `ss -tulpn` - информация о текущих сетевых соединениях и портах
|
||||||
- `curl ifconfig.me` - узнать публичный ip машины
|
- `curl ifconfig.me` - узнать публичный ip машины
|
||||||
- `iptables -L` - правила файрвола
|
- `curl -Lv domain.ru` - получить html страницу (`v` - подробный вывод, `L` - разрешает редиректы)
|
||||||
|
- `curl -v telnet://127.0.0.1:22` - доступность порта
|
||||||
|
- `tcpdump -i any port 9100 -nn` - пакеты через порт
|
||||||
|
- `iptables -L` - правила файрвола (показывает все цепочки (chains) и правила для них)
|
||||||
- `iptables -L -v` - подробный вывод
|
- `iptables -L -v` - подробный вывод
|
||||||
- `iptables -L --line-numbers`
|
- `iptables -L --line-numbers`
|
||||||
- `iptables -L -t nat` - позволяет указать конкретную таблицу для просмотра. Например, для просмотра правил NAT
|
- `iptables -L -t nat` - позволяет указать конкретную таблицу для просмотра. Например, для просмотра правил NAT
|
||||||
- `iperf3` - для измерения скорости передачи данных между серверами
|
??? tip **ufw** - удобная надстройка над iptables
|
||||||
|
Чаще используют в Ubuntu и Debian
|
||||||
|
```bash
|
||||||
|
# Включаем фаерволл
|
||||||
|
sudo ufw enable
|
||||||
|
# Отключить фаерволл
|
||||||
|
sudo ufw disable
|
||||||
|
# Перезагрузить
|
||||||
|
ufw reload
|
||||||
|
|
||||||
|
# Не пускать входящий трафик
|
||||||
|
ufw default deny incoming
|
||||||
|
# Пускать исходящий
|
||||||
|
ufw default allow outgoing
|
||||||
|
|
||||||
|
# Разрешить доступ ко всем портам с определённого IP-адреса
|
||||||
|
ufw allow from <IPv4>
|
||||||
|
# Разрешить доступ к порту
|
||||||
|
ufw allow <port>
|
||||||
|
# Разрешить доступ к порту с определённого IP-адреса
|
||||||
|
sudo ufw allow from <IPv4> to any port <port>
|
||||||
|
# Чтобы запретить - deny вместо allow
|
||||||
|
|
||||||
|
# Показать состояние ufw и активные правила
|
||||||
|
ufw status verbose
|
||||||
|
# Показать правила с нумерацией
|
||||||
|
ufw status numbered
|
||||||
|
# Удалить правило по номеру
|
||||||
|
ufw delete <number>
|
||||||
|
|
||||||
|
# Интерфейсы
|
||||||
|
sudo ufw allow in on eth0
|
||||||
|
sudo ufw allow out on eth0
|
||||||
|
|
||||||
|
# Удалить правило (будут применены настройки по умолчанию)
|
||||||
|
ufw delete allow <port>/<protocol> # удалить разрешение
|
||||||
|
ufw delete deny <port>/<protocol> # удалить запрет
|
||||||
|
|
||||||
|
# Сброс всех правил
|
||||||
|
sudo ufw reset
|
||||||
|
|
||||||
|
# Логи ufw
|
||||||
|
sudo tail -f -n 100 /var/log/ufw.log
|
||||||
|
# Изменить уровень логирования
|
||||||
|
sudo ufw logging <low/medium/high>
|
||||||
|
|
||||||
|
# Разрешить доступ к порту с определённого ip
|
||||||
|
sudo ufw allow from <IPv4> to any port <port>
|
||||||
|
|
||||||
|
# Пресеты
|
||||||
|
# Вывести список пресетов
|
||||||
|
sudo ufw app list
|
||||||
|
|
||||||
|
# Открыть все соединения, которые нужны Nginx
|
||||||
|
sudo ufw allow "Nginx Full"
|
||||||
|
# Удалить правило для пресета
|
||||||
|
sudo ufw delete allow "Nginx Full"
|
||||||
|
```
|
||||||
|
|
||||||
|
- `iperf3` - для измерения скорости передачи данных
|
||||||
- `speedtest-cli` - спидтест
|
- `speedtest-cli` - спидтест
|
||||||
- `speedtest-cli --list` - список серверов
|
- `speedtest-cli --list` - список серверов
|
||||||
- `speedtest-cli --server SERVER_ID`
|
- `speedtest-cli --server SERVER_ID`
|
||||||
- `fuser 9095/tcp` - проверить доступность порта
|
- `fuser 9095/tcp` - проверить доступность порта
|
||||||
- `ethtool enp0s3` - диагностика сетевого интерфейса на физическом уровне (`ethtool enp0s3` - статистика)
|
- `ethtool enp0s3` - диагностика сетевого интерфейса на физическом уровне (`ethtool enp0s3` - статистика)
|
||||||
- `arp -a` - arp таблица (ip -> mac)
|
- `arp -a` - arp таблица (ip -> mac)
|
||||||
- `ip route` - таблица маршрутизации (можно проверить есть ли шлюз)
|
- `ip route` - таблица маршрутизации
|
||||||
- `resolvectl status` - инфо о днс
|
- `resolvectl status` - инфо о днс
|
||||||
- `cat /etc/resolv.conf` - инфо о днс
|
- `cat /etc/resolv.conf` - инфо о днс
|
||||||
- `ip -4 route get 8.8.8.8`
|
- `ip -4 route get 8.8.8.8` - используется для отображения маршрута, который система выберет для достижения указанного ip (какой интерфейс будет использован, через какой шлюз пойдёт трафик и с какого ip)
|
||||||
|
|
||||||
|
|
||||||
### База
|
### База
|
||||||
@ -88,10 +165,10 @@ APT работает поверх более низкоуровневого ин
|
|||||||
- `traceroute` - через какие маршрутизаторы проходит пакет до хоста
|
- `traceroute` - через какие маршрутизаторы проходит пакет до хоста
|
||||||
- `nslookup` - информация о DNS-сервере
|
- `nslookup` - информация о DNS-сервере
|
||||||
|
|
||||||
- `sudo useradd -m username` - добавление нового пользователя (`-m` - создание домашнего каталога)
|
- `useradd -m username` - добавление нового пользователя (`-m` - создание домашнего каталога)
|
||||||
- `sudo passwd username` - установка или изменение пароля пользователя
|
- `passwd username` - установка или изменение пароля пользователя
|
||||||
- `sudo usermod -aG sudo username` - добавить пользователя в группу `sudo`
|
- `usermod -aG username` - добавить пользователя в группу `sudo`
|
||||||
- `sudo groupadd developers` - создание новой группы
|
- `groupadd developers` - создание новой группы
|
||||||
- `tail -f /var/log/*` - логи (`-f` - обновление в реальном времени)
|
- `tail -f /var/log/*` - логи (`-f` - обновление в реальном времени)
|
||||||
- `journalctl` - утилита для просмотра логов служб, управляемых `systemd`
|
- `journalctl` - утилита для просмотра логов служб, управляемых `systemd`
|
||||||
- `-u <service_name>` - просмотр логов конкретной службы
|
- `-u <service_name>` - просмотр логов конкретной службы
|
||||||
@ -120,7 +197,6 @@ APT работает поверх более низкоуровневого ин
|
|||||||
- `cat /proc/cpuinfo` - подробно про проц
|
- `cat /proc/cpuinfo` - подробно про проц
|
||||||
- `traceroute` - путь пакетов от сервера к серверу (промежуточные маршрутизаторы) (`mtr` покажет путь в лайве)
|
- `traceroute` - путь пакетов от сервера к серверу (промежуточные маршрутизаторы) (`mtr` покажет путь в лайве)
|
||||||
- `nslookup`, `dig @<dns-server> <dns-name>` - инфа о DNS сервере
|
- `nslookup`, `dig @<dns-server> <dns-name>` - инфа о DNS сервере
|
||||||
|
|
||||||
- `curl -Lv domain.ru` - получить html страницу
|
- `curl -Lv domain.ru` - получить html страницу
|
||||||
- `curl -v telnet://127.0.0.1:22` - доступность порта
|
- `curl -v telnet://127.0.0.1:22` - доступность порта
|
||||||
- `tcpdump -i any port 9100 -nn` - пакеты через этот порт
|
- `tcpdump -i any port 9100 -nn` - пакеты через этот порт
|
||||||
@ -131,8 +207,8 @@ APT работает поверх более низкоуровневого ин
|
|||||||
```bash
|
```bash
|
||||||
tar -xvfz backup.tar.gz /var/www
|
tar -xvfz backup.tar.gz /var/www
|
||||||
```
|
```
|
||||||
- `sudo tar -zxvf apache-activemq-6.1.3-bin.tar.gz -C /opt` - распаковать в каталог
|
- `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* не будет создан
|
- `tar -zxvf apache-tomcat-9.0*tar.gz -C /opt/_Tomcat/application1-8080 --strip-components=1` - каталог apache-tomcat-9.0* не будет создан
|
||||||
- `dmesg -T` - логи ядра системы
|
- `dmesg -T` - логи ядра системы
|
||||||
|
|
||||||
### Система
|
### Система
|
||||||
@ -154,8 +230,8 @@ APT работает поверх более низкоуровневого ин
|
|||||||
- `-p` - время работы системы
|
- `-p` - время работы системы
|
||||||
|
|
||||||
- `less -S` - не переносит на новую строку
|
- `less -S` - не переносит на новую строку
|
||||||
- `sudo reboot now` - перезагрузка системы
|
- `reboot now` - перезагрузка системы
|
||||||
- `sudo shutdown now` - выключить компьютер
|
- `shutdown now` - выключить компьютер
|
||||||
- `watch "some command"` - переодически запускает команду
|
- `watch "some command"` - переодически запускает команду
|
||||||
|
|
||||||
- `lscpu` - информация о процессоре
|
- `lscpu` - информация о процессоре
|
||||||
@ -205,20 +281,19 @@ APT работает поверх более низкоуровневого ин
|
|||||||
|
|
||||||
- `cp -a source_file destination_directory/` - Опция `-a` эквивалентна комбинации нескольких опций: `-d` (сохраняет символические ссылки), `-p` (сохраняет права доступа, владельца и временные метки), и `-r` (рекурсивно копирует каталоги).
|
- `cp -a source_file destination_directory/` - Опция `-a` эквивалентна комбинации нескольких опций: `-d` (сохраняет символические ссылки), `-p` (сохраняет права доступа, владельца и временные метки), и `-r` (рекурсивно копирует каталоги).
|
||||||
- `cp -vu` - пропустить совпадающие файлы, а скопировать только файлы новее или отсутствующие
|
- `cp -vu` - пропустить совпадающие файлы, а скопировать только файлы новее или отсутствующие
|
||||||
---
|
- `/etc/passwd` - инфо о пользователях в системе
|
||||||
`/etc/passwd` - инфо о пользователях в системе
|
|
||||||
|
|
||||||
|
|
||||||
### Диски
|
### Диски
|
||||||
- `sudo fdisk -l`
|
- `fdisk -l`
|
||||||
- Показывает список всех подключенных устройств (жестких дисков, SSD и т.д.).
|
- Показывает список всех подключенных устройств (жестких дисков, SSD и т.д.).
|
||||||
- Отображает размер дисков, типы разделов, точки монтирования.
|
- Отображает размер дисков, типы разделов, точки монтирования.
|
||||||
- Полезно для диагностики, перед созданием или изменением разделов.
|
- Полезно для диагностики, перед созданием или изменением разделов.
|
||||||
- `lsblk` - показывает дерево всех подключенных устройств, их разделы, точки монтирования. (`-f` - для более детальной информации о файловых системах, `-p` - полные пути к устройствам, `-d` - показывает только диски, без разделов, `-J` - результат в виде json)
|
- `lsblk` - показывает дерево всех подключенных устройств, их разделы, точки монтирования. (`-f` - для более детальной информации о файловых системах, `-p` - полные пути к устройствам, `-d` - показывает только диски, без разделов, `-J` - результат в виде json)
|
||||||
- `sudo cfdisk <устройство>` - команда для работы с разделами диска
|
- `cfdisk <устройство>` - команда для работы с разделами диска
|
||||||
|
|
||||||
|
|
||||||
- `sudo mkfs.<тип файловой системы> <устройство>` - команда в Linux для создания файловой системы на разделе диска. Она форматирует указанный раздел с выбранной файловой системой.
|
- `mkfs.<тип файловой системы> <устройство>` - команда в Linux для создания файловой системы на разделе диска. Она форматирует указанный раздел с выбранной файловой системой.
|
||||||
- `/etc/fstab` - это файл конфигурации в Linux, который содержит информацию о том, какие файловые системы должны автоматически монтироваться при загрузке системы.
|
- `/etc/fstab` - это файл конфигурации в Linux, который содержит информацию о том, какие файловые системы должны автоматически монтироваться при загрузке системы.
|
||||||
|
|
||||||
|
|
||||||
@ -235,14 +310,14 @@ APT работает поверх более низкоуровневого ин
|
|||||||
```
|
```
|
||||||
UUID=3b14dabe-6a1a-4a1b-9e41-3d9b26b6ef1f / ext4 defaults 0 1
|
UUID=3b14dabe-6a1a-4a1b-9e41-3d9b26b6ef1f / ext4 defaults 0 1
|
||||||
```
|
```
|
||||||
- `sudo blkid` - выводит информацию о всех блочных устройствах, включая UUID
|
- `blkid` - выводит информацию о всех блочных устройствах, включая UUID
|
||||||
- `mount` - используется для подключения файловых систем (например, жестких дисков, флешек) к определенным точкам монтирования в файловой системе
|
- `mount` - используется для подключения файловых систем (например, жестких дисков, флешек) к определенным точкам монтирования в файловой системе
|
||||||
```
|
```
|
||||||
mount [OPTIONS] <DEVICE> <MOUNTPOINT>
|
mount [OPTIONS] <DEVICE> <MOUNTPOINT>
|
||||||
```
|
```
|
||||||
|
|
||||||
- `sudo mount /dev/sda1 /mnt` - это монтирует раздел /dev/sda1 в директорию /mnt
|
- `mount /dev/sda1 /mnt` - это монтирует раздел /dev/sda1 в директорию /mnt
|
||||||
- `sudo mount -t ext4 /dev/sda1 /mnt` - подключить с указанием типа файловой системы
|
- `mount -t ext4 /dev/sda1 /mnt` - подключить с указанием типа файловой системы
|
||||||
|
|
||||||
---
|
---
|
||||||
- `df -Th` - информация о файловых системах и их типах
|
- `df -Th` - информация о файловых системах и их типах
|
||||||
@ -259,5 +334,4 @@ mount [OPTIONS] <DEVICE> <MOUNTPOINT>
|
|||||||
- `grep -A 10 <файл>` - вывести 10 строк после найденного файла
|
- `grep -A 10 <файл>` - вывести 10 строк после найденного файла
|
||||||
- `htop -p ` - процесс на таком-то порту
|
- `htop -p ` - процесс на таком-то порту
|
||||||
- `truncate -s 0 /var/log/messages`
|
- `truncate -s 0 /var/log/messages`
|
||||||
|
- `find / -name pg_config 2>/dev/null`
|
||||||
- `sudo find / -name pg_config 2>/dev/null`
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user