Эффективная работа в командной строке и файловой системе - DevOps с нуля: Путь к автоматизации и CI/CD - Qpel.AI

Эффективная работа в командной строке и файловой системе

Вы уже знаете философию DevOps и роль инженера, который связывает разработку с эксплуатацией. Теперь освоим командную строку Linux — ключевой инструмент DevOps-инженера. Без неё не автоматизировать, не мониторить, не управлять инфраструктурой.

Навигация по файловой системе: ваш проводник в Linux

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

Основные команды для навигации:

  • pwd (print working directory): Покажет, где вы сейчас. Это ваш «текущий адрес».
  • ls (list): Выведет содержимое текущего каталога.
    • ls -l: Подробный список: права доступа, владелец, размер, дата изменения.
    • ls -a: Покажет все файлы, включая скрытые (начинаются с точки, например, .bashrc).
    • ls -lh: То же, что -l, но размер файлов в удобном формате (например, «10K», «2M»).
  • cd (change directory): Перемещает между каталогами.
    • cd /path/to/directory: Переход по абсолютному пути.
    • cd directory_name: Переход в подкаталог.
    • cd ..: На уровень вверх.
    • cd ~: В домашний каталог.
    • cd -: Возврат в предыдущий каталог.

💡 Совет: Используйте Tab для автодополнения команд и путей. Сэкономите время и избежите опечаток!

Работа с файлами и каталогами: создаём, меняем, удаляем

Научились перемещаться — теперь управляем файлами и каталогами.

  • mkdir (make directory): Создаёт новый каталог.
    • mkdir -p /path/to/new/directory: Создаст все промежуточные каталоги, если их нет.
  • touch: Создаёт пустой файл или обновляет время доступа к существующему.
  • cp (copy): Копирует файлы и каталоги.
    • cp file.txt new_file.txt: Копирует файл.
    • cp -r directory/ new_directory/: Рекурсивно копирует каталог со всем содержимым.
  • mv (move): Перемещает или переименовывает файлы и каталоги.
    • mv old_name.txt new_name.txt: Переименовывает файл.
    • mv file.txt /path/to/new/location/: Перемещает файл.
  • rm (remove): Удаляет файлы и каталоги.
    • rm file.txt: Удаляет файл.
    • rm -r directory/: Рекурсивно удаляет каталог со всем содержимым. Будьте крайне осторожны!
    • rm -rf directory/: Рекурсивно удаляет каталог без запроса подтверждения. Используйте с максимальной осторожностью!

Просмотр и редактирование содержимого файлов

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

  • cat (concatenate): Выводит содержимое файла на экран. Удобно для небольших файлов.
  • less: Просмотр больших файлов постранично. Можно листать, искать текст. Для выхода нажмите q.
  • head: Выводит первые 10 строк файла.
    • head -n 5 file.txt: Выведет первые 5 строк.
  • tail: Выводит последние 10 строк файла.
    • tail -n 5 file.txt: Выведет последние 5 строк.
    • tail -f file.log: Отслеживает изменения в файле в реальном времени (полезно для логов). Для выхода нажмите Ctrl+C.
  • nano или vim: Текстовые редакторы командной строки. nano проще для новичков, vim мощнее, но сложнее в освоении.
    • Для nano: nano file.txt. Сохранить: Ctrl+O, выйти: Ctrl+X.
    • Для vim: vim file.txt. Режим вставки: i. Выход из режима вставки: Esc. Сохранить и выйти: :wq. Выйти без сохранения: :q!.

Практическое задание

Закрепите знания на практике в вашей Linux-системе:

  1. Создайте каталог devops_practice в домашнем каталоге.
  2. Перейдите в него.
  3. Внутри devops_practice создайте два подкаталога: scripts и configs.
  4. В каталоге scripts создайте пустой файл first_script.sh.
  5. В каталоге configs создайте файл app.conf и добавьте в него несколько строк текста (например, port=8080, debug=true) с помощью nano или vim.
  6. Скопируйте app.conf в devops_practice, переименовав его в backup_app.conf.
  7. Удалите каталог scripts со всем содержимым.
  8. Проверьте, что всё сделано верно, используя ls и cat.

Что дальше?

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