Cilat janë Metakaraktorët e Linux dhe Si t'i Përdorni ato

Sipas Wikipedia, një metakaraktë është çdo karakter që ka një domethënie të veçantë, të tilla si një karat (^), dollar ($) ose një yll (*).

Përsa i përket Linux, ka një numër të drejtë të këtyre metakaraktorëve dhe kuptimet e tyre ndryshojnë në varësi të komandës ose programit që po kandidoni.

Ndalimi i plotë si një metakarakter (.)

Ndalesa e përulur e plotë përdoret për të dhuruar pozicionin aktual kur drejton komanda të tilla si cd , find ose sh por brenda aplikacioneve të tilla si awk , grep dhe sed, ajo përdoret për të treguar ndonjë karakter.

Si shembull, komanda e mëposhtme do të gjejë të gjitha skedarët mp3 në dosjen aktuale dhe më poshtë.

Gjej . -name * .mp3

Nëse e kryeni atë komandë në dosjen tuaj të punës (pwd), atëherë ndoshta do të merrni rezultate të kthyera, duke supozuar që të mbani skedarët tuaj në një dosje muzikore brenda dosjes tuaj në shtëpi.

Tani shikoni këtë komandë:

ps -ef | grep f..efox

Komanda ps rendit të gjitha proceset në proces në kompjuterin tuaj. Komanda grep merr linjat e hyrjes dhe kërkimet për një model.

Prandaj komanda ps -ef merr një listë të proceseve drejtuese dhe i jep atë grep që kërkon për çdo linjë në listën që ka f..efox ku. mund të nënkuptojë çdo karakter.

Nëse ju keni firefox running ju do të merrni një ndeshje. Në mënyrë të ngjashme, nëse keni një program që quhet fonefox ose freefox, ata gjithashtu do të kthehen.

Ylli si një metakarakter (*)

Ylli është një metakarakter më i njohur dhe përdoret për të kuptuar 0 ose më shumë kur kërkon një model.

Për shembull:

Gjej . -name * .mp3

* .mp3 kthen një ndeshje për çdo skedar që përfundon në .mp3. Në mënyrë të ngjashme, unë mund të kisha përdorur yllin me komandën grep si tregimet e mëposhtme:

ps -ef | grep F * efox

Vlen të përmendet se kjo ndryshon paksa për shkak se yll do të thotë zero ose më shumë, si dhe gjetja e firefox, facefox dhe fonefox ajo gjithashtu mund të gjejë flutefox, ferretfox dhe madje edhe vetëm fefox.

Karat si një metakarakter (^)

Karat (^) përdoret për të treguar fillimin e një rreshti ose një vargu. Pra, si përdoret?

Komanda ls përdoret për të listuar të gjitha skedarët në një dosje si më poshtë:

ls

Nëse doni të dini të gjitha skedarët në një dosje që fillon me një varg të caktuar si "gnome" atëherë karat mund të përdoret për të specifikuar atë varg.

Për shembull:

ls | grep ^ gnome

Vini re se kjo vetëm liston skedarët që fillojnë me gnome. Nëse doni që skedarët që kanë një gnome në emrin e skedarit kudo, atëherë do të ktheheni përsëri në yll.

Në shembullin e mësipërm, ls kthen një listë të emrave të skedarëve dhe kalon atë listë në grep që përdoret për përputhjen e modeleve. grep e di se simboli i karatës do të thotë të gjesh diçka që fillon me personazhet që vijnë pas tij dhe në këtë rast, është gnome.

Simboli i dollarit si një metakarakter ($)

Simboli i dollarit mund të ketë kuptime të shumëfishta si një metakarakter në Linux.

Kur përdoret për të përputhur modelet kjo do të thotë e kundërta me karat dhe tregon çdo model që përfundon me një varg të caktuar.

Për shembull:

ls | grep png $

Kjo liston të gjitha skedarët që përfundojnë me png.

Simboli i dollarit përdoret gjithashtu për të hyrë në variablave të mjedisit brenda shell bash.

Për shembull:

qeni i eksportit = molly
echo $ qen

Qeni i eksportit qen = molly krijon një ndryshore mjedisore të quajtur qen dhe e vendos vlerën e saj në molly. Për të hyrë në variablën e mjedisit përdoret simboli $. Me simbolin $ simbolin echo $ qen shfaqet me molly por pa atë, deklarata e qenve echo vetëm tregon fjalën qen.

Arratisja e Metakarakteve

Ndonjëherë ju nuk dëshironi që metakaraktori të ketë një kuptim të veçantë. Çka nëse keni një skedar të quajtur f.refox dhe një skedar të quajtur firefox.

Tani shikoni komandën e mëposhtme:

ls | grep f.refox

Çfarë mendoni se është kthyer? Të dy f.refox dhe firefox janë kthyer sepse ata të dy përputhen me modelin.

Për të kthyer vetëm f.refox ju do të duhet të ikni nga ndalesa e plotë për të vërtetë të thotë një ndalesë të plotë si më poshtë:

ls | grep f \\. refoksi

Metakaraktet e Përbashkët dhe Kuptimet e tyre

Lista e Linux Metacharacters
karakter kuptim
. Çdo karakter
* Zero ose më shumë karaktere
^ Përputhni çdo vijë ose varg që fillon me një model (p.sh. ^ gnome)
$ Përputhni çdo vijë ose varg që përfundon me një model (dmth. Gnome $)
\ Shpëton karakterin tjetër për të hequr kuptimin e tij të veçantë
[] Përputhni një nga një listë ose varg (p.sh. ["abc", "def"] ose [1..9]
+ Përputhni një ose më shumë përpara (dmth grep a +)
? Ndeshje zero ose një e mëparshme