Linux Metacharacters ni Nini na Je, Unazitumiaje

Kulingana na Wikipedia, metacharacter ni tabia yoyote inayo maana maalum, kama vile carat (^), ishara ya dola ($) au asterisk (*).

Kwa upande wa Linux, kuna idadi ya haki ya metacharacters hizi na maana zao zinatofautiana kulingana na amri au programu gani unayoendesha.

Full Stop Kama Metacharacter (.)

Kazi kamili ya unyenyekevu hutumiwa kutoa msimamo wa sasa wakati wa kuendesha amri kama vile cd , kupata au sh lakini ndani ya programu kama vile awk , grep na sed itumiwa kutaja tabia yoyote.

Kwa mfano, amri ifuatayo itapata faili zote za mp3 kwenye folda ya sasa na chini.

pata. -name * .mp3

Ikiwa unatumia amri hiyo katika saraka ya kazi ya kazi (pwd) basi utapata matokeo yanayorejeshwa, akifikiri unaweka faili zako za muziki kwenye folda ya muziki ndani ya folda yako ya nyumbani.

Sasa angalia amri hii:

ps -ef | grep f..efox

Swala la PS linataja mchakato wote wa mbio kwenye kompyuta yako. Amri ya grep inachukua mistari ya pembejeo na utafutaji wa mfano.

Kwa hiyo, amri ya ps -ef hupata orodha ya michakato inayoendesha na inatoa kwa grep ambayo inatafuta mstari wowote katika orodha ambayo ina f. inaweza kumaanisha tabia yoyote.

Ikiwa una firefox kukimbia utapata mechi. Vivyo hivyo, ikiwa una mpango unaoitwa fonefox au freefox kukimbia watarudi tena.

Thesteriski kama metacharacter (*)

Thesterisk ni metacharacter inayojulikana zaidi duniani na hutumiwa kumaanisha 0 au zaidi wakati unatafuta mfano.

Kwa mfano:

pata. -name * .mp3

The * .mp3 inarudi mechi kwa jina lolote la faili ambalo linaisha .mp3. Vilevile, ningeweza kutumia thesteriski kwa amri ya grep kama inavyoonyesha:

ps -ef | grep F * efox

Ni muhimu kutambua kwamba hii inatofautiana kidogo kwa sababu asterisk ina maana zero au zaidi hivyo kama vile kutafuta firefox, facefox na fonefox inaweza pia kupata flutefox, ferretfox na hata fefox tu.

Carat Kama Metacharacter (^)

Carat (^) hutumiwa kutaja mwanzo wa mstari au kamba. Kwa hiyo hutumiwaje?

Amri ya ls hutumiwa kuorodhesha faili zote kwenye folda kama ifuatavyo:

l

Ikiwa unataka kujua faili zote kwenye folda ambayo huanza kwa kamba fulani kama "bnome" kisha carat inaweza kutumika kutaja kamba hiyo.

Kwa mfano:

ls | grep ^ gnome

Kumbuka kwamba hii inataja tu faili zinazoanza na vyema. Ikiwa unataka faili zilizo na jina la jina lolote mahali popote basi ungependa kurudi tena kwenye asteriski.

Katika mfano hapo juu, ls inarudi orodha ya majina na majaribio ambayo yanajenga grep ambayo hutumiwa kulingana na muundo. grep anajua kwamba ishara ya carat ina maana ya kupata kitu chochote ambacho kinaanza na wahusika wanaokuja baada yake na katika kesi hii, ni ya kawaida.

Dalili ya Dollar Kama Metacharacter ($)

Ishara ya dola inaweza kuwa na maana nyingi kama metacharacter ndani ya Linux.

Wakati unatumika kufanana na mwelekeo ina maana kinyume cha carat na inaashiria muundo wowote unaoishi na kamba fulani.

Kwa mfano:

ls | grep png $

Hii inaorodhesha faili zote zinazofikia na png.

Ishara ya dola pia hutumiwa kufikia vigezo vya mazingira ndani ya shell ya bash.

Kwa mfano:

mbwa nje = molly
Echo mbwa $

Mbwa wa nje ya nje = molly hujenga variable ya mazingira inayoitwa mbwa na huweka thamani yake kwa molly. Ili kufikia mabadiliko ya mazingira alama ya $ hutumiwa. Pamoja na dola ya dalili ya kielelezo cha dhana ya kiu $ huonyesha molly lakini bila, maelezo ya mbwa ya echo yanaonyesha tu mbwa neno.

Kukimbia Metacharacters

Wakati mwingine hawataki metacharacter kuwa na maana maalum. Nini kama una faili inayoitwa f.refox na faili inayoitwa firefox.

Sasa angalia amri ifuatayo:

ls | grep f.refox

Unadhani unarudije? Wote f.refox na firefox wanarudi kwa sababu wote wanafanana na muundo.

Ili tu kurudi f.refox unahitaji kuepuka kuacha kamili kwa kweli maana ya kusimama kamili kama ifuatavyo:

ls | grep f \\ refox

Machapisho ya kawaida na maana yao

Orodha ya Metacharacters ya Linux
Tabia Maana
. Tabia yoyote
* Zero au wahusika zaidi
^ Tanisha mstari wowote au kamba ambayo huanza na muundo (yaani ^ mzuri)
$ Tanisha mstari wowote au kamba inayomalizika na muundo (yaani $ mingi)
\ Inakimbia tabia inayofuata kuondoa maana yake maalum
[] Tanisha orodha moja au aina (yaani ["abc", "def"] au [1..9]
+ Mechi moja au zaidi iliyotangulia (yaani grep a +)
? Mechi ya sifuri au moja iliyotangulia