Hvað eru Linux táknmyndir og hvernig notarðu þau

Samkvæmt Wikipedia er metacharacter einhver einkenni sem hefur sérstaka merkingu, svo sem karat (^), dollara skilti ($) eða stjörnu (*).

Hvað varðar Linux, eru nokkrar af þessum metakennum og merkingar þeirra eru mismunandi eftir því hvaða skipun eða forrit þú ert að keyra.

The Full Stop sem Metacharacter (.)

Hinir auðmjúku stöðvunarnar eru notaðir til að gefa núverandi stöðu þegar þú ert að keyra skipanir eins og geisladiska , finna eða sh, en innan forrita eins og awk , grep og sed er það notað til að tákna hvaða staf sem er.

Sem dæmi er eftirfarandi skipun að finna allar mp3 skrár í núverandi möppu og neðan.

finna. Nafn * .mp3

Ef þú keyrir þessi skipun í núverandi vinnuskrá (pwd) þá muntu líklega fá niðurstöður aftur, miðað við að þú geymir mp3-skrár í tónlistarmöppu innan heimamöppunnar.

Kíktu á þessa skipun:

ps -ef | grep f..efox

PS stjórnin skráir allar gangsetningarferli á tölvunni þinni. Grep stjórnin tekur línur af inntaki og leitar að mynstur.

Þess vegna fær PS -ef stjórnin lista yfir gangandi ferli og gefur það grep sem leitar að hvaða línu sem er á listanum sem hefur f..efox þar sem. getur þýtt hvaða staf.

Ef þú ert með eldi í gangi færðu samsvörun. Á sama hátt, ef þú ert með forrit sem heitir fonefox eða freefox hlaupandi verða þau einnig skilað.

Stjörnurnar sem metacharacter (*)

Stjörnan er almennt vel þekkt metakarakter og er notað til að meina 0 eða fleiri þegar leitað er að mynstur.

Til dæmis:

finna. Nafn * .mp3

The * .mp3 skilar samsvörun fyrir hvaða skrá sem endar í .mp3. Á sama hátt gæti ég notað stjörnuna með grep stjórninni eins og eftirfarandi sýnir:

ps -ef | grep F * efox

Það er athyglisvert að þetta er ólíkt lítillega vegna þess að stjörnurnar þýðir núll eða meira svo og að finna eldur, facefox og fonefox það getur líka fundið flutefox, ferretfox og jafnvel bara fefox.

The Carat sem Metacharacter (^)

Karatið (^) er notað til að tákna upphaf línu eða streng. Svo hvernig er það notað?

Skráin ls er notuð til að skrá allar skrár í möppu sem hér segir:

ls

Ef þú vilt vita allar skrár í möppu sem byrjar með ákveðinni streng eins og "gnome" þá getur karatið verið notað til að tilgreina þessi streng.

Til dæmis:

ls | grep ^ gnome

Athugaðu að þetta skráir aðeins skrár sem byrja á gnome. Ef þú vilt skrár sem hafa gnome í skráarnafninu einhvers staðar þá myndi þú aftur snúa aftur til stjörnunnar.

Í dæminu hér að ofan skilar ls lista yfir skráarnöfn og sendir það lista til grep sem er notað til að passa við mynstur. Grep veit að carat táknið þýðir að finna eitthvað sem byrjar með stafi sem koma eftir það og í þessu tilfelli er það gnome.

Dollar táknið sem Metacharacter ($)

Gengi Bandaríkjadals táknið getur haft margvísleg merkingu sem metakarakter innan Linux.

Þegar það er notað til að passa við mynstur þýðir það hið gagnstæða að hylja og táknar hvaða mynstur sem endar með tilteknu strengi.

Til dæmis:

ls | grep png $

Þetta sýnir allar skrár sem endar með png.

Bandaríkjadals táknið er einnig notað til að fá aðgang að umhverfisbreytur innan bash skel.

Til dæmis:

Útflutningur hundur = molly
echo $ hundur

Línaútflutningshundurinn = Molly skapar umhverfisbreytu sem heitir hundur og setur gildi þess að molly. Til að fá aðgang að umhverfisbreytunni er $ táknið notað. Með $ tákninu birtist echo $ hundar yfirlýsingin molly en án þess birtist echo hundar yfirlýsingin bara hundinn.

Sleppi með teikningum

Stundum viltu ekki að metakarakterinn hafi sérstaka merkingu. Hvað ef þú ert með skrá sem heitir f.refox og skrá sem heitir Firefox.

Kíktu á eftirfarandi skipun:

ls | grep f.refox

Hvað finnst þér skilað? Bæði f.refox og eldur eru skilað vegna þess að þau passa bæði við mynstur.

Til að aðeins komast aftur í f.refox þyrfti að komast að því að koma í veg fyrir að fullu stoppi sé að fullu:

ls | grep f \\. refox

Algengar táknmyndir og merkingar þeirra

Listi yfir Linux Metacharacters
Eðli Merking
. Allir persónur
* Núll eða fleiri stafir
^ Passa við hvaða línu eða streng sem byrjar á mynstri (þ.e. ^ gnome)
$ Passa við hvaða línu eða streng sem endar með mynstur (þ.e. gnome $)
\ Losar næsta staf til að fjarlægja sérstaka merkingu þess
[] Passaðu einn af listanum eða sviðinu (þ.e. ["abc", "def"] eða [1..9]
+ Passaðu eitt eða fleiri fyrirfram (þ.e. grep a +)
? Match núll eða einn fyrirfram