Полезные команды для работы с Linux серверами
Выявление и анализ проблем на серверах
Проверка места на жестких дисках
Команда df -h
Утилита df выводит на экран информацию в байтах, а -h указывает команде выводить размеры в килобайтах, мегабайтах, гигабайтах и других кратных величинах удобных для чтения
Команда du -sh /
Позволяет отобразить размер конкретной директории. Для этого нужно запустить команду вида: du -sh directory_name/.
Опция -s (от английского summarize) отображает только общее значение для каждого аргумента.
Опция -h (от английского human readable) отображает значения в человекочитаемом формате, например, 70G, 215M
Команда df -i
Позволяет получить информацию о размерах инодов файловых систем, покажет количество использованных и свободных инодов в каждой файловой системе на компьютере.
Инод (от англ. index node) — это особая структура данных в файловой системе, которая содержит информацию о файле или каталоге, но не самих данных файла. Простым языком инод можно описать как паспорт файла, где хранятся его метаданные.
Команда smartctl -a
Выводит всю доступную SMART-информацию для указанного устройства, использующего стандартные (HDD) жесткие диски. Чтобы посмотреть данные для диска /dev/sda, нужно выполнить команду sudo smartctl -a /dev/sda
Команда cat /proc/mdstat
Позволяет посмотреть инициализацию RAID-массива и его текущее состояние.
Проверка процессора, памяти и дисков
Команда iostat
Используется для мониторинга и составления отчётов об активности ЦП, дискового ввода/вывода и блочных устройств.
Команда iotop
Позволяет отслеживать и анализировать активность дискового ввода-вывода в режиме реального времени. С помощью этого инструмента можно определить, какие процессы генерируют наибольшее количество дисковых операций ввода-вывода, отследить скорость чтения и записи
Команда top
Выводит список работающих в системе процессов и информацию о них. По умолчанию она в реальном времени сортирует их по нагрузке на процессор.
В верхней части выводится информация о системе, ниже — список процессов.
Пробел — обновить вывод;
M — сортировка по используемой памяти;
P — сортировка по нагрузке на процессор (используется по умолчанию);
T — сортировка по времени работы процесса;
A — сортировка по максимальному потреблению различных ресурсов;
u — сортировка по имени пользователя (потребуется ввести имя пользователя);
k — завершить процесс (потребуется указать его идентификатор, PID);
n — изменить количество процессов в выводе (потребуется указать нужное количество);
c — вывести полный путь запущенного процесса (столбец COMMAND);
h — вывод справки;
q — выход из программы.
Команда для работы с файлами в командной строке
Управление файлами через командную строку
Команда ls
Вывод содержимого каталога
Команда ls -la
Вывод содержимого каталога в форматированном виде (в т.ч. скрытые файлы)
Команда cd dir
Перейти в каталог dir
Команда cd
Перейти в домашний каталог
Команда pwd
Показать текущий каталог
Команда mkdir dir
Создать каталог dir
Команда rm file
Удалить файл
Команда rm -r dir
Удалить каталог dir
Команда rm -f file
Принудительно удалить файл
Команда rm -rf dir
Принудительно удалить каталог dir
Команда cp file1 file2
Скопировать file1 в file2
Команда cp -r dir1 dir2
Скопировать каталог dir1 в каталог dir2 (если каталога dir2 нет, он будет создан)
Команда mv file1 file2
Переместить (или переименовать, если file1 и file2 находятся в одном каталоге) file1 в file2
Команда ln -s file link
Создать симлинк link на файл file
Команда touch file
Создать файл
Команда cat > file
Направить стандартный ввод в file
Команда more file
Вывод содержимого file
Команда head file
Вывод содержимого первых 10 строк file
Команда tail file
Вывод содержимого последних 10 строк file
Команда tail -f file
Вывод содержимого file по мере появления, начиная с последних 10 строк файла.
Команда mount
Монтирование файловой системы
Команда fdisk
Работа с таблицами разделов диска (создание, удаление, изменение разделов)
Команда nano
Редактор с подсказками по управлению в нижней части окна
Коды ошибок и список популярных портов
Code | Description | PORT | USED | |
---|---|---|---|---|
1xx |
Информационные коды | 20 | FTP-данные | |
2xx |
Успешная обработка запроса | 21 | FTP-сервер | |
3xx |
Коды редиректов | 22 | SSH | |
4xx |
Ошибка клиента | 23 | Telnet | |
5xx |
Ошибка сервера | 25 TCP | SMTP | |
53 UDP | DNS-сервер | |||
67:68 UDP | UDP | |||
80 TCP | HTTP | |||
110 | POP3 | |||
143 | IMAP | |||
443 TCP | HTTPS | |||
3306 | MySQL | |||
123 | NTP | |||
5432 | PostgreSQL |
Причины возникновения кодов:
- Error 405 - Метод не разрешен
- Error 408 - Время ожидания истекло
- Error 404 - Страница не найдена
- Error 403 - Доступ запрещен
- Error 401 - Неавторизованный доступ
- Error 400 - Неверный запрос
- Error 502 - Ошибка шлюза
- Error 500 - Внутренняя ошибка сервера
- Error 504 - Шлюз не отвечает
- Error 503 - Сервис недоступен
Описание популярных протоколов:
TCP (Transmission Control Protocol)
Использует порт 80 для HTTP, порт 443 для HTTPS, порт 25 для SMTP. TCP обеспечивает надежную передачу данных, управление потоком и установление соединения между узлами.
UDP (User Datagram Protocol)
Использует порт 53 для DNS, порт 67 и 68 для DHCP. UDP обеспечивает более быструю передачу данных без гарантии доставки и управления потоком.
Broadcast
Использует широковещательный адрес для отправки сообщений всем узлам в сети. Это позволяет обеспечить доставку информации всем устройствам в сегменте сети.
ICMP (Internet Control Message Protocol)
Используется для передачи контрольных сообщений и обнаружения ошибок в сети. ICMP может использоваться для отправки команды Ping и Traceroute.
Ping
Использует ICMP для проверки доступности узла в сети путем отправки эхо-запроса и получения эхо-ответа.
Traceroute
Использует ICMP для определения маршрута пакетов от отправителя к получателю. Traceroute показывает промежуточные узлы и время, необходимое для доставки пакета до каждого узла.
TTL (Time to Live)
Используется в заголовке IP-пакета для ограничения времени жизни пакета. Каждый маршрутизатор уменьшает значение TTL на единицу, и если TTL достигает нуля, пакет уничтожается.
DHCP (Dynamic Host Configuration Protocol)
Используется для автоматической настройки сетевых параметров устройствам в сети, таких как IP-адрес, шлюз по умолчанию и DNS-серверы.
ARP (Address Resolution Protocol)
Используется для преобразования IP-адресов в MAC-адреса устройств в локальной сети. ARP позволяет устройствам определять MAC-адреса других устройств на сетевом уровне.
Команды для работы с сетью и проведению анализа работы
Вызов справочника help для команд
Linux/Unix:
man ping
Windows:
ping /?
Trubbleshooting на стороне сети
ping: используется для проверки доступности узла в сети и измерения времени отклика (с помощью icmp протокола)
ping -c 5 google.com [Указывает количество отправляемых пакетов]
ping -i 2 google.com [Устанавливает интервал между отправкой пакетов]
tracert (#Traceroute): позволяет отследить маршрут следования пакетов к конечному узлу.
tracert -d google.com [Не разрешает имена хостов]
tracert -w 500 google.com [Устанавливает время ожидания ответа]
nslookup: позволяет получить информацию о доменном имени или IP-адресе
nslookup -type=MX google.com [Указывает тип запрашиваемой информации (например, A, MX, CNAME)]
nslookup -query=MX google.com [Аналогичен параметру -type]
route -n: выводит информацию о таблице маршрутизации.
route -n -e [Показывает расширенную информацию]
route -n -F [Показывает только маршруты]
#telnet: позволяет установить соединение с удаленным узлом по протоколу Telnet.
telnet -E google.com 80 [Включает эхо]
telnet -a google.com 80 [Автоматически пытается войти в систему]
netstat: выводит информацию о сетевых соединениях, сетевых интерфейсах и статистике сети.(наличие доступа к порту 80 с помощью команды netstat -tuln | grep :80)
netstat -t [Показывает только TCP-соединения]
netstat -u [Показывает только UDP-соединения]
ipconfig (#ifconfig):, для отображения сетевой информации (#ifconfig -a, отображение всех значений, даже выключенных)
ifconfig -a [Показывает все интерфейсы, включая неактивные]
ifconfig -s [Показывает краткую информацию]
arp: для просмотра и изменения кэша ARP.
arp -a [Показывает все записи в кэше ARP]
arp -d <IP-адрес> [Удаляет запись из кэша ARP]
nmap: сканирование сети, позволяет обнаружить открытые порты
nmap -sS google.com [Выполняет SYN-сканирование]
nmap -p 80,443 google.com [Указывает порты для сканирования]
Описание основ OSI
Что такое OSI
Это модель взаимодействия открытых систем, которая описывает, как данные передаются между устройствами в сети. Модель OSI состоит из семи уровней, каждый из которых выполняет определенные функции в процессе передачи данных.
OSI LV | Protocol | Uses |
---|---|---|
LV.7 Прикладной |
HTTP, HTTPS, DNS, FTP, SMTP | Взаимодействие приложений; формирование запросов и данных пользователя. Определяет смысл и содержимое сообщений (например, содержание веб-страницы). |
LV.6 Представления |
TLS (шифрование данных), SSL, JPEG, JSON (форматы), ASCII/UTF-8 (кодировки) | Преобразование данных к нужному виду: шифрование и дешифрование, сжатие, преобразование кодировок и форматов. Обеспечивает совместимость различных систем по способу представления данных. |
LV.5 Сеансовый |
TLS (установление сессии), RPC, NetBIOS Sessions | Управление диалогом между приложениями: установка, поддержание и завершение сеанса связи. В вебе – TLS-сессия для HTTPS, поддержание сессий (например, cookie + логика приложения). |
LV.4 Транспортный |
TCP, UDP, (QUIC), SCTP | Доставка данных между хостами с нужной надежностью. Мультиплексирование портов. TCP – надёжный поток: сегментация, сборка, контроль порядка, перегрузки, ретрансмиссия. UDP – ненадёжные сообщения. |
LV.3 Сетевой |
IP (IPv4/IPv6), ICMP, IPsec, RIP/OSPF/BGP (маршрутные протоколы) | Логическая адресация узлов и маршрутизация пакетов через сети. IP-пакеты передаются от источника к назначению через маршрутизаторы. Реализует без соединения, best-effort доставку. |
LV.2 Канальный |
Ethernet (MAC), Wi-Fi (802.11 MAC), ARP, PPP, Frame Relay | Передача кадров между узлами одной сети (или соседними по каналу). Физическая адресация (MAC). Обнаружение ошибок (FCS) и, иногда, их коррекция или повтор. Управление доступом к среде (CSMA/CD, CA). |
LV.1 Физический |
Ethernet PHY, Wi-Fi радиоволны, Optical fiber, DSL, Coax | Передача битов как электрических/оптических сигналов. Определяет уровни напряжения, частоты, модуляцию, разъёмы, тайминги. Обеспечивает связь на самом базовом уровне – сигнал по кабелю или эфиру. |
Другие популярные сетевые команды
Команда | Для чего испольуется |
---|---|
route | Просмотр и изменение таблиц маршрутизации IP |
ping | Отправка пакетов на сервер и получение их обратно в случае хорошего сетевого соединения |
traceroute | Отслеживание пути, пройденного трафиком |
nslookup | Запросы к системе доменных имен (DNS) для получения отображения доменных имен или IP-адресов, а также других DNS-записей |
ifconfig | Просмотр и изменение конфигурации сетевых интерфейсов системы |
tracepath | Отслеживание пути до конечной точки с обнаружением MTU на этом пути |
ssh | Сетевой протокол прикладного уровня, позволяющий производить удалённое управление операционной системой и туннелирование TCP-соединений |
curl | Передача данных на сервер или с сервера с использованием любого из поддерживаемых протоколов |
scp | Безопасное копирование файлов (и директорий с флагом -r) между локальной и удалённой системой по SSH |
w | Краткое описание каждого пользователя, вошедшего в систему |
netcat | Выполнение различных операций с TCP, UDP или UNIX-доменными сокетами в Linux |
nmap | Исследование сети и аудит безопасности |
ip | Назначение адреса сетевому интерфейсу и/или настройки параметров сетевого интерфейса в операционных системах Linux |
Команды для управления пользователями
Команда | Для чего используется |
---|---|
adduser | Создание нового пользователя в Linux |
useradd | Низкоуровневая команда для создания пользователей |
passwd | Установка или изменение пароля пользователя |
deluser | Удаление пользователя из системы |
userdel | Другая команда для удаления пользователя, но по умолчанию не удаляет домашний каталог |
usermod | Изменение свойств учётной записи пользователя, таких как имя пользователя, домашний каталог или группы |
id | Отображение информации об идентификаторе пользователя (UID) и группы (GID) |
whoami | Показывает текущего вошедшего пользователя |
who | Показывает всех пользователей, которые в данный момент вошли в систему |
w | Отображение информации о вошедших пользователях и их активности |
last | Отображение истории входов пользователей |
groups | Отображение групп, в которые входит пользователь |
groupadd | Создание новой группы пользователей |
groupdel | Удаление группы |
usermod -aG | Добавление пользователя в группу |
chage | Установка или проверка сроков действия пароля для пользователя |
getent passwd | Список всех пользователей в системе |
awk -F: 'print $1' /etc/passwd | Покажет список имён всех пользователей |
sudo visudo | Редактирование привилегий sudo для пользователей |
who | wc -l |