Управление виртуальным частным сервером (VPS) на базе Linux может показаться сложной задачей, особенно для новичков. Командная строка, или терминал, — это ваш основной инструмент для полного контроля над сервером. Владение ключевыми командами не только упрощает администрирование, но и позволяет быстро решать проблемы, мониторить ресурсы и обеспечивать безопасность.
В этой статье мы рассмотрим 20 самых полезных и часто используемых команд Linux, которые необходимы каждому владельцу VPS. Для каждой команды мы приведем синтаксис, ключевые опции и практические примеры применения, чтобы вы могли сразу начать эффективно работать со своим сервером.
Данная информация предназначена для услуг: VPS хостинг или Облачный хостинг
1. ssh — Secure Shell
Для чего нужна: Это первая и самая важная команда. Она используется для безопасного подключения к вашему VPS с локального компьютера.
Синтаксис:
ssh пользователь@ip_адрес_сервераgit config --list
Ключевые опции:
-
-p порт
— указание нестандартного SSH-порта (по умолчанию 22). -
-i путь_к_ключу
— аутентификация с помощью закрытого SSH-ключа (рекомендуется).
Пример:
ssh -p 2222 root@192.168.1.100git config --list
или с использованием ключа:
ssh -i ~/.ssh/my_vps_key root@192.168.1.100
Практическое применение: Каждое ваше взаимодействие с сервером начинается с этой команды. Настройка аутентификации по ключу вместо пароля критически важна для повышения безопасности.
2. apt-get / yum / dnf — Менеджеры пакетов
Для чего нужна: Установка, обновление и удаление программного обеспечения. В зависимости от дистрибутива используются разные менеджеры:
-
apt
илиapt-get
— для Debian, Ubuntu. -
yum
— для older CentOS, RHEL. -
dnf
— для modern Fedora, CentOS Stream, RHEL.
Синтаксис (на примере apt):
# Обновление списка репозиториев
sudo apt update
# Обновление установленных пакетов
sudo apt upgrade
# Установка нового пакета
sudo apt install имя_пакета
# Удаление пакета
sudo apt remove имя_пакетаgit config --list
Пример:
sudo apt update && sudo apt upgrade -y
sudo apt install nginx mysql-servergit config --list
Практическое применение: Первое, что нужно сделать после подключения к новому серверу — это обновить систему. Этими же командами вы устанавливаете веб-сервер (Nginx/Apache), базы данных (MySQL/PostgreSQL) и любое другое необходимое ПО.
3. systemctl — Управление системными службами
Для чего нужна: Управление службами (демонами): запуск, остановка, перезагрузка, добавление в автозагрузку.
Синтаксис:
# Проверить статус службы
sudo systemctl status nginx
# Запустить службу
sudo systemctl start nginx
# Остановить службу
sudo systemctl stop nginx
# Перезапустить службу (stop + start)
sudo systemctl restart nginx
# Перезагрузить конфигурацию службы без остановки
sudo systemctl reload nginx
# Добавить службу в автозагрузку
sudo systemctl enable nginx
# Убрать службу из автозагрузки
sudo systemctl disable nginx
Практическое применение: После установки Nginx или PHP-FPM вам нужно будет их запустить и добавить в автозагрузку. Команда reload
полезна, когда вы изменили конфигурационный файл и хотите применить изменения без простоя службы.
4. journalctl — Просмотр логов системного журнала (systemd)
Для чего нужна: Просмотр и анализ системных логов, а также логов конкретных служб. Незаменимый инструмент для диагностики проблем.
Синтаксис:
# Показать логи всей системы
sudo journalctl
# Показать логи конкретной службы
sudo journalctl -u nginx.service
# Отслеживать логи в реальном времени (аналог tail -f)
sudo journalctl -f -u nginx
# Показать логи с последней загрузки системы
sudo journalctl -b
# Показать логи за сегодняшний день
sudo journalctl --since todaygit config --list
Практическое применение: Если ваш веб-сервер не запустился, используйтеjournalctl -u nginx
чтобы увидеть сообщение об ошибке. Командаjournalctl -f
идеальна для мониторинга логов в реальном времени при тестировании настроек.
5. df — Отображение дискового пространства
Для чего нужна: Показывает информацию о свободном и использованном месте на смонтированных файловых системах.
Синтаксис:
df
Ключевые опции:
-
-h
— вывод в удобочитаемом формате (ГиБ, МиБ). -
-T
— показать тип файловой системы.
Пример:
df -h
Вывод:
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 20G 5.2G 14G 28% /
Практическое применение: Регулярная проверка, чтобы не допустить переполнения диска, что может привести к падению сервисов и базы данных.
6. du — Оценка использования дискового пространства файлами и папками
Для чего нужна: Показывает, сколько места занимает конкретный файл или директория.
Синтаксис:
du /path/to/directorygit config --list
Ключевые опции:
-
-h
— удобочитаемый формат. -
-s
— показать только общий итог. -
--max-depth=N
— показать итоги для папок на уровне N.
Пример:
# Узнать размер текущей директории
du -shgit config --list
# Узнать размер всех домашних директорий пользователей
sudo du -sh /home/*git config --list
# Найти самые большие папки в текущей директории (сортировка)
du -h --max-depth=1 | sort -hr
Практическое применение: Если команда df
показала, что диск почти full, используйте du
чтобы найти, какие именно файлы или папки (например, логи, кэш, загрузки пользователей) занимают больше всего места.
7. free — Отображение информации об оперативной памяти
Для чего нужна: Показывает количество свободной и использованной оперативной памяти (ОЗУ) и swap-раздела.
Синтаксис:
free
Ключевые опции:
-
-h
— удобочитаемый формат. -
-m
— вывод в мегабайтах. -
-t
— показать итоговую строку.
Пример:
free -hgit config --list
Вывод:
total used free shared buff/cache available
Mem: 2.0Gi 1.1Gi 100Mi 10Mi 700Mi 700Mi
Swap: 1.0Gi 50Mi 950Mi
8. top / htop — Мониторинг процессов в реальном времени
Для чего нужна: Динамический вывод информации о запущенных процессах, использовании CPU, RAM, uptime системы.
Синтаксис:
top
htop
htop
— это улучшенная версия top
, которую часто нужно устанавливать отдельно (apt install htop
). Она более наглядная и удобная.
Ключи управления в top
/htop
:
-
q
— выход. -
P
— сортировка по CPU. -
M
— сортировка по RAM. -
k
— убить процесс (запросит PID). -
F4
или/
— фильтрация процессов (вhtop
).
Практическое применение: Первая команда для диагностики "тормозов" на сервере. Позволяет сразу увидеть, какой процесс потребляет больше всего ресурсов (CPU или RAM).
9. ps — Статичный список процессов
Для чего нужна: Формирует моментальный снимок (snapshot) запущенных процессов. Часто используется с пайпами и grep для поиска конкретного процесса.
Синтаксис:
# Показать все процессы
ps aux
# Поиск процесса по имени
ps aux | grep nginx
Ключевые опции:
-
a
— показать процессы всех пользователей. -
u
— показать пользователя-владельца процесса. -
x
— показать процессы без управляющего терминала.
Пример:
# Найти и убить процесс по имени (осторожно!)
ps aux | grep some_program
kill -9 $(pidof some_program)git config --list
Практическое применение: Поиск PID (Process ID) конкретного процесса для его остановки или проверки, запущен ли он вообще.
10. kill / pkill — Завершение процессов
Для чего нужна: Корректное или принудительное завершение работы процессов.
Синтаксис:
kill PID_процесса
# Принудительное завершение (сигнал KILL)
kill -9 PID_процесса
# Завершение процесса по имени
pkill имя_процесса
Практическое применение: Если процесс "завис" и не реагирует, используетсяkill -9
. Для перезагрузки конфигурации веб-сервера часто используетсяpkill -HUP nginx
.
11. lsof — Список открытых файлов
Для чего нужна: Показывает, какие файлы и сетевые соединения открыты процессами. Невероятно мощный инструмент для диагностики.
Синтаксис:
lsof
Ключевые опции:
-
-i
— показать открытые сетевые соединения. -
-i :80
— показать процессы, использующие порт 80. -
-p PID
— показать файлы, открытые процессом с указанным PID. -
+D /path
— показать процессы, использующие файлы в указанной директории.
Пример:
# Какие процессы используют порт 80?
sudo lsof -i :80
# Какие процессы открыли файлы в директории /var/log?
sudo lsof +D /var/log
Практическое применение: Если вы не можете перезапустить службу из-за сообщения "address already in use", lsof -i :PORT
покажет, какой процесс занял этот порт.
12. netstat / ss — Сетевые статистики и соединения
Для чего нужна: Показывает информацию о сетевых подключениях, routing tables, статистику интерфейсов. ss
— современная замена netstat
.
Синтаксис (на примере ss):
# Показать все listening (прослушивающие) порты
ss -tulnp
# Показать все установленные соединения
ss -t
Ключевые опции:
-
-t
— TCP. -
-u
— UDP. -
-l
— только listening (прослушивающие) сокеты. -
-n
— показывать цифры (порты, IP), а не имена. -
-p
— показать процесс, использующий сокет.
Практическое применение: Быстрая проверка, какие порты открыты на сервере и какие службы их слушают. Критически важно для аудита безопасности и настройки firewall.
13. ufw / firewall-cmd — Базовое управление фаерволом
Для чего нужна: Простые утилиты для управления базовыми правилами firewall.
-
ufw
— Uncomplicated Firewall для Debian/Ubuntu. -
firewall-cmd
— для дистрибутивов на базе RHEL/CentOS с firewalld.
Синтаксис (ufw):
# Разрешить входящее соединение на порт 80
sudo ufw allow 80/tcp
# Разрешить подключение по SSH (порт 22)
sudo ufw allow ssh
# Включить фаервол
sudo ufw enable
# Посмотреть статус и правила
sudo ufw status verbose
Практическое применение: Первоначальная базовая настройка безопасности сервера: запретить все входящие соединения, кроме необходимых (SSH, HTTP, HTTPS).
14. find — Поиск файлов и директорий
Для чего нужна: Поиск файлов по различным критериям: имя, размер, время изменения, владелец.
Синтаксис:
find /path/to/search -options criteria
Ключевые опции:
-
-name "pattern"
— поиск по имени. -
-size +50M
— поиск файлов размером больше 50 МБ. -
-mtime +7
— поиск файлов, измененных более 7 дней назад. -
-exec command {} \;
— выполнить команду над найденными файлами.
Пример:
# Найти все файлы .log в /var/log
find /var/log -name "*.log"git config --list
# Найти и удалить все файлы .tmp старше 30 дней
find /tmp -name "*.tmp" -mtime +30 -delete
# Найти файлы больше 100 МБ
find / -type f -size +100M -exec ls -lh {} \;
Практическое применение: Очистка временных файлов, поиск логов, аудит содержимого диска.
15. grep — Поиск по шаблону в файлах и тексте
Для чего нужна: Поиск текста и регулярных выражений внутри файлов. Часто используется в комбинации с другими командами через пайп (|
).
Синтаксис:
grep "шаблон" файлgit config --list
Ключевые опции:
-
-i
— игнорировать регистр. -
-r
или-R
— рекурсивный поиск по директориям. -
-n
— показать номер строки. -
-v
— инвертировать поиск (показать строки, НЕ содержащие шаблон). -
-E
— использовать расширенные регулярные выражения (egrep).
Пример:
# Найти все вхождения "error" в лог-файле
grep -i "error" /var/log/sysloggit config --list
# Рекурсивно найти функцию в исходных кодах
grep -rn "my_function" /path/to/project/git config --list
# Показать все строки в логе, кроме тех, что содержат "GET"
grep -v "GET" access.log
Практическое применение: Анализ логов на предмет ошибок, поиск конфигурационных опций в файлах, фильтрация вывода команд.
16. tail / head — Просмотр начала или конца файла
Для чего нужна: tail
показывает конец файла, head
— начало.
Синтаксис:
tail файл
head файл
Ключевые опции (для tail):
-
-n N
— показать последние N строк. -
-f
— следить за файлом в реальном времени (очень полезно для логов!). -
-F
— аналогично-f
, но лучше переоткрывает файл при его ротации.
Пример:
# Показать последние 100 строк лога
tail -n 100 /var/log/nginx/access.log
# Следить за логом в реальном времени (live-трафик)
tail -f /var/log/nginx/access.log
# Показать первые 20 строк конфига
head -n 20 /etc/nginx/nginx.conf
Практическое применение: tail -f
— основной инструмент для наблюдения за тем, что происходит на сервере прямо сейчас (последние ошибки, входящие HTTP-запросы).
17. cat / less / nano — Просмотр и редактирование файлов
Для чего нужна:
-
cat
— быстро показать содержимое небольшого файла. -
less
— постраничный просмотр больших файлов (можно листать). -
nano
— простой текстовый редактор для внесения изменений.
Синтаксис:
cat файл
less файл
nano файл
Практическое применение:
-
cat
полезен для конкатенации файлов или быстрого просмотра. -
less
— для чтения логов и конфигов. (Выход — клавишаq
). -
nano
— самый простой способ отредактировать конфиг для новичка.
18. chmod / chown — Управление правами доступа и владельцем
Для чего нужна:
-
chmod
— изменяет права доступа к файлу (read, write, execute). -
chown
— изменяет владельца и группу файла.
Синтаксис:
chmod +x script.shgit config --list
# Установить права 755 для директории (owner: rwx, group: rx, world: rx)
chmod -R 755 /path/to/dirgit config --list
# Сменить владельца файла на пользователя www-data и группу www-data
chown www-data:www-data /var/www/html/index.phpgit config --list
Практическое применение: Критически важные команды для безопасности. Неправильные права доступа к файлам веб-сервера — частая причина уязвимостей. Веб-файлы не должны принадлежать пользователю root
.
19. tar / gzip — Работа с архивами
Для чего нужна: Создание и распаковка архивов (например, для резервного копирования или переноса файлов).
Синтаксис:
# Создать архив (c - create, v - verbose, z - gzip, f - file)
tar -czvf archive_name.tar.gz /path/to/foldergit config --list
# Распаковать архив (x - extract)
tar -xzvf archive_name.tar.gz
Практическое применение: Создание бэкапов сайта или базы данных, распаковка скачанных дистрибутивов программ.
20. crontab — Настройка планировщика заданий Cron
Для чего нужна: Настройка выполнения команд и скриптов по расписанию.
Синтаксис:
# Открыть crontab для редактирования
crontab -e
# Посмотреть текущие задания
crontab -l
Формат записи:
минута час день_месяца месяц день_недели команда
Пример:
# Каждую ночь в 3:15 выполнять скрипт бэкапа
15 3 * * * /root/scripts/backup.shgit config --list
# Каждые 10 минут выполнять php-скрипт
*/10 * * * * /usr/bin/php /path/to/script.phpgit config --list
Практическое применение: Автоматизация рутинных задач: ежедневное резервное копирование, очистка временных файлов, запуск скриптов для обработки данных.
Бонус: Комбинации команд и пайпы (|)
Настоящая сила Linux раскрывается при комбинации команд с помощью пайпа |
, который передает вывод одной команды на вход другой.
Практические примеры:
ps aux | grep php
# Подсчет количества строк в логе с IP-адресом
grep "192.168.1.1" access.log | wc -lgit config --list
# Поиск 5 самых больших файлов в текущей директории
du -h . | sort -rh | head -5
# Постоянный поиск ошибок в реальном времени в логе
tail -f /var/log/syslog | grep -i error