Руководства и туториалы

32 критически важные команды Linux для VPS: полный список + шпаргалка

Поделиться:

В наши дни почти всё имеет красивый пользовательский интерфейс. Просто нажимаешь и кликаешь, чтобы сделать дело. Поэтому командная строка нам почти никогда не нужна.

Но как только вы регистрируете VPS, вам приходится учить эти основные команды Linux, иначе вы останетесь staring на чёрный экран, понятия не имея, что делать дальше.

Команды Linux — это короткие текстовые инструкции, которые вы вводите в терминал, чтобы сказать операционной системе, что делать: вывести список файлов, переместить данные, отследить ресурсы, перезапустить службы. Поскольку большинство веб-серверов работают на Linux, нескольких десятков команд достаточно для повседневного управления сайтом и VPS.

Хотя существуют тысячи команд Linux, я отобрал 32 наиболее часто используемые для повседневного управления сервером, разбив их по уровням навыков и приложив шпаргалку, которую удобно держать под рукой.

Шпаргалка по командам Linux

Вот все 32 команды одним взглядом. Каждая из них подробно объясняется с реальными примерами серверов ниже на странице, а уровни навыков описаны в следующем разделе.

КомандаРасшифровкаНазначениеУровень
lsListВыводит содержимое текущей директорииБазовый
pwdPrint working directoryОтображает полный путь текущего местоположенияБазовый
cdChange directoryПеремещает вас в другую директориюБазовый
mkdirMake directoryСоздаёт новую директориюБазовый
cpCopyКопирует файлы и директорииБазовый
mvMoveПеремещает или переименовывает файлы и директорииБазовый
catConcatenateОтображает полное содержимое файлаБазовый
headПоказывает первые 10 строк файлаБазовый
tailПоказывает последние 10 строк файлаБазовый
psProcess statusПоказывает процессы, запущенные в системеПрофессиональный
topОтображает выполняющиеся процессы в реальном времениПрофессиональный
htopПоказывает активные процессы в более дружественном, цветном интерфейсеПрофессиональный
killЗавершает процесс по его IDПрофессиональный
killallЗавершает все процессы с заданным именемПрофессиональный
dfDisk freeПоказывает использование дискового пространства для всех смонтированных файловых системПрофессиональный
freeОтображает используемую и доступную памятьПрофессиональный
duDisk usageПоказывает использование диска для конкретной директорииПрофессиональный
grepGlobal regular expression printИщет текстовые шаблоны внутри файловПрофессиональный
findНаходит файлы и директории, соответствующие вашим критериямПрофессиональный
chmodChange modeИзменяет права доступа к файлам и директориямПрофессиональный
pingPacket Internet Groper (но большинство говорят просто ping)Проверяет, может ли ваш сервер связаться с другой машинойИнфраструктурный
curlClient URLПередаёт данные на серверы или с нихИнфраструктурный
netstatNetwork statisticsОтображает сетевые подключения и прослушиваемые службыИнфраструктурный
ssSocket statisticsПеречисляет сетевые сокеты; более быстрая, современная замена netstatИнфраструктурный
sudoSuperuser doВыполняет команды с повышенными привилегиямиИнфраструктурный
chownChange ownerИзменяет владельца файлов и директорийИнфраструктурный
ssh-keygenSecure Shell key generatorГенерирует пары SSH-ключей для безопасного входаИнфраструктурный
ufwUncomplicated FirewallОткрывает и блокирует порты с помощью простых правил брандмауэраИнфраструктурный
systemctlSystem controlЗапускает, останавливает и управляет системными службамиЭкспертный
crontabCron tableПланирует автоматические задачи для выполнения в заданное времяЭкспертный
sedStream editorНаходит и заменяет текст внутри файловЭкспертный
awkНазвана в честь создателей (Ахо, Вайнбергер, Керниган)Извлекает столбцы и шаблоны из текста и логовЭкспертный

Поймите свой текущий уровень владения командами Linux

