Skip to content

Полезные команды для работы с 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