Што такое Linux метасімвалаў і як вы іх выкарыстоўваць

Згодна з Вікіпедыі, метасімвалы любы знак, які мае асаблівае значэнне, напрыклад, карат (^), знак даляра ($) або зорачкай (*).

З пункту гледжання Linux, існуе значная колькасць гэтых метасімвалаў і іх значэння адрозніваюцца ў залежнасці ад таго, якая каманда ці праграма, якую вы выкарыстоўваеце.

Поўная прыпынак як Метасімвал (.)

Пакорлівы поўнага прыпынку выкарыстоўваецца , каб ахвяраваць бягучай пазіцыі пры выкананні каманд , такіх як кампакт - дыск , знайсці або ш , але ў такіх прыкладаннях, як AWK , Grep і СЭД выкарыстоўваецца для абазначэння любога знака.

У якасці прыкладу, наступная каманда будзе знайсці ўсе mp3 файлы ў бягучай тэчцы і ніжэй.

знайсці. -name * .mp3

Калі запусціць гэтую каманду ў вас працоўным каталогу (PWD), то вы, верагодна, атрымаеце вынікі вяртаюцца, калі вы трымаеце вашыя mp3 файлы ў тэчцы музыкі ў вашай хатняй тэчцы.

Цяпер паглядзім на гэтую каманду:

пс -ef | Grep f..efox

Каманда спісы п.с. ўсе запушчаныя працэсы на вашым кампутары. Каманда Grep прымае радкі ўводу і пошуку па шаблоне.

Таму микросотовая -ef каманда атрымлівае спіс запушчаных працэсаў і дае яму Grep, якая шукае любую радок у спісе, які мае f..efox дзе. можа азначаць любы знак.

Калі ў вас ёсць Firefox працуе, вы атрымаеце матч. Сапраўды гэтак жа, калі ў вас ёсць праграма пад назвай fonefox або freefox працы яны будуць вернутыя.

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

Зорачка больш універсальна вядомы метасімвалы і выкарыстоўваецца для абазначэння 0 або больш пры пошуку па шаблоне.

Напрыклад:

знайсці. -name * .mp3

* .mp3 вяртае запалку для любога файла, які заканчваецца ў .mp3. Аналагічным чынам, я мог бы выкарыстаць зорачку з ГРЭП каманды, як паказвае наступнае:

пс -ef | Grep F * efox

Варта адзначыць, што гэта крыху адрозніваецца тым, што зорачка азначае нуль ці больш, а таксама знайсці FireFox, facefox і fonefox ён можа таксама знайсці flutefox, ferretfox і нават проста fefox.

Карат як Метасімвал (^)

Карат (^) выкарыстоўваецца для абазначэння пачатку радкі або радкі. Так як яна выкарыстоўваецца?

Каманда Ls выкарыстоўваецца для атрымання спісу ўсіх файлаў у тэчцы наступным чынам:

Ls

Калі вы хочаце ведаць усе файлы ў тэчцы, якая пачынаецца з пэўнай радком, напрыклад, «гном», то карат можа быць выкарыстана для ўказанні гэтага радка.

Напрыклад:

Ls | Grep ^ гном

Звярніце ўвагу, што гэта толькі спіс файлаў, якія пачынаюцца з гномам. Калі вы хочаце, каб файлы, якія маюць гном у імя файла ў любым месцы, то вы б зноў вярнуцца да зорачцы.

У прыведзеным вышэй прыкладзе, вяртае Ls спіс імёнаў файлаў і перадае гэты спіс ГРЭП, які выкарыстоўваецца для супастаўлення з узорам. Grep ведае, што сімвал карата азначае знайсці ўсё, што пачынаецца з сімваламі, якія прыходзяць пасля яго, і ў гэтым выпадку, гэта гномы.

Сімвал даляра як Метасімвал ($)

Сімвал даляра можа мець некалькі значэнняў, як Метасімвал ў Linux.

Пры выкарыстанні ў адпаведнасці мадэлі гэта азначае, што процілегла карат і пазначае любы ўзор, які заканчваецца пэўнай радком.

Напрыклад:

Ls | Grep Png $

У гэтым спісе пералічаныя ўсе файлы, якія заканчваюцца PNG.

Сімвал даляра таксама выкарыстоўваецца для доступу да пераменным акружэння ў Баш абалонкі.

Напрыклад:

экспарт сабака = Молі
Рэха $ сабака

Экспартная лінія сабака = Молі стварае зменную асяроддзі з імем сабакі і ўсталёўвае яго значэнне для Molly. Каб атрымаць доступ да зменнай асяроддзя выкарыстоўваецца сімвал $. З сімвалам $ рэха выраз $ сабакі адлюстроўвае Molly, але без яго, рэха заяву сабакі проста выводзіць слова сабакі.

экранаванне метасімвалаў

Часам вы не хочаце метасімвалаў мець асаблівае значэнне. Што рабіць, калі ў вас ёсць файл з імем f.refox і файл з імем светлячок.

Цяпер паглядзім на наступную каманду:

Ls | Grep f.refox

Як вы думаеце, вяртаюцца? Абодва f.refox і светлячок вяртаюцца, таму што яны абодва адпавядаюць шаблоне.

Каб вярнуць толькі f.refox вам спатрэбіцца, каб пазбегнуць поўнага прыпынку на самай справе азначае поўную прыпынак наступным чынам:

Ls | Grep е \\. ReFox

Агульныя метасімвалы і іх значэнне

Спіс Linux метасімвалаў
характар сэнс
, любы сімвал
* Нуль ці больш сімвалаў
^ Матч любой радкі або радок, якія пачынаюцца з малюнкам (г.зн. ^ гном)
$ Матч любой радкі або радкі, якія заканчваюцца шаблон (г.зн. гномы $)
\ Ігнаруе наступны знак, каб выдаліць яго асаблівае значэнне
[] Матч адзін з спісу або дыяпазону (г.зн. [ «а», «DEF»] або [1..9]
+ Матч адзін або некалькі папярэдніх (г.зн. Grep а +)
? Матч нуль або адзін папярэдні