Linux metaraksti un to nozīmes

Metarakstzīme ir jebkura rakstzīme, kurai ir īpaša nozīme, piemēram, karāts (^), dolāra zīme ($) vai zvaigznīte (*). Linux ir diezgan daudz šo metarakstzīmju, un to nozīme atšķiras atkarībā no tā, kuras Linux komanda vai jūsu izmantotā programma.

Punkts kā metavaronis (.)

Pilna pietura (.) norāda pašreizējo pozīciju, izpildot komandas, piemēram, cd, atrast, vai sh. Tādos lietojumos kā awk, grep, un sed, tā ir aizstājējzīme, kas apzīmē noteiktu jebkuras rakstzīmes skaitli.

Piemēram, šī komanda atrod visu MP3 faili pašreizējā mapē un tās apakšmapēs.

atrast. -type f -name '*.mp3'

Ja palaižat šo komandu pašreizējā darba direktorijā (pwd), jūs redzēsit atgrieztos rezultātus, pieņemot, ka MP3 failus glabājat mūzikas mapē mājas mapē.

Tagad apskatiet šo komandu:

ps -ef | grep f..fox

Komanda ps uzskaita visus datorā darbojošos procesus. Komanda grep ņem ievades rindas un meklē modeli.

Linux punkta raksturs

Komanda ps -ef izgūst esošo procesu sarakstu. Caurule (|) metaraksts nosūta šo sarakstu komandai grep, kas meklē jebkuru rindiņu sarakstā, kurā ir

f..lapss, kur punkti attiecas uz diviem no jebkura rakstura.

Ja darbojas Firefox, jūs saņemsit atbilstību. Līdzīgi, ja darbojas programma fonefox vai freefox, tās arī tiek atgrieztas.

Ja jums ir jāmeklē tikai viena rakstzīme, nevis izmantojiet punktu (.) metarakstzīmi, izmantojiet? metaraksturs. Izmantojot? metaraksts attiecas uz jebkuru atsevišķu rakstzīmi modeļa sākumā vai beigās.

Zvaigznīte kā metavaronis (*)

Zvaigznīte (*) ir vispārzināms metaraksts. Meklējot paraugu, tas nozīmē nulli vai vairāk jebkuras rakstzīmes. Piemēram:

ls *.flac
Linux saraksts ar zvaigznīti

The *.flac komandas daļa atgriež atbilstību jebkuram faila nosaukumam, kas beidzas ar .flac. Līdzīgi varat izmantot zvaigznīti ar komandu grep pēdējā sadaļā šādi:

ps -ef | grep f*fox

Tas nedaudz atšķiras, jo zvaigznīte nozīmē nulli vai vairāk, tāpēc ne tikai firefox, facefox un fonefox, bet arī flutefox, ferretfox un fefox.

Linux zvaigznītes rakstzīme

Karāts kā metavaronis (^)

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

Komanda ls uzskaita failus mapē šādi:

ls -a

Ja vēlaties uzskaitīt failus mapē, kas sākas ar noteiktu virkni, piemēram, gnome, šīs virknes norādīšanai var izmantot karātu. Piemēram:

ls -a | grep ^gnome

Šeit ir uzskaitīti faili, kas sākas ar gnome. Ja vēlaties failus, kuru nosaukumā ir gnome, izmantojiet zvaigznīti.

Linux karātu raksturs

Iepriekš minētajā piemērā komanda ls atgriež failu nosaukumu sarakstu un nodod šo sarakstu komandai grep, kas tiek izmantota paraugu saskaņošanai. Greps zina, ka karātu simbols nozīmē atrast jebko, kas sākas ar rakstzīmēm, kas nāk aiz tā, un šajā gadījumā tas ir rūķis.

Dolāra simbols kā metarakstzīme ($)

Dolāra simbols ($) Linux kā metarakstzīmei ir vairākas nozīmes. Ja to lieto, lai saskaņotu modeļus, tas nozīmē pretēju karātu un apzīmē jebkuru rakstu, kas beidzas ar noteiktu virkni. Piemēram:

ls | grep png$

Šeit ir uzskaitīti visi faili, kas beidzas ar png.

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

#! /bin/bash
eksporta suns=molly
atbalss $suns
Linux dolāra zīmes raksturs

Līnija eksporta suns=molly izveido vides mainīgo, ko sauc suns un nosaka tā vērtību molly. Lai piekļūtu vides mainīgajam, izmantojiet simbolu $. Ar simbolu $, atbalss $suns paziņojums parāda Molly. Bez tā, atbalss suns paziņojumā tiek parādīts vārds suns.

Aizbēgšanas metarakstzīmes (\\)

Dažreiz jūs nevēlaties, lai metaraksturam būtu īpaša nozīme. Piemēram, ja tiek izsaukts fails f.refox un tiek izsaukts cits fails firefox.

Tagad apskatiet šādu komandu:

ls | grep f.refox

Kas, jūsuprāt, tiek atgriezts? Tiek atgriezti gan f.refox, gan firefox, jo abi atbilst modelim.

Linux evakuācijas rakstzīme

Lai atgrieztu tikai f.refox, izvairieties no punkta, lai faktiski nozīmētu punktu, kā norādīts tālāk:

ls | grep f\\.refox

Iekavas kā metarakstzīmes ([])

Varat izmantot iekavas ([ ]), meklējot modeļus. Iekavās ir norādīti konkrēti burti, kas atbilst jebkurai raksta vietai. Piemēram:

ls | grep [abc]

Šeit ir uzskaitīti visi faili, kas satur burtus a, b vai c.

Linux iekavu rakstzīme

Varat izmantot iekavas meklēšanas modeļa sākumā, beigās vai vidū.

Lai meklētu burtu diapazonu, izmantojiet defisi (-). Piemēram, ls [a-h]* atgriež failus, kas sākas ar jebkuru burtu no a līdz h.

Akcenta kapa metavaronis

Iepriekš minētajos piemēros caurules metaraksts nosūta vienas komandas (piemēram, komandas ls) rezultātus citai komandai (piemēram, komandai grep).

Alternatīvs veids, kā to izdarīt, ir izmantot aizmugurējo pēdiņu, kas pazīstama arī kā akcenta kaps (`), lai vienas komandas rezultātus ievietotu citā komandā. Lai to izdarītu, saglabājiet vienas komandas rezultātu mainīgajā. Piemēram:

command=`ls -lah`
echo $command
Linux backtick raksturs

Piemērs ir ļoti izdomāts, un jūs, visticamāk, nekad neko tādu nedarīsit, taču jūs varat redzēt, kā tas darbojas. Atkāpšanās rakstzīme izpilda komandu un saglabā rezultātu. Tas var būt noderīgi skriptēšanā, taču tas ir mazāk elastīgs nekā caurules izmantošana vienkāršām komandām.

Izplatītākie metaraksti un to nozīmes

Raksturs Nozīme
. Jebkurš varonis.
* Nulle vai vairāk rakstzīmju.
^ Saskaņojiet jebkuru rindiņu vai virkni, kas sākas ar rakstu (piemēram, ^gnome).
$ Saskaņojiet jebkuru rindiņu vai virkni, kas beidzas ar rakstu (piemēram, gnome$).
\ Aizbēg no nākamās rakstzīmes, lai noņemtu tās īpašo nozīmi.
[] Atbilst vienam no saraksta vai diapazona (piemēram, ["abc", "def"] vai [1..9]).
+ Atbilst vienam vai vairākiem iepriekšējiem (piemēram, grep a+).
? Atbilst nullei vai vienam iepriekš.