В зависимости от того, как часто вы используете команды Linux, вы относитесь к одному из четырёх уровней владения.

  • Базовый уровень: Вы можете подключиться к серверу по SSH и перемещаться по директориям, но вам некомфортно вносить изменения в систему. Вероятно, вы копируете и вставляете команды из руководств, не до конца понимая, что они делают. Права доступа к файлам всё ещё вызывают замешательство, и когда что-то ломается, вы не знаете, с чего начать поиск.
  • Профессиональный уровень: Вы уверенно работаете с основными файловыми операциями и можете устранять простые неполадки, но сложные проблемы всё ещё заставляют вас искать помощь. Вы умеете управлять средами разработки, но вам не хватает уверенности для оптимизации производительности или внедрения мер безопасности.
  • Инфраструктурный уровень: Вы можете диагностировать узкие места производительности и настраивать конфигурацию безопасности, но автоматизация кажется пугающей. Вы понимаете, как работают отдельные команды, но пока недостаточно свободно владеете ими, чтобы комбинировать их в эффективные рабочие процессы.
  • Экспертный уровень: Вы умеете системно мыслить об архитектуре сервера и быстро определять первопричину сложных проблем. Вы автоматизируете рутинные задачи и можете оптимизировать серверы для конкретных случаев использования, не полагаясь на внешние ресурсы.

Получайте контент прямо на почту

Подпишитесь сейчас, чтобы получать все последние обновления, доставляемые прямо на ваш почтовый ящик.

Я распределил команды Linux ниже с учётом именно этих уровней владения.

Базовый уровень: команды, которые должен освоить каждый разработчик

Когда вы впервые подключаетесь к VPS по SSH, нужно уметь ориентироваться и просматривать файлы. Эти команды помогут вам делать это, не чувствуя себя полностью потерянным.

Linux Commands List: 32 Essentials (+ Cheat Sheet)

Навигация и просмотр файлов

1. ls: Показывает содержимое текущей директории

Команда без параметров выводит список (понятно? ls = list!) всех видимых файлов и папок в вашем текущем местоположении.

Но при управлении сайтами нужна более подробная информация, поэтому можно использовать ls -la для просмотра прав доступа, владельца, размеров файлов и скрытых файлов, начинающихся с точки.

ls -la /var/www/html

Вывод показывает всё, что нужно:

Linux Commands List: 32 Essentials (+ Cheat Sheet)

Первый столбец показывает права доступа к файлу, третий и четвёртый — кто владеет файлом, дата в конце — когда он был последний раз изменён, а последний столбец — имя файла.

Таблица показывает подробную информацию обо всех файлах в вашей веб-директории, включая скрытые конфигурационные файлы, такие как .htaccess, которые могут вызывать проблемы на сайте.

2. pwd: Показывает ваше текущее местоположение в структуре директорий

Команда расшифровывается как «вывести рабочую директорию» и отображает полный путь к тому месту, где вы сейчас находитесь. При управлении несколькими сайтами на одном VPS это предотвращает случайное редактирование файлов не того сайта. Просто введите:

pwd

Эта команда может вернуть что-то вроде /var/www/site1, подтверждая, что вы работаете в правильной директории сайта.

3. cd: Перемещение в другую директорию

Основной синтаксис: «cd /путь/к/директории».

Вы можете использовать сокращения: просто «cd» для перехода в домашнюю директорию, «cd -» для возврата в предыдущую директорию и «cd ..» для подъема на один уровень вверх.

cd /var/www/html

Linux Commands List: 32 Essentials (+ Cheat Sheet)

Эта команда перемещает вас прямо в основную директорию вашего сайта, где хранится большинство файлов.

Управление файлами и директориями

4. mkdir: Создание новых директорий

Расшифровывается как «Make Directory» («Создать директорию»). Основной синтаксис: «mkdir имя-директории» для создания одной папки.

Вы можете использовать «mkdir -p» для создания вложенных структур директорий одной командой; при этом ошибки не возникнет, если директории уже существуют.

mkdir -p /var/www/newsite/{public,logs,backups,ssl}

