Эффективная работа в командной строке и файловой системе
Вы уже знаете философию 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-системе:
- Создайте каталог
devops_practiceв домашнем каталоге. - Перейдите в него.
- Внутри
devops_practiceсоздайте два подкаталога:scriptsиconfigs. - В каталоге
scriptsсоздайте пустой файлfirst_script.sh. - В каталоге
configsсоздайте файлapp.confи добавьте в него несколько строк текста (например,port=8080,debug=true) с помощьюnanoилиvim. - Скопируйте
app.confвdevops_practice, переименовав его вbackup_app.conf. - Удалите каталог
scriptsсо всем содержимым. - Проверьте, что всё сделано верно, используя
lsиcat.
Что дальше?
Вы освоили основы работы с командной строкой и файловой системой. Это фундамент для DevOps-инженера. Но что, если нужно управлять программами, пользователями или следить за происходящим в системе? В следующем разделе мы углубимся в эти вопросы: научимся управлять пакетами, пользователями и процессами. Это ваш следующий шаг к полному контролю над Linux-средой.