Наиболее мощной функцией оболочки Linux Bash является ее способность работать с файлами и эффективно перенаправлять их ввод и вывод. Linux использует специальные символы или символы, известные как метасимволы, которые придают особое значение команде оболочки в отношении поиска файлов и соединения команд.
Метасимволы полезны при выводе списка, удалении и копировании файлов в Linux. Однако функция каждого метасимвола различается в зависимости от команды, с которой вы его используете.
В этой статье представлено подробное руководство по различным типам метасимволов в Linux. Наконец, мы объясним, как эти специальные символы помогают в соединении и расширении команд.
Оболочка Linux позволяет экономить нажатия клавиш при вводе команд, используя метасимволы между именами файлов или каталогов. Эти символы помогают вам обратиться к группе файлов или каталогу для перечисления, перемещения или выполнения других действий.
Вот некоторые метасимволы сопоставления файлов, которые может интерпретировать оболочка Linux:
- * (звездочка): Соответствует одному или нескольким вхождениям символа.
- ? (Вопросительный знак): Соответствует одному символу или вхождению шаблона.
- [ ] (Квадратных скобках): Соответствует любому числу, символу или алфавиту, разделенному дефисом, указанному в квадратных скобках.
Идеальный способ попрактиковаться в метасимволах в 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 позволяют вам перенаправлять содержимое на (>) и из (<) файлы. Три основных метасимвола перенаправления:
- <: Направляет содержимое файла команде. Например, вывод команды для меньше .bashrc такой же как меньше < .bashrc.
- >: Направляет вывод команды в файл. Команда лс /etc > lists.txt сохраняет вывод в файл lists.txt.
- >>: Добавляет вывод команды к содержимому файла.
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 с помощью нескольких простых команд? Регулярные выражения — ваш друг.
Читать дальше
- линукс
- Linux элементарный
- Оболочка Linux Bash

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