Наиболее мощной функцией оболочки Linux Bash является ее способность работать с файлами и эффективно перенаправлять их ввод и вывод. Linux использует специальные символы или символы, известные как метасимволы, которые придают особое значение команде оболочки в отношении поиска файлов и соединения команд.

Метасимволы полезны при выводе списка, удалении и копировании файлов в Linux. Однако функция каждого метасимвола различается в зависимости от команды, с которой вы его используете.

В этой статье представлено подробное руководство по различным типам метасимволов в Linux. Наконец, мы объясним, как эти специальные символы помогают в соединении и расширении команд.

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

Вот некоторые метасимволы сопоставления файлов, которые может интерпретировать оболочка Linux:

instagram viewer
  • * (звездочка): Соответствует одному или нескольким вхождениям символа.
  • ? (Вопросительный знак): Соответствует одному символу или вхождению шаблона.
  • [ ] (Квадратных скобках): Соответствует любому числу, символу или алфавиту, разделенному дефисом, указанному в квадратных скобках.

Идеальный способ попрактиковаться в метасимволах в Linux — создать новую пустую папку внутри /tmp каталог.

sudo mkdir/tmp/meta

Теперь перейдите в /tmp/meta каталог с использованием команда компакт-диска и создавать новые пустые файлы с помощью сенсорного экрана, следующее:

сенсорный apple.txt cider.sh уксус.php cat.txt лимон.txt сок.sh catfish.sh 

Используйте следующие команды для проверки "*" метасимвол и отобразить выходные данные:

лс с*
Вывод:
catfish.sh cat.txt cider.sh
лс с*ч
Вывод:
сома.ш сидр.ш
лс *р*
Вывод:
cider.sh уксус.php
судо рм *р*

Вышеупомянутая команда удалит все файлы, содержащие в своем имени букву «p». Вы можете проверить изменение с помощью команды ls следующим образом:

лс
Вывод:
catfish.sh cat.txt сидр.sh сок.sh лимон.txt

Вот несколько примеров "?" метасимвол для сопоставления с образцом:

а?*
Вывод:
яблоко.txt
лс с? т*
Вывод:
catfish.sh cat.txt

Последняя команда соответствует любому файлу, который начинается с с и имеет т как третья буква (cat.txt, catfish.sh и т.д.).

Теперь используйте [средний]* с помощью команды ls, чтобы вывести список всех файлов, начинающихся с а или в, следующее:

лс [ср]*
Вывод:
apple.txt уксус.sh

Вы можете изменить приведенную выше команду, чтобы отображались только файлы, которые заканчиваются буквой т:

лс [ас]*[т]
Вывод:
apple.txt сом.txt cat.txt

Точно так же вы можете использовать буквы, разделенные дефисом, для определения диапазонов и списка файлов следующим образом:

лс [а-дж]*
Вывод:
apple.txt сом.sh cat.txt сидр.sh сок.sh

Для лучшего понимания перенаправления в Bash каждый процесс в Linux имеет файловые дескрипторы, известные как стандартный ввод (стандарт/0), стандартный вывод (стандартный вывод/1) и стандартная ошибка (стандартный вывод/2). Они определяют источник ввода команды и решают, куда отправлять вывод и сообщения об ошибках.

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

Другими словами, метасимволы перенаправления файлов Linux позволяют вам перенаправлять содержимое на (>) и из (<) файлы. Три основных метасимвола перенаправления:

  1. <: Направляет содержимое файла команде. Например, вывод команды для меньше .bashrc такой же как меньше < .bashrc.
  2. >: Направляет вывод команды в файл. Команда лс /etc > lists.txt сохраняет вывод в файл lists.txt.
  3. >>: Добавляет вывод команды к содержимому файла.

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

Связанный: Понимание стандартного ввода-вывода в Linux

Метасимвол расширения фигурной скобки позволяет вам расширять символы по каталогам, именам файлов или другим аргументам командной строки. Например, вы можете создать новый каталог скоба внутри /tmp папку и создайте набор файлов с помощью сенсорной команды следующим образом:

sudo mkdir /tmp/brace; компакт-диск /tmp/скобка
сенсорный тест{1,2,3,4,5}

Теперь вы можете проверить, создал ли touch файлы или нет, используя команду ls.

лс
Вывод:
тест1 тест2 тест3 тест4 тест5

Вы можете указать несколько списков для создания имен файлов на основе комбинаций элементов в списке. Например:

коснись {яблока, сидра, уксуса}. {фрукта, жидкости, кислого}
коснитесь {a, b, c}.{1,2,3}

Последняя команда создаст в текущем каталоге следующие файлы:

Первая команда использует два набора фигурных скобок для связывания имен файлов в каждом наборе с другим. Вы также можете написать последнюю команду как коснитесь {a..c}.{1..3} чтобы указать диапазон между a и c и 1 и 3.

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

Вот таблица некоторых метасимволов, которые должны быть известны для подключения и расширения команд, с их именами, описанием и примерами для практики:

Имя Описание Пример
Труба (|) Соединяет выходные данные команды в качестве входных данных с другой командой. кот /etc/passwd | корень grep
Точка с запятой (;) Позволяет выполнять последовательные команды, одну за другой. диск /и т.д.; лс-ла; chmod +x /tmp/script.php
Амперсанд (&) Запускает процессы или команды в фоновом режиме. найти / -perm -u=s -тип f &
Доллар ($) Разворачивает арифметическое выражение и передает его оболочке echo "всего файлов в этом каталоге: $(ls | wc -l)"
Нулевое перенаправление (2>) Направляет стандартные сообщения об ошибках в файл /dev/null your_command 2>/dev/null
Циркумфлекс (^) Соответствует любому шаблону, который начинается с выражения, за которым следует ^ компакт-диск /etc/ssh; лс | grep ^s

Метасимволы Linux также известны как подстановочные знаки, которые добавляют особое значение командам и управляют их поведением. Метасимволы оптимизируют производительность работы пользователя в продуктивной среде при работе с файлами/каталогами и подключении/расширении команд оболочки Linux.

Кроме того, метасимволы также являются строительными блоками регулярных выражений. Кроме того, изучение метасимволов и их использования является важным навыком, если вы хотите стать профессиональным пользователем Linux.

Руководство для начинающих по регулярным выражениям в Python

Хотите ускорить рабочий процесс Python с помощью нескольких простых команд? Регулярные выражения — ваш друг.

Читать дальше

доляТвитнутьЭлектронное письмо
Похожие темы
  • линукс
  • Linux элементарный
  • Оболочка Linux Bash
Об авторе
Румайса Ниази (опубликовано 5 статей)

Румаиса — независимый писатель в MUO. Она носила много шляп, от математика до энтузиаста информационной безопасности, и теперь работает аналитиком SOC. Ее интересы включают чтение и письмо о новых технологиях, дистрибутивах Linux и обо всем, что связано с информационной безопасностью.

Другие работы Румайсы Ниази

Подписывайтесь на нашу новостную рассылку

Подпишитесь на нашу рассылку технических советов, обзоров, бесплатных электронных книг и эксклюзивных предложений!

Нажмите здесь, чтобы подписаться