Linux Commands List: 32 Essentials (+ Cheat Sheet)

Эта команда создает полную структуру директорий для нового сайта с отдельными папками для публичных файлов, логов, резервных копий и SSL.

5. cp: Копирование файлов и директорий из одного места в другое

Основной синтаксис:

cp <исходный путь> <целевой путь>

Однако по умолчанию команда cp не копирует файлы внутри папок и даже вложенные папки.

Вам нужно использовать «cp -r» для рекурсивного копирования целых деревьев директорий, включая все поддиректории и их содержимое.

cp -r /var/www/production /var/www/staging

Эта команда создает полную копию вашего рабочего сайта для тестирования изменений перед их публикацией.

6. mv: Перемещение файлов и директорий или их переименование

В отличие от копирования, эта команда удаляет исходный файл. Вы можете перемещать файлы в другие директории или переименовывать их в том же месте.

Вот основной синтаксис:

mv <исходный путь> <целевой путь>

Чтобы переместить файл в другое место, укажите полный целевой путь, как показано ниже:

mv wordpress-6.3.2.zip /var/www/downloads/

Если вы хотите переименовать файл, вы можете просто «переместить» файл из одного имени в другое в той же директории:

mv nginx.conf nginx.conf.backup

Linux Commands List: 32 Essentials (+ Cheat Sheet)

Операции с содержимым файлов

7. cat: Отображение полного содержимого файла в терминале (сокращение от concatenate)

Основной синтаксис: cat имя_файла. Эта команда идеально подходит для быстрого чтения небольших конфигурационных файлов или проверки содержимого скриптов без открытия текстового редактора.

cat /var/www/html/wp-config.php

Эта команда отображает ваш конфигурационный файл WordPress, позволяя проверить учетные данные базы данных или найти синтаксические ошибки.

8. head: Показывает первые несколько строк файла

По умолчанию отображается 10 строк, но вы можете указать другое число с помощью «head -n 20». Это удобно для просмотра больших файлов логов без вывода тысяч строк в терминал.

head -n 50 /var/log/nginx/access.log

Эта команда показывает первые 50 записей из журнала доступа вашего веб-сервера, чтобы проверить недавние шаблоны трафика.

9. tail: Показывает последние несколько строк файла

Команда tail без параметров показывает 10 строк, но «tail -f» непрерывно отображает новые строки по мере их добавления в файл. Это делает ее незаменимой для мониторинга файлов логов в реальном времени при устранении неполадок.

tail -f /var/log/nginx/error.log

Эта команда отслеживает ваш журнал ошибок в реальном времени, показывая новые сообщения об ошибках сразу при их возникновении во время работы сайта.

Профессиональный уровень: команды для управления рабочими процессами разработки

Когда вы уже освоились, эти команды профессионального уровня дают вам контроль над динамическими частями сервера. Вы сможете следить за запущенными процессами, управлять ими и работать с системными ресурсами как профессионал.

Linux Commands List: 32 Essentials (+ Cheat Sheet)

Управление процессами и мониторинг

10. ps: Показывает текущие запущенные процессы в системе

Запуск «ps aux» отображает все процессы с подробной информацией, включая использование ЦП и памяти.

  • a — показывает процессы для всех пользователей.
  • u — предоставляет удобочитаемый формат.
  • x — включает процессы, не привязанные к терминалам.

| «конвейер» передает вывод от «ps aux» команде «grep»; я расскажу о ней в разделе поиска файлов.

ps aux | grep nginx

Linux Commands List: 32 Essentials (+ Cheat Sheet)

Эта полная команда выводит все процессы, связанные с NGINX. Одна особенность: вы всегда будете видеть одну строку для самой команды grep — NGINX работает только если вы видите другие процессы nginx (или проверьте с помощью pgrep nginx).

11. top: Отображение производительности системы и запущенных процессов в реальном времени

В отличие от «ps», эта команда обновляется непрерывно, показывая информацию о ЦП, памяти и процессах в реальном времени. Нажмите q для выхода, k для завершения процессов, M для сортировки по использованию памяти.

