Kas yra "Linux" metaforos ir kaip jas naudojate

Pasak Vikipedijos, meta žymeles yra bet koks specialus ženklas, pvz., Karatas (^), dolerio ženklas ($) arba žvaigždutė (*).

Linux požiūriu yra daugybė šių metaforų, o jų reikšmės skiriasi priklausomai nuo to, kokia komanda ar programa jūs naudojate.

"Full stop" kaip metacharacter (.)

Nuolatinis pilnas sustojimas yra naudojamas dabartinei padėčiai paaukoti, kai vykdant komandas, tokias kaip cd , find or sh, bet tokiose programose kaip awk , grep ir sed, ji vartojama bet kokiam simboliui žymėti.

Pavyzdžiui, ši komanda ras visus mp3 failus dabartiniame aplanke ir žemiau.

rasti vardas * .mp3

Jei paleisite šią komandą, pateiksite darbo aplanką (pwd), tada tikriausiai gausite rezultatus, jei išsaugosite savo mp3 failus muzikos aplanke jūsų namų aplanke.

Dabar pažvelk į šią komandą:

ps -ef | grep f..efox

"Ps" komanda nurodo visus jūsų kompiuteryje vykdomus procesus. Grep komandas užima linijas įvesties ir ieško modelio.

Todėl ps-ef komanda gauna veikiančių procesų sąrašą ir suteikia grep, kuris ieško bet kurios eilutės sąraše, kuriame yra f.efox, kur. gali reikšti bet kokį pobūdį.

Jei naudojate "Firefox", gausite rungtynes. Panašiai, jei turite programą, pavadintą fonefox arba freefox, jie taip pat bus grąžinami.

Žvaigždutė kaip metacharacter (*)

Žvaigždutė yra labiau visuotinai žinomas metasarakteris, ir jis naudojamas norint suprasti 0 ar daugiau modelio.

Pavyzdžiui:

rasti vardas * .mp3

* .mp3 grąžina bet kokį failo pavadinimą, kuris baigiasi .mp3. Panašiai galėčiau naudoti žvaigždutę grep komanda, kaip parodyta toliau:

ps -ef | grep F * efox

Verta paminėti, kad tai šiek tiek skiriasi, nes žvaigždutė reiškia nulį ar daugiau, taip pat rasti "firefox", "facefox" ir "fonefox", taip pat gali rasti "flutefox", "ferretfox" ir netgi "fefox".

Carat kaip metacharacter (^)

Karatas (^) naudojamas linijos ar eilutės pradžiai apibūdinti. Taigi, kaip jis naudojamas?

"Ls" komanda yra naudojama sąraše visų failų aplanke:

ls

Jei norite žinoti visus failus, esančius aplanke, kuris prasideda tam tikra eilute, pvz., "Gnome", karatas gali būti naudojamas norint nurodyti tą eilutę.

Pavyzdžiui:

ls | grep ^ gnome

Atkreipkite dėmesį, kad šiame sąraše pateikiami tik failai, kurie prasideda gnome. Jei norite, kad failuose, kuriuose yra gnome, failo pavadinime bet kur, tada vėl grįžtumėte į žvaigždutę.

Pirmiau pateiktame pavyzdyje ls grąžina failų pavadinimų sąrašą ir perkelia šį sąrašą į grep, kuris naudojamas modelio atitikimui. grep žino, kad karatų simbolis reiškia rasti bet ką, kas prasideda nuo simbolių, kurie ateina po jo, ir šiuo atveju tai gnomas.

Dolerio simbolis kaip metaforakt ($)

Dolerio simbolis gali turėti keletą reikšmių kaip metacharacter per Linux.

Kai naudojamas modeliams suderinti, tai reiškia priešingai nei karatais ir žymi bet kokį modelį, kuris baigiasi tam tikra eilute.

Pavyzdžiui:

ls | grep png $

Čia pateikiami visi failai, kurie baigiasi png.

Dolerio simbolis taip pat naudojamas aplinkos kintamiesiems per "bash shell".

Pavyzdžiui:

eksportas dog = molly
echo $ dog

Line export dog = molly sukuria aplinkos kintamąjį, vadinamą šuo, ir nustato jo reikšmę molly. Norėdami pasiekti aplinkos kintamąjį, naudojamas simbolis $. Su simboliu $ echo $ dog apibūdinimas rodo molly, bet be jo, echo šuo pareiškimas tiesiog rodo žodį šuo.

Pabėgti metafores

Kartais nenorite, kad metacharacter būtų ypatinga prasme. Ką daryti, jei turite failą f.refox ir failą pavadinimu firefox.

Dabar žiūrėkite šią komandą:

ls | grep f.refox

Ką manote grąžinamas? Tiek f.refox, tiek "Firefox" grąžinami, nes jie abu atitinka modelį.

Norėdami grįžti tik f.refox, jums reikės ištrūkti iš visiškos sustojimo, kad iš tikrųjų būtų visiškai sustabdytas:

ls | grep f \\. refox

Bendrosios metaforos ir jų reikšmės

"Linux" metaforų sąrašas
Charakteris Prasmė
. Bet koks simbolis
* Nulis ar daugiau simbolių
^ Surinkti bet kurią eilutę ar eilutę, kuri prasideda nuo modelio (ty ^ gnome)
$ Surinkite bet kokią eilutę ar eilutę, kuri baigiasi modeliu (ty gnome $)
\ Ištrūks kitas simbolis, kad pašalintų jo ypatingą reikšmę
[] Susiekite vieną iš sąrašo ar diapazono (ty ["abc", "def"] arba [1..9]
+ Susiekite vieną ar kelis ankstesnius (ty grep a +)
? Prilyginama nuliui arba prieš vieną