Какие основные команды в Linux используются для работы с файлами и каталогами?

«Какие основные команды в Linux используются для работы с файлами и каталогами?» — вопрос из категории Linux, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

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

Навигация и просмотр:

  • pwd — показывает текущий рабочий каталог.
  • ls — выводит список файлов и каталогов. Часто использую с флагами -la для детального просмотра.
  • cd — смена каталога.

Создание и удаление:

  • mkdir — создание каталога. mkdir -p позволяет создать цепочку вложенных каталогов, что полезно для подготовки структуры логов или конфигов.
  • touch — создание пустого файла или обновление временных меток.
  • rm — удаление файлов. rm -rf — рекурсивное удаление каталогов (использую с крайней осторожностью).
  • rmdir — удаление пустого каталога.

Копирование, перемещение и переименование:

  • cp — копирование. cp -r для рекурсивного копирования каталогов.
  • mv — перемещение или переименование файлов/каталогов.

Просмотр и анализ содержимого:

  • cat — вывод всего содержимого файла (например, конфигурации).
  • less / more — постраничный просмотр больших файлов (логов).
  • head / tail — вывод начала или конца файла. tail -f незаменим для отслеживания логов в реальном времени.

Поиск и права:

  • find — поиск файлов по различным критериям (имя, размер, время).
  • chmod — изменение прав доступа (например, chmod 600 для приватного ключа).
  • chown — смена владельца файла/каталога.

Практический пример из работы:

# Создание структуры для нового сервиса и копирование конфигов
mkdir -p /opt/myapp/{config,logs,backup}
cp app_config.yml /opt/myapp/config/
chmod 640 /opt/myapp/config/app_config.yml
# Мониторинг логов приложения
tail -f /opt/myapp/logs/app.log