Որոնք են Linux Metacharacters եւ ինչպես եք դրանք օգտագործել

Վիքիպեդիայի տվյալներով, մետաքսարթարն այն բնույթն է, որը հատուկ նշանակություն ունի, օրինակ, կարատ (^), դոլարի նշան ($) կամ աստղանիշ (*):

Linux- ի առումով, այս մեթախարացիների արդար թվերը կան, եւ դրանց իմաստները տարբերվում են, թե ինչ հրաման կամ ծրագիր եք վարում:

Լրիվ կանգառը, որպես մետաքսարաքար (.)

Համեստ լրիվ կանգառը օգտագործվում է ներկայիս դիրքը նվիրաբերելու համար, երբ գործում են հրամաններ, ինչպիսիք են cd , գտնել կամ sh, բայց այնպիսի ծրագրերում, ինչպիսիք են awk , grep եւ sed, այն օգտագործվում է ցանկացած բնույթով:

Որպես օրինակ, հետեւյալ հրահանգը կգտնի բոլոր MP3 ֆայլերը ընթացիկ թղթապանակում եւ ստորեւ:

գտնել: - անունը * .mp3

Եթե ​​դուք գործադրեք այդ հրամանը ձեզ ներկայացնել աշխատանքային գրացուցակը (pwd), ապա հավանաբար կստանաք արդյունքները, ենթադրելով, որ ձեր mp3 ֆայլերը պահեք ձեր տան պանակում գտնվող երաժշտական ​​թղթապանակում:

Այժմ նայեք այս հրամանին.

ps -ef | grep f..efox

PS հրամանը ցուցադրում է ձեր համակարգչի վրա գործող բոլոր գործընթացները: The grep հրամանը տեւում է գծերի մուտքագրման եւ որոնման օրինակ.

Հետեւաբար, ps -ef հրամանը ստացվում է հոսող գործընթացների ցանկ եւ տալիս է այն grep- ով, որը որոնում է որեւէ գծի ցանկում, որն ունի f.efox որտեղ: կարող է նշանակել ցանկացած բնույթ:

Եթե ​​դուք ունեք firefox վազք, դուք կստանաք մի խաղ: Նմանապես, եթե դուք ունեք ծրագիր, որը կոչվում է fonefox կամ freefox վազում, նրանք նույնպես կվերադարձվեն:

Աստղանիշը որպես մետաքսարար (*)

Աստղանիշը ավելի համընդհանուր ճանաչված մետաքսարթար է եւ օգտագործվում է 0 կամ ավելի նշանակություն, երբ փնտրվում է օրինակ:

Օրինակ:

գտնել: - անունը * .mp3

* .mp3- ը վերադարձնում է համընկնում ցանկացած ֆայլի համար, որը ավարտվում է .mp3- ով: Նմանապես, ես կարող եմ օգտագործել աստղանիշը grep հրամանով, ինչպես ցույց է տալիս հետեւյալը.

ps -ef | grep F * efox

Հարկ է նշել, որ սա փոքր-ինչ տարբերվում է, քանի որ Աստղանշանը նշանակում է զրո կամ ավելի, ինչպես նաեւ գտնելու firefox, facefox եւ fonefox- ը, այն նաեւ կարող է գտնել flutefox, ferretfox եւ նույնիսկ fefox:

The Carat որպես Metacharacter (^)

Կարատը (^) օգտագործվում է նշելու գծի կամ լարային սկիզբը: Ինչպես է այն օգտագործվում:

Ls հրամանը օգտագործվում է բոլոր ֆայլերը թղթապանակում հետեւյալ կերպ.

ls

Եթե ​​ցանկանում եք իմանալ բոլոր ֆայլերը մի թղթապանակում, որը սկսվում է որոշակի տողից, ինչպիսիք են «gnome», ապա կարատը կարող է օգտագործվել, նշելու այդ տողը:

Օրինակ:

ls | գաղտնիքը

Նշենք, որ սա միայն ցուցակվում է ֆայլեր, որոնք սկսվում են gnome- ից: Եթե ​​ուզում եք ֆայլեր, որոնք ունեն ֆայլի անունը որեւէ վայրում, ապա կրկին կվերադառնաք աստղանիշ:

Վերոնշյալ օրինակում ls- ը վերադարձնում է ֆայլերի անվանումների ցանկը եւ այդ ցուցակը փոխանցում է grep- ին, որը օգտագործվում է օրինակների համապատասխանության համար: grep- ը գիտի, որ կարատյան սիմվոլը նշանակում է գտնել ինչ-որ բան, որը սկսվում է այն հերոսներից, որոնք գալիս են դրանից հետո, եւ այս դեպքում, դա gnome է:

Դոլարի սիմվոլը `որպես Metacharacter ($)

Դոլարային սիմվոլը կարող է ունենալ բազմաթիվ իմաստներ, որպես մետաքսարարներ Linux- ում:

Երբ օգտագործվում են նախշերով, դա նշանակում է կարատին հակառակ եւ նշում է ցանկացած տիպի օրինակ, որը ավարտվում է որոշակի տողերով:

Օրինակ:

ls | grep png $

Սա թվարկում է բոլոր ֆայլերը, որոնք ավարտվում են png- ով:

Դոլարի խորհրդանիշը նույնպես օգտագործվում է միջերկրային փոփոխականներին մուտքի շաբլոնի մեջ:

Օրինակ:

արտահանման շունը = molly
echo $ dog

Գծային արտահանման շունը = molly ստեղծում է շրջակա միջավայրի փոփոխական շուն եւ սահմանում է իր արժեքը molly. Միջավայրի փոփոխականին մուտք գործելու համար օգտագործվում է $ խորհրդանիշ: $ Խորհրդանիշով echo $ dog հայտարարությունը ցույց է տալիս մոլլային, բայց առանց դրա, echo շների հայտարարությունը պարզապես ցույց է տալիս բառը շուն:

Փախչող Metacharacters

Երբեմն դուք չեք ցանկանում, որ metacharacter- ը հատուկ իմաստ ունենա: Ինչ է, եթե ունեք ֆայլ f.refox եւ firefox կոչվող ֆայլ:

Այժմ նայեք հետեւյալ հրամանին.

ls | grep f.refox

Ինչ եք կարծում, վերադարձվում է: Երկու f.refox- ը եւ firefox- ը վերադարձվում են, քանի որ երկուսն էլ համապատասխանում են օրինակին:

Միայն f.refox- ը վերադարձնելու համար հարկավոր է խուսափել ամբողջական դադարից `իրականում նշանակում է ամբողջական կանգառ, հետեւյալ կերպ.

ls | grep f \\. refox

Ընդհանուր Metacharacters եւ դրանց նշանակությունը

Linux- ի Metacharacters- ի ցուցակը
Նիշերը Իմաստը
. Ցանկացած բնավորություն
* Զրո կամ ավելի նիշ
^ Համապատասխանում ցանկացած գիծ կամ տող, որը սկսվում է օրինակով (այսինքն `^ gnome)
$ Համապատասխանի ցանկացած տող կամ տող, որը ավարտվում է օրինակով (այսինքն gnome $)
\ Խուսափում է հաջորդ բնույթից, հեռացնելով իր հատուկ իմաստը
[] Ցանկի կամ ընդգրկույթի մեկի հանդիպում (այսինքն ["abc", "def"] կամ [1..9]
+ Համեմատեք մեկ կամ ավելի նախորդ (այսինքն grep a +)
Հաճախակի Խաղի զրո կամ մեկ նախորդ