top

Linux Commands List: 32 Essentials (+ Cheat Sheet)

Когда ваш сайт загружается медленно, эта команда показывает, какие процессы потребляют ресурсы. Статистика средней загрузки и использования памяти помогает выявить узкие места системы.

12. htop: Улучшенная версия top с лучшим визуальным интерфейсом

Предоставляет те же функции, что и top, но с цветовой кодировкой, поддержкой мыши и более удобной навигацией. Возможно, сначала потребуется установить её с помощью команды sudo, которую мы рассмотрим ниже.

htop

Linux Commands List: 32 Essentials (+ Cheat Sheet)

Цветной дисплей упрощает выявление проблемных процессов с первого взгляда, и вы можете легче прокручивать список процессов.

13. kill: Завершение процессов по их идентификатору

Используйте kill <PID> для корректной остановки конкретного процесса. Если процесс не отвечает, вы можете принудительно завершить его с помощью kill -9 <PID>.

kill 1234

Когда процесс PHP зависает, потребляя слишком много ЦП, найдите его PID с помощью ps aux или top, затем используйте kill для его завершения.

14. killall: Завершение всех процессов с определенным именем

Вы не всегда будете знать PID, так как имена служб могут отличаться от имен приложений. Команда killall <имя_процесса> останавливает все процессы с этим именем одновременно.

killall php-fpm

Эта команда останавливает все рабочие процессы PHP-FPM — полезно, когда нужно полностью перезапустить обработчик PHP.

Мониторинг системных ресурсов

15. df: Показывает использование дискового пространства для всех смонтированных файловых систем

Выполнение «df -h» отображает использование диска в удобочитаемом формате (ГБ, МБ вместо кибибайтов). Эта команда поможет вам отслеживать использование диска, чтобы избежать ошибок переполнения диска.

df -h

Linux Commands List: 32 Essentials (+ Cheat Sheet)

Если вы видите в столбце «use%» более 70% для любого диска, пора освободить дисковое пространство или перейти на более емкое хранилище.

16. free: Отображает использование памяти, включая ОЗУ и пространство подкачки

Без параметров команда free предоставит вам данные в кибибайтах (1 кибибайт = 1024 байта).

Используйте «free -h» для просмотра статистики памяти в удобочитаемом формате. Это помогает выявить проблемы с производительностью памяти до того, как они приведут к сбою ваших приложений.

free -h

Linux Commands List: 32 Essentials (+ Cheat Sheet)

Если значение «available» (доступно) памяти падает почти до нуля, ваш сервер перестанет отвечать на запросы. Этот индикатор подсказывает, когда нужно добавить больше ОЗУ или оптимизировать ваши приложения.

17. du: Показывает использование диска для конкретных каталогов

Выполнение du -sh <директория> выдает сводку об использовании пространства для определенной папки. Флаг «-s» выводит только итоговые значения, а «-h», как мы уже видели в предыдущих командах, делает вывод удобочитаемым.

du -sh /var/www/*

Если на вашем VPS работает несколько веб-сайтов, указанная выше команда покажет, какой сайт потребляет больше всего места, и поможет определить каталоги, которые можно очистить.

Поиск файлов и обработка текста

18. grep: Ищет текстовые шаблоны в файлах

Grep расшифровывается как «global regular expression print» (глобальный поиск по регулярному выражению). Ранее я использовал команду «grep» с нашей командой «ps aux». Позвольте объяснить, что она на самом деле делает.

Эту команду можно использовать для поиска текста или шаблонов regex в больших текстах. Используйте grep «искомый термин» <имя файла> для поиска конкретного текста в файле. Добавьте «-r» для рекурсивного поиска по каталогам и «-i» для поиска без учета регистра.

grep -r "database_name" /var/www/html/

Это находит все файлы, содержащие имя вашей базы данных, что необходимо для отслеживания ссылок на конфигурацию или устранения проблем с подключением.

19. find: Ищет файлы и каталоги по различным критериям

Эта команда помогает найти файлы в вашем пути, соответствующие определенному имени или шаблону.

Вы можете использовать find <путь> -name «шаблон» для поиска файлов, соответствующих определенному шаблону. Поиск можно осуществлять по имени, размеру, времени изменения или типу файла.

find /var/www -name "*.log" -size +100M

Это находит файлы журналов размером более 100 МБ, помогая выявить файлы, которые необходимо ротировать или очистить для освобождения дискового пространства.

20. chmod: Изменяет права доступа к файлам и каталогам

Права доступа к файлам в Linux могут быть сложными, и я не могу объяснить их здесь подробно, но Red Hat написал исчерпывающую статью, объясняющую права доступа к файлам.

Когда вы разберетесь с правами доступа к файлам, вы сможете использовать команду «chmod» для их обновления.

Используйте chmod <права> <имя файла> для установки доступа для указанного файла.

«Права» в данном случае используют числовую нотацию, где «7=чтение+запись+выполнение», «6=чтение+запись», «4=только чтение».

chmod 600 /var/www/html/wp-config.php

Установка прав 777 для критических файлов открывает ваш сервер для уязвимостей безопасности.

Поэтому вам нужно знать, какие права абсолютно необходимы, и предоставлять только их. Веб-файлам обычно требуются права 644, а каталогам веб-сайтов — 755 для корректной работы.

Уровень инфраструктуры: команды для производственных сред

Linux Commands List: 32 Essentials (+ Cheat Sheet)

Когда вам нужно управлять сетевыми аспектами ваших серверов, эти команды могут быстро отличить компетентных администраторов от тех, кто испытывает трудности, когда реальные проблемы поражают рабочие веб-сайты.

Сетевая диагностика и управление

21. ping: Проверяет сетевое соединение и измеряет время отклика

Команда «ping» проверяет, может ли ваш сервер подключиться к другому веб-сайту или серверу. Вы можете пинговать как доменное имя, так и IP-адрес.

Использование просто ping <хост/IP> создаст бесконечный пинг, пока вы не остановите его вручную. Вы можете добавить «-c 4», чтобы команда отправила только 4 пакета для проверки соединения и остановилась.

ping -c 4 yourdomain.com

Linux Commands List: 32 Essentials (+ Cheat Sheet)

Если ping полностью не удается, либо DNS не работает, либо есть проблема с сетевым подключением, и вы можете начать сужать круг поиска отсюда.

22. curl: Передает данные на серверы или с серверов, используя различные протоколы

В терминале получить веб-сайт и загрузить пакеты довольно сложно. У вас нет браузера или подключенного пользовательского интерфейса.

Эта команда имеет множество параметров, поэтому вы, возможно, захотите пройти официальный учебник по использованию curl, чтобы полностью понять его.

Но для проверки, отвечает ли веб-сайт, вам нужен только параметр «-I» (заглавная i). Этот параметр помогает curl получать HTTP-заголовки вместо загрузки полного HTML с веб-сайта.

curl -I https://yourdomain.com

Linux Commands List: 32 Essentials (+ Cheat Sheet)

Это показывает коды состояния HTTP («200=успех», «404=не найдено», «500=ошибка сервера») и заголовки ответа, выявляя проблемы, которые браузеры могут скрывать.

23. netstat: Показывает сетевые подключения и прослушиваемые службы

Netstat — еще одна обширная команда, которая помогает отслеживать ваши сетевые подключения, проверять, какие порты открыты на вашем сервере, какие службы прослушивают конкретные порты и многое другое.

Страница руководства netstat охватывает все флаги, если вы хотите углубиться.

Для серверного использования вам в основном понадобится команда «netstat -tlnp» для отображения прослушиваемых сетевых подключений.

Флаги означают:

  • «-t» TCP-подключения
  • «-l» только прослушиваемые
  • «-n» числовые адреса
  • «-p» идентификаторы процессов

netstat -tlnp | grep :80

Это подтверждает, что ваш веб-сервер прослушивает порт 80. Если ничего не отображается, ваш веб-сервер не запущен или настроен неправильно.

24. ss: Современная замена netstat с лучшей производительностью

Хотя netstat является устаревшим инструментом, который продолжает работать, он может быть медленнее на очень загруженном сервере. Команда «ss» была создана для исправления этого.

Вы можете использовать параметры, аналогичные netstat, с командой ss и получать вывод гораздо быстрее.

ss -tlnp | grep :443

Это проверяет, прослушивает ли ваш веб-сервер SSL-подключения на порту 443, что необходимо для работы веб-сайтов по HTTPS.

Безопасность и контроль доступа

25. sudo: Выполняет команды с повышенными привилегиями

Sudo, сокращение от «super user do» (сделать от суперпользователя), позволяет выполнять административные задачи без полного переключения на пользователя root. Это помогает запускать команды с подотчетностью и сниженным риском.

Если вы переключитесь на учетную запись «root», вы получите полный контроль над своим сервером и можете случайно удалить файлы, включая возможность удалить операционную систему, пока она работает.

Итак, sudo спасает нас от таких случайностей. Просто добавьте sudo перед любой административной командой, и она запросит ваш пароль.

sudo systemctl restart nginx

Административные задачи, такие как перезапуск служб, требуют повышенных привилегий. Использование sudo безопаснее, чем непосредственный вход в систему как root.

Обратите внимание, что ваш пользователь должен иметь права sudo перед использованием команды sudo.

26. chown: Изменяет владельца файлов и каталогов

В Linux каждый файл принадлежит пользователю и группе. Вы всегда можете изменить владельца файла с помощью команды chown. Вы можете использовать chown <пользователь>:<группа> <имя_файла> для установки владельца файла.

Например, веб-серверы должны быть владельцами файлов сайта, чтобы правильно их обслуживать.

chown -R www-data:www-data /var/www/html/

Эта команда полезна, если вы загружаете файлы через FTP. Такие файлы могут иметь неправильного владельца, и вы можете использовать chown, чтобы это исправить.

27. ssh-keygen: Генерирует пары ключей SSH для безопасной аутентификации

SSH-ключи гораздо безопаснее паролей для доступа к серверу. Закрытый ключ никогда не покидает ваш компьютер — даже при входе в систему он не передаётся, — поэтому хакер, наблюдающий за вашей сетью, не сможет его перехватить. На сервер копируется только открытый ключ.

Выполнение «ssh-keygen -t rsa -b 4096» создаёт файлы открытого и закрытого ключей (или используйте «-t ed25519» — современный вариант по умолчанию).

ssh-keygen -t rsa -b 4096 -C "your@email.com"

Это создаёт пару ключей RSA с длиной 4096 бит. Скопируйте открытый ключ на серверы для аутентификации без пароля и автоматизированных развёртываний.

28. ufw: Простой межсетевой экран Ubuntu для базовой защиты сервера

Каждый сервер нуждается в хорошей настройке брандмауэра. Серверы Ubuntu поставляются с предустановленным брандмауэром ufw; на Debian он устанавливается одной командой apt. (Дистрибутивы семейства RHEL, такие как Fedora и AlmaLinux, вместо него используют firewalld.)

Когда он у вас есть, сначала добавьте правила ufw allow <порт> — начиная с SSH, чтобы не заблокировать себя, — и только затем выполните ufw enable для активации брандмауэра.

sudo ufw allow 22
sudo ufw allow 80
sudo ufw allow 443
sudo ufw enable

Это разрешает трафик SSH (22), HTTP (80) и HTTPS (443), блокируя всё остальное, что обеспечивает базовую, но эффективную защиту сервера.

Уровень эксперта: Команды для автоматизации и масштабирования

Эти команды помогают с автоматизацией и продвинутым администрированием системы для управления веб-сайтами в масштабе.

Linux Commands List: 32 Essentials (+ Cheat Sheet)

Управление службами

29. systemctl: Управляет службами systemd в современных дистрибутивах Linux

Используйте systemctl <действие> <служба> для управления системными службами. Общие действия: start, stop, restart, enable, disable и status.

systemctl status nginx
systemctl restart mysql

Первая команда показывает подробный статус NGINX, включая последние записи журнала. Вторая перезапускает ваш сервер баз данных, чтобы применить любые изменения конфигурации, которые вы могли внести в конфигурацию «mysql».

30. crontab: Планирует автоматические задачи для выполнения в определённое время

Вы не хотите просыпаться среди ночи, чтобы выполнять команды на сервере. Cron-задачи могут сделать это за вас.

Чтобы отредактировать личную таблицу cron, выполните crontab -e, и вы увидите все свои существующие записи cron.

Задачи задаются в формате: минута, час, день, месяц, день недели и команда.

0 2 * * * /usr/local/bin/backup-website.sh

Например, указанная выше задача cron запускает скрипт резервного копирования («backup-website.sh») ежедневно в 2 часа ночи.

Вы можете использовать задачи cron для автоматического резервного копирования, ротации журналов, задач обслуживания и многого другого в ваших производственных средах.

Продвинутая обработка текста

31. sed: Потоковый редактор для фильтрации и преобразования текста

Используйте sed ‘s/старое/новое/g’ <имя_файла> для замены текста в файлах. Добавьте «-i» для редактирования файлов напрямую, а не просто отображения результатов.

sed -i 's/old_database/new_database/g' /var/www/html/wp-config.php

Это заменяет все вхождения “old_database” на “new_database” в вашем конфигурационном файле WordPress; полезно для миграции баз данных.

32. awk: Инструмент поиска по шаблону и извлечения данных

Выполнение awk ‘{print $1}’ <имя_файла> извлекает первое поле (столбец) из каждой строки. Отлично подходит для обработки файлов журналов и структурированных данных.

awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -nr | head -10

Это извлекает IP-адреса из журналов доступа, подсчитывает их и показывает 10 лучших посетителей вашего сайта.

Сценарии реального применения

Время объединить эти команды для типичных ситуаций, с которыми вы столкнётесь при управлении своим VPS. (Нужно освежить знания? Прокрутите вверх к шпаргалке.)

Когда ваш сайт загружается медленно

Начните с проверки того, что потребляет ресурсы вашего сервера.

Запустите top или htop, чтобы увидеть, какие процессы используют больше всего CPU и памяти. Ищите процессы, потребляющие более 50% ресурсов, и проверьте, можно ли их завершить.

Если использование ресурсов выглядит нормально, проверьте доступное дисковое пространство с помощью «df -h». Если вы заметите использование, превышающее 90% на какой-либо файловой системе, освободите место как можно скорее. Всё резко замедляется, когда сервер переполнен.

Далее убедитесь, что ваш веб-сервер действительно работает правильно.

Используйте ps aux | grep nginx (или ps aux | grep apache, если вы используете Apache), чтобы подтвердить, что процессы вашего веб-сервера активны и отвечают.

Проверьте журналы ошибок при тестировании вашего сайта.

Запустите tail -f /var/log/nginx/error.log в одном терминале, затем откройте ваш сайт в окне браузера. Если есть ошибки при работе вашего сайта, вы должны сразу увидеть их в терминале.

Наконец, проверьте время отклика вашего сайта непосредственно с сервера с помощью curl -I https://yoursite.com. Это обходит любые сетевые проблемы и показывает точное время ответа вашего сервера.

Настройка безопасной среды разработки

Создайте выделенную учётную запись пользователя для разработки, вместо использования root для всего:

sudo adduser devuser

Настройте правильную структуру каталогов для вашего промежуточного сайта. Это позволяет хранить файлы разработки в порядке и отдельно от продакшена:

mkdir -p /var/www/staging/{public,logs,backups}

Исправьте права собственности, чтобы ваш веб-сервер мог правильно обращаться к файлам:

chown -R devuser:www-data /var/www/staging

Установите соответствующие права — 755 позволяет владельцу читать/писать/выполнять, предоставляя остальным доступ на чтение и выполнение:

chmod -R 755 /var/www/staging

(Права 755 на всё позволяют быстро запустить промежуточный сайт; для продакшена каталоги получают 755, а обычные файлы — 644.)

Настройте брандмауэр, чтобы разрешить только основные службы. Начните с разрешения SSH, чтобы не заблокировать себя:

sudo ufw allow 22

Разрешите веб-трафик на стандартных портах HTTP и HTTPS:

sudo ufw allow 80
sudo ufw allow 443

Включите брандмауэр, чтобы начать блокировать неавторизованные подключения:

sudo ufw enable

Комбинации команд, демонстрирующие настоящее мастерство

Продвинутые пользователи комбинируют команды для решения сложных задач:

Команда ниже находит процессы nginx, извлекает их PID и завершает все одной строкой:

ps aux | grep nginx | awk '{print $2}' | xargs kill -9

(На практике pkill nginx делает то же самое за один шаг — но построение такого конвейера учит вас принципу.)

Эта команда find автоматически удаляет файлы журналов старше 7 дней, освобождая дисковое пространство:

find /var/log -name "*.log" -mtime +7 -delete

Эта комбинированная команда du показывает 5 самых больших каталогов в вашей корневой веб-директории, отсортированных по размеру:

du -sh /var/www/* | sort -hr | head -5

Если вы получаете ошибки 404, выполните эту команду, чтобы подсчитать их в вашем access.log и выявить битые ссылки:

grep -c " 404 " /var/log/nginx/access.log

Часто задаваемые вопросы о командах Linux

Какие команды Linux стоит выучить в первую очередь?

Начните с девяти базовых команд: ls, pwd, cd, mkdir, cp, mv, cat, head и tail. Они охватывают навигацию по файловой системе и чтение файлов — достаточно, чтобы безопасно исследовать сервер, прежде чем трогать что-то, что его изменяет.

Как увидеть все команды, доступные в моей системе?

Выполните compgen -c (встроенная команда Bash — Bash является оболочкой по умолчанию на большинстве серверов Linux), чтобы вывести список всех команд, которые может найти ваша оболочка. Для любой отдельной команды man с её именем открывает полное руководство, а добавление –help после большинства команд выводит краткую справку по использованию.

Одинаковы ли команды Linux во всех дистрибутивах?

Основные команды из этого списка работают везде. Различия проявляются в системных утилитах: Ubuntu (и часто Debian) устанавливает программное обеспечение с помощью apt и использует брандмауэр ufw, в то время как Fedora и AlmaLinux используют dnf и firewalld. Проверьте документацию вашего дистрибутива по этим вопросам.

Работают ли команды Linux на macOS?

В основном да. macOS основана на Unix, поэтому повседневные команды, такие как ls, cd, grep и ssh, ведут себя так же в её Терминале. Некоторые флаги отличаются, потому что macOS поставляется с BSD-версиями таких инструментов, как sed и grep, поэтому отдельные флаги из руководств по Linux могут не работать.

Итак, что дальше

Когда вы освоите эти 32 команды, вам понадобится качественный VPS-провайдер, который будет быстрым и гибким, предоставляя при этом полный контроль для ваших растущих навыков.

VPS-хостинг DreamHost предлагает именно это. Вы получаете полный root-доступ для безопасных экспериментов, SSD-накопители, которые делают файловые операции молниеносными, и масштабируемые ресурсы, когда ваши проекты перерастают текущие лимиты.

Каждый план включает полный root-доступ, выбор ОС Linux и защиту от DDoS — а наша служба поддержки доступна 24/7, когда возникают проблемы с оборудованием, сетью или подключением.

Linux Commands List: 32 Essentials (+ Cheat Sheet)
Управляемый VPS

Когда вы ожидаете производительность, выберите DreamHost VPS

Большой или маленький, сайт или приложение — у нас есть конфигурация VPS для вас.

Узнать больше