Подстановка и раскрытие шаблонов в оболочке
Разберитесь, как оболочка раскрывает команды, включая подстановку скобок, тильды и шаблонов имён файлов.
«Подстановка и раскрытие шаблонов в оболочке» — бесплатный урок DevOps Bootcamp на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения DevOps Bootcamp, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс DevOps Bootcamp содержит 4 уроков всего.
Что такое раскрытие команд оболочкой?
В Linux оболочка служит своеобразным переводчиком между Вами и операционной системой. Перед выполнением команды оболочка часто выполняет некоторые «магические» действия, называемые раскрытием.
Раскрытие оболочкой означает, что она ищет в команде специальные символы или шаблоны и заменяет их чем-то другим. Это происходит до фактического выполнения команды, экономит время на ввод и делает команды более мощными!
Домашний каталог с помощью тильды `~`
Раскрытие тильды (~) — очень удобное сокращение. Оно автоматически заменяется на домашний каталог текущего пользователя.
Вместо ввода /home/yourusername можно просто использовать ~. Это особенно удобно при переходе к файлам в домашней папке или обращении к ним.
echo ~
echo ~/DocumentsТильда для других пользователей
Тильда предназначена не только для Вашего домашнего каталога! С её помощью можно также обратиться к домашнему каталогу другого пользователя.
Если ввести ~username, оболочка заменит это выражение на домашний каталог указанного пользователя «username». Это удобно для доступа к общим файлам или конфигурациям.
~rootбудет заменено на/root~guestбудет заменено на/home/guest
Раскрытие фигурных скобок `{}`
Раскрытие фигурных скобок позволяет создавать произвольные строки. Это быстрый способ создать несколько элементов по одному шаблону, не вводя их по отдельности.
Оболочка раскрывает содержимое фигурных скобок {} в список отдельных слов. Это очень удобно для создания файлов или каталогов с похожими именами, а также для выполнения команд над несколькими элементами.
echo {apple,banana,cherry}Диапазоны в фигурных скобках
С помощью раскрытия фигурных скобок можно также создавать последовательности чисел или букв. Для этого внутри скобок используются два элемента, разделённые символами ...
Оболочка создаёт все элементы последовательности, что упрощает создание пронумерованных файлов или каталогов и перебор набора значений.
echo file_{1..3}.txt
echo {a..c}_report.logВведение в подстановку шаблонов
Подстановка шаблонов — это способ оболочки сопоставлять имена файлов и пути с помощью специальных символов-шаблонов. Это похоже на использование «поискового шаблона» для поиска файлов.
Когда Вы вводите команду вроде ls *.txt, оболочка не передаёт *.txt команде ls. Вместо этого она раскрывает *.txt в список всех подходящих файлов текущего каталога, а затем передаёт этот список команде ls.
Сопоставление любых символов с помощью `*`
Звёздочка (*) — наиболее распространённый шаблонный символ. Она соответствует нулю или более символам в имени файла.
С её помощью можно сопоставить любую последовательность символов, поэтому она очень удобна для выбора файлов по части их имён.
mkdir -p glob_test
touch glob_test/report.txt glob_test/image.jpg glob_test/document.pdf
echo "Files ending in .txt:"
ls glob_test/*.txt
rm -rf glob_testСопоставление одного символа с помощью `?`
Шаблонный символ вопросительный знак (?) соответствует ровно одному символу.
Это полезно, когда известна точная длина нужной части имени файла, но неизвестен сам символ.
mkdir -p glob_test
touch glob_test/file1.log glob_test/file2.log glob_test/fileA.log
echo "Files matching file?.log:"
ls glob_test/file?.log
rm -rf glob_testОпределённые символы `[]`
С помощью квадратных скобок ([]) можно сопоставить любой один символ из указанного набора.
Это обеспечивает более точное сопоставление, чем ?. Можно перечислить отдельные символы или указать диапазон (например, [a-z] для любой строчной буквы или [0-9] для любой цифры).
mkdir -p glob_test
touch glob_test/photoA.png glob_test/photoB.png glob_test/photoC.png glob_test/photoD.png
echo "Files matching photo[A-C].png:"
ls glob_test/photo[A-C].png
rm -rf glob_testКомбинации шаблонов
Можно комбинировать разные шаблоны подстановки и даже раскрытие фигурных скобок для мощного выбора файлов.
Оболочка обрабатывает эти раскрытия слева направо, создавая сложные шаблоны, которые точно соответствуют Вашим требованиям.
mkdir -p glob_test
touch glob_test/data_01.csv glob_test/data_02.txt glob_test/data_a.log glob_test/info_01.txt
echo "Files matching data_[0-9]*.{txt,csv}:"
ls glob_test/data_[0-9]*.{txt,csv}
rm -rf glob_testБыстрая проверка
Какая из следующих команд выведет список файлов с именами report1.doc, report2.doc и report3.doc, но НЕ reportA.doc?
Повторение и дальнейшие шаги
Отличная работа! Вы узнали, как оболочка раскрывает команды ещё до их выполнения. Эта «магия» делает работу в командной строке значительно эффективнее.
- Раскрытие тильды (
~): сокращение для обозначения домашних каталогов. - Раскрытие фигурных скобок (
{}): создаёт пользовательские строки или последовательности. - Подстановка шаблонов (
*,?,[]): сопоставляет имена файлов с помощью шаблонных символов для мощного выбора по шаблону.
Понимание этих механизмов важно для написания эффективных и лаконичных команд. Продолжайте практиковаться!
Часто задаваемые вопросы
Урок «Подстановка и раскрытие шаблонов в оболочке» бесплатный?
Да — полный текст урока «Подстановка и раскрытие шаблонов в оболочке» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс DevOps Bootcamp, подпишись на CoddyKit PRO. Курс DevOps Bootcamp содержит 4 уроков всего.
Чему я научусь в уроке «Подстановка и раскрытие шаблонов в оболочке»?
Разберитесь, как оболочка раскрывает команды, включая подстановку скобок, тильды и шаблонов имён файлов. Ты практикуешь DevOps Bootcamp с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать DevOps Bootcamp?
Предыдущий опыт не требуется. DevOps Bootcamp на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.
Сколько времени занимает урок «Подстановка и раскрытие шаблонов в оболочке»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке DevOps Bootcamp?
Да. Каждый урок DevOps Bootcamp включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Управление заданиями (bg, fg, jobs)
- Подстановка и раскрытие шаблонов в оболочке
- Псевдонимы и пользовательские приглашения
- Функции оболочки и повторно используемые фрагменты