Kas ir Linux meta zīmējumi un kā jūs tos izmantojat

Saskaņā ar Vikipēdijas datiem meta raksturs ir jebkura rakstzīme, kurai ir īpaša nozīme, piemēram, karats (^), dolāra zīme ($) vai zvaigznīte (*).

Runājot par Linux, ir daudz šādu meta zīmu, un to nozīme atšķiras atkarībā no tā, kuru komandu vai programmu jūs izmantojat.

Pilns pieturas kā metasaraksts (.)

Pazemīgā pilna pietura tiek izmantota, lai ziedotu pašreizējo pozīciju, izpildot tādas komandas kā cd , find vai sh, bet tādās lietojumprogrammās kā awk , grep un sed, to izmanto, lai apzīmētu jebkuru rakstzīmi.

Piemēram, šī komanda atradīs visus mp3 failus pašreizējā mapē un zemāk.

atrast -name * .mp3

Ja palaižat šo komandu, jūs iesniedzat darba direktoriju (pwd), tad jūs, iespējams, saņemsit rezultātus, pieņemot, ka jūs saglabājat savus mp3 failus mūzikas mapē jūsu mājas mapē.

Tagad skatiet šo komandu:

ps -ef | grep f..efox

Komandā ps tiek uzskaitīti visi jūsu datorā esošie procesi. Grep komanda ņem ievades rindas un meklē paraugu.

Tāpēc ps -ef komanda saņem sarakstu ar darbības procesiem un dod tai grep, kas meklē jebkuru līniju sarakstā, kuram ir f..efox kur. var nozīmēt jebkuru raksturu.

Ja jums ir aktivizēts Firefox, jūs saņemsiet spēles. Tāpat, ja jums ir programma, kuras nosaukums ir fonefox vai freefox, tie tiks arī atgriezti.

Zvaigznīte kā meta raksturs (*)

Zvaigznīte ir vairāk universāli pazīstams meta raksturs, un to izmanto, lai apzīmētu 0 vai vairāk, meklējot modeli.

Piemēram:

atrast -name * .mp3

* .mp3 atgriež atbilstību jebkuram faila nosaukumam, kas beidzas ar .mp3. Tāpat es varētu izmantot zvaigznīti ar grep komandu, kā parādīts tālāk:

ps -ef | grep F * efox

Ir vērts atzīmēt, ka tas nedaudz atšķiras, jo zvaigznīte nozīmē nulli vai vairāk, kā arī atrast firefox, facefox un fonefox, tā var atrast arī flutefox, ferretfox un pat tikai fefox.

Karāts kā metasarakts (^)

Karātu (^) izmanto, lai apzīmētu līnijas vai virknes sākumu. Tātad, kā tas tiek izmantots?

LS komanda tiek izmantota, lai sarakstā iekļautu visus failus šādā veidā:

ls

Ja jūs vēlaties uzzināt visus failus mapē, kas sākas ar noteiktu virkni, piemēram, "gnome", tad karātu var izmantot, lai norādītu šo virkni.

Piemēram:

ls | grep ^ gnome

Ņemiet vērā, ka tajā ir uzskaitīti tikai tie faili, kas sākas ar gnome. Ja jūs vēlaties, lai faili, kuriem kādā faila nosaukumā ir gnome, tiktu atkal atgriezti zvaigznīte.

Iepriekš minētajā piemērā ls atgriež failu nosaukumu sarakstu un to pārraida grep, kas tiek izmantota paraugu saskaņošanai. grep zina, ka karātu simbols nozīmē atrast visu, kas sākas ar rakstzīmēm, kas nāk pēc tā, un šajā gadījumā tas ir gnome.

Dolāra simbols kā metasaraksts ($)

Dolāra simbolam Linux var būt vairākas nozīmes kā meta zīmi.

Izmantojot, lai saskaņotu modeļus, tas nozīmē pretējo karātam un apzīmē jebkuru modeli, kas beidzas ar konkrētu virkni.

Piemēram:

ls | grep png $

Šajā sarakstā ir uzskaitīti visi faili, kas beidzas ar png.

Dolāra simbols tiek izmantots arī, lai piekļūtu vides mainīgajiem lielumiem bash apvalkā.

Piemēram:

eksporta suns = molly
echo $ suns

Line export dog = molly rada vides mainīgo nosaukumu suns un nosaka vērtību molly. Lai piekļūtu vides mainīgajam, tiek izmantots $ simbols. Ar $ simbolu echo $ suns paziņojums parāda melly, bet bez tā echo suns paziņojums tikai parāda vārdu suns.

Izvairīties no meta zīmēm

Dažreiz jūs nevēlaties, lai metazīmei būtu īpaša nozīme. Ko darīt, ja jums ir fails ar nosaukumu f.refox un fails ar nosaukumu firefox.

Tagad skatiet šādu komandu:

ls | grep f.refox

Ko jūs domājat, ir atdota? Tiek atgriezti gan f.refox, gan firefox, jo tie abi atbilst modelim.

Lai atgrieztos tikai f.refox, jums vajadzētu izvairīties no pilnas pieturas, lai faktiski varētu apstāties šādi:

ls | grep f \\. refox

Kopējās metaformas un to nozīme

Saraksts ar Linux meta zīmēm
Raksturs Jēga
. Jebkurš raksturs
* Nulle vai vairāk rakstzīmes
^ Atbilst jebkurai līnijai vai virknei, kas sākas ar modeli (ti, ^ gnome)
$ Atbilst jebkurai līnijai vai virknei, kas beidzas ar modeli (ti, gnome $)
\ Izvairās no nākamā rakstzīmes, lai noņemtu tā īpašo nozīmi
[] Atrodiet vienu no saraksta vai diapazona (ti, ["abc", "def"] vai [1..9]
+ Saskaņojiet vienu vai vairākus iepriekšējos (ti, grep a +)
? Saskaņojiet nulli vai iepriekšējo