Какие команды Linux наиболее важны для бэкенд-разработчика и в каких сценариях вы их используете?

Ответ

Для бэкенд-разработчика командная строка Linux — это основной инструмент для развертывания, отладки и мониторинга приложений. Я бы сгруппировал ключевые команды по задачам:

1. Навигация и работа с файлами

  • ls -la: Посмотреть содержимое директории с деталями (права, владелец, размер).
  • cd: Переместиться в другую директорию.
  • pwd: Узнать текущий путь.
  • cp -r: Скопировать файлы или директории (рекурсивно).
  • mv: Переместить или переименовать файл/директорию.
  • rm -rf: Удалить файл или директорию (рекурсивно и без подтверждения).
  • mkdir -p: Создать директорию, включая все родительские.

2. Анализ логов и текстовых файлов

  • cat: Вывести содержимое файла в консоль.
  • less: Постранично просмотреть большой файл с возможностью поиска.
  • tail -f /path/to/logfile.log: Следить за логами в реальном времени. Ключевая команда для отладки.
  • grep 'error' app.log: Найти все строки, содержащие слово 'error' в файле app.log.
  • journalctl -u myapp.service -f: Просмотр логов системной службы (systemd) в реальном времени.

3. Работа с процессами

  • ps aux | grep 'my-app': Найти процесс моего приложения.
  • top / htop: Мониторинг системных ресурсов и запущенных процессов в реальном времени.
  • kill <PID>: Отправить сигнал процессу (по умолчанию TERM для корректного завершения).
  • kill -9 <PID>: Принудительно "убить" зависший процесс.

4. Сеть и API

  • curl: Отправить HTTP-запрос для тестирования API прямо из терминала. curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' http://localhost:8080/api.
  • netstat -tulnp или ss -tulnp: Посмотреть, какие порты прослушиваются и какими процессами. Очень полезно для проверки, запустился ли сервис.

5. Администрирование и развертывание

  • ssh user@host: Подключиться к удаленному серверу.
  • scp: Безопасно скопировать файлы на удаленный сервер или с него.
  • chmod: Изменить права доступа к файлу (например, chmod +x my_script.sh, чтобы сделать его исполняемым).
  • chown: Изменить владельца файла/директории.

Пример комплексной задачи: Найти 5 самых ресурсоемких процессов и вывести информацию о них.

ps aux --sort=-%mem | head -n 6