Метасимволи Linux та їх значення

Метасимвол — це будь-який символ, який має особливе значення, наприклад, карат (^), знак долара ($) або зірочка (*). У Linux є чимала кількість цих метасимволів, і їх значення різняться в залежності від того, які Команда Linux або програму, яку ви використовуєте.

Крапка як метасимвол (.)

Повна зупинка (.) вказує поточну позицію під час виконання таких команд, як CD, знайти, або sh. У таких додатках, як awk, grep, і sed, це символ підстановки, який позначає конкретне число будь-якого символу.

Як приклад, наступна команда знаходить все MP3 файли у поточній папці та її підтеках.

знайти. -type f -name '*.mp3'

Якщо ви запустите цю команду в поточному робочому каталозі (pwd), ви побачите повернені результати, припускаючи, що ви зберігаєте файли MP3 у музичній папці у своїй домашній папці.

Тепер подивіться на цю команду:

ps -ef | grep f..efox

Команда ps перераховує всі запущені процеси на вашому комп’ютері. Команда grep приймає рядки введення та шукає шаблон.

Символ точки Linux

Команда ps -ef отримує список запущених процесів. труба (

|) метасимвол надсилає цей список команді grep, яка шукає будь-який рядок у списку, який містить f..efox, де крапка стосується двох будь-яких символів.

Якщо Firefox запущено, ви отримаєте відповідність. Аналогічно, якщо запущена програма під назвою fonefox або freefox, вони також повертаються.

Якщо вам потрібно шукати лише один символ, замість використання метасимволу крапки (.), використовуйте? метасимвол. Використання? метасимвол відноситься до будь-якого окремого символу на початку або в кінці шаблону.

Зірочка як метасимвол (*)

зірочка (*) є загальновідомим метасимволом. Це означає нуль або більше будь-яких символів під час пошуку шаблону. Наприклад:

ls *.flac
Список зірочок Linux

The *.flac частина команди повертає відповідність для будь-якого імені файлу, яке закінчується на .flac. Аналогічно, ви можете використовувати зірочку з командою grep в останньому розділі наступним чином:

ps -ef | grep f*efox

Це дещо відрізняється, оскільки зірочка означає нуль або більше, тому окрім пошуку firefox, facefox і fonefox він також знаходить flutefox, ferretfox і fefox.

Символ зірочки Linux

Карат як метасимвол (^)

карат (^) використовується для позначення початку рядка або рядка. Отже, як його використовують?

Команда ls відображає список файлів у папці, як показано нижче:

ls -a

Якщо ви хочете перерахувати файли в папці, які починаються з певного рядка, наприклад, gnome, для визначення цього рядка можна використовувати карат. Наприклад:

ls -a | grep ^gnome

Тут перелічено файли, які починаються з gnome. Якщо вам потрібні файли, у назві файлу яких є gnome, використовуйте зірочку.

Лінукс каратний символ

У наведеному вище прикладі команда ls повертає список імен файлів і передає цей список команді grep, яка використовується для відповідності шаблону. Греп знає, що символ карата означає знайти все, що починається з символів, які йдуть після нього, і в даному випадку це гном.

Символ долара як метасимвол ($)

Символ долара ($) має кілька значень як метасимвол у Linux. Коли використовується для відповідності візерункам, це означає протилежність карату і позначає будь-який візерунок, який закінчується певним рядком. Наприклад:

ls | grep png$

Тут перераховані всі файли, які закінчуються на png.

Символ долара також використовується для доступу до змінних середовища в оболонці bash. Наприклад:

#! /bin/bash
експорт собака = Моллі
луна $dog
Linux знак долара

Лінія експорт собака = Моллі створює змінну середовища під назвою собака і встановлює його значення Моллі. Щоб отримати доступ до змінної середовища, використовуйте символ $. За допомогою символу $ луна $dog заява відображає Моллі. Без цього луна собака висловлювання відображає слово собака.

Екранування метасимволів (\\)

Іноді ви не хочете, щоб метасимвол мав особливе значення. Наприклад, якщо викликається файл f.refox і викликається інший файл firefox.

Тепер подивіться на таку команду:

ls | grep f.refox

Як ви думаєте, що повертається? Повертаються як f.refox, так і firefox, оскільки обидва відповідають шаблону.

Екранний символ Linux

Щоб повернути лише f.refox, уникайте крапки, щоб фактично означати крапку, як показано нижче:

ls | grep f\\.refox

Дужки як метасимвол ([])

Ви можете використовувати дужки ([ ]) під час пошуку шаблонів. Дужки вказують конкретні літери, які відповідають будь-якому місці візерунка. Наприклад:

ls | grep [abc]

Тут перераховані всі файли, які містять літери a, b або c.

Символ дужки Linux

Ви можете використовувати дужки на початку, в кінці або в середині шаблону пошуку.

Для пошуку діапазону літер використовуйте символ дефіс (-). Наприклад, ls [a-h]* повертає файли, які починаються з будь-якої літери від a до h.

Метаперсонаж Accent Grave

У наведених вище прикладах метасимвол pipe надсилає результати однієї команди (наприклад, команди ls) іншій команді (наприклад, команді grep).

Альтернативний спосіб зробити це - використовувати зворотну цитату, також відому як акцентна могила (`), щоб вставити результати однієї команди в іншу команду. Для цього збережіть результат однієї команди у змінній. Наприклад:

команда=`ls -lah`
echo $command
Символ зворотної галочки Linux

Приклад дуже надуманий, і ви, швидше за все, ніколи не зробите нічого подібного, але ви можете побачити, як це працює. Символ зворотної галочки запускає команду та зберігає результат. Це може бути корисно при написанні сценаріїв, але це менш гнучко, ніж використання каналу для простих команд.

Поширені метасимволи та їх значення

характер Сенс
. Будь-який персонаж.
* Нуль або більше символів.
^ Установіть відповідність будь-якому рядку або рядку, які починаються з шаблону (наприклад, ^gnome).
$ Установіть відповідність будь-якому рядку або рядку, що закінчується візерунком (наприклад, gnome$).
\ Екранує наступний символ, щоб видалити його особливе значення.
[] Відповідайте одному зі списку або діапазону (наприклад, ["abc", "def"] або [1..9]).
+ Знайдіть відповідність одному або кільком попереднім (наприклад, grep a+).
? Збігайте нуль або один з попередніх.