Metaznaki v Linuxu in njihovi pomeni

Metaznak je vsak znak, ki ima poseben pomen, na primer karat (^), znak za dolar ($) ali zvezdica (*). Linux ima precej teh metaznakov in njihov pomen se razlikuje glede na to, kateri ukaz za Linux ali program, ki ga uporabljate.

Pika kot metaznak (.)

pika (.) označuje trenutni položaj pri izvajanju ukazov, kot je npr cd, najti, ali sh. V aplikacijah kot npr awk, grep, in sed, je nadomestni znak, ki označuje določeno številko katerega koli znaka.

Na primer, naslednji ukaz najde vse MP3 datoteke v trenutni mapi in njenih podmapah.

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

Če zaženete ta ukaz v trenutnem delovnem imeniku (pwd), boste videli vrnjene rezultate, ob predpostavki, da imate datoteke MP3 v glasbeni mapi v domači mapi.

Zdaj si oglejte ta ukaz:

ps -ef | grep f..efox

Ukaz ps navaja vse procese, ki se izvajajo v vašem računalniku. Ukaz grep vzame vrstice vnosa in išče vzorec.

Znak pike v Linuxu

Ukaz ps -ef pridobi seznam procesov, ki se izvajajo. cev (|) metaznak pošlje ta seznam ukazu grep, ki išče katero koli vrstico na seznamu, ki vsebuje f..efox, kjer se pike nanašajo na dve s katerim koli znakom.

Če Firefox deluje, boste dobili ujemanje. Podobno, če se izvaja program, imenovan fonefox ali freefox, se tudi ti vrnejo.

Če morate iskati samo en znak, namesto metaznaka (.) uporabite? metaznak. Uporabljati? metaznak se nanaša na kateri koli posamezen znak bodisi na začetku ali na koncu vzorca.

Zvezdica kot metaznak (*)

Zvezdica (*) je splošno znan metaznak. Pomeni nič ali več katerega koli znaka pri iskanju vzorca. Na primer:

ls *.flac
Seznam zvezdic za Linux

The *.flac del ukaza vrne ujemanje za katero koli ime datoteke, ki se konča z .flac. Podobno lahko uporabite zvezdico z ukazom grep v zadnjem razdelku, kot sledi:

ps -ef | grep f*efox

To se nekoliko razlikuje, ker zvezdica pomeni nič ali več, zato poleg iskanja firefoxa, facefoxa in fonefoxa najde tudi flutefox, ferretfox in fefox.

Znak zvezdice v Linuxu

Karat kot metaznak (^)

karat (^) se uporablja za označevanje začetka vrstice ali niza. Kako se torej uporablja?

Ukaz ls prikaže datoteke v mapi, kot sledi:

ls -a

Če želite navesti datoteke v mapi, ki se začnejo z določenim nizom, na primer gnome, lahko uporabite karat za določitev tega niza. Na primer:

ls -a | grep ^gnome

To navaja datoteke, ki se začnejo z gnome. Če želite datoteke, ki imajo kjerkoli v imenu datoteke gnome, uporabite zvezdico.

Linux karatni znak

V zgornjem primeru ukaz ls vrne seznam imen datotek in ta seznam posreduje ukazu grep, ki se uporablja za ujemanje vzorcev. Grep ve, da karatni simbol pomeni najti vse, kar se začne z znaki, ki prihajajo za njim, in v tem primeru je to gnom.

Simbol dolarja kot metaznak ($)

Simbol dolarja ($) ima več pomenov kot metaznak v Linuxu. Ko se uporablja za ujemanje vzorcev, pomeni nasprotje karatu in označuje vsak vzorec, ki se konča z določeno vrvico. Na primer:

ls | grep png$

Tu so navedene vse datoteke, ki se končajo z png.

Simbol dolarja se uporablja tudi za dostop do spremenljivk okolja v lupini bash. Na primer:

#! /bin/bash
izvoz pes=molly
odmev $pes
Znak za dolar v sistemu Linux

Linija izvoz pes=molly ustvari spremenljivko okolja, imenovano pes in določi njegovo vrednost molly. Za dostop do spremenljivke okolja uporabite simbol $. S simbolom $, odmev $pes izjava prikazuje molly. Brez tega, odmev pes izjava prikaže besedo pes.

Ubežni metaznaki (\\)

Včasih ne želite, da ima metaznak poseben pomen. Na primer, če je datoteka poklicana f.refox in se kliče druga datoteka firefox.

Zdaj si oglejte naslednji ukaz:

ls | grep f.refox

Kaj mislite, da se vrne? Tako f.refox kot firefox se vrneta, ker se oba ujemata z vzorcem.

Linux ubežni znak

Če želite vrniti samo f.refox, pobegnite piki, da dejansko pomeni piko, kot sledi:

ls | grep f\\.refox

Oklepaji kot metaznak ([])

Lahko uporabite oklepaje ([ ])pri iskanju vzorcev. Oklepaji določajo določene črke, ki se ujemajo kjer koli v vzorcu. Na primer:

ls | grep [abc]

To navaja vse datoteke, ki vsebujejo črke a, b ali c.

Znak oklepaja za Linux

Oklepaje lahko uporabite na začetku, koncu ali na sredini vzorca iskanja.

Če želite poiskati vrsto črk, uporabite znak vezaj (-). na primer ls [a-h]* vrne datoteke, ki se začnejo s katero koli črko od a do h.

Metaznak Accent Grave

V zgornjih primerih metaznak cevi pošlje rezultate enega ukaza (kot je ukaz ls) drugemu ukazu (kot je ukaz grep).

Drugi način za to je uporaba zadnjega citata, znanega tudi kot naglasni grob (`), da vstavite rezultate enega ukaza v drugega. Če želite to narediti, shranite rezultat enega ukaza v spremenljivko. Na primer:

ukaz=`ls -lah`
echo $ukaz
Znak za nazaj v Linuxu

Primer je zelo izmišljen in verjetno ne boste nikoli naredili ničesar podobnega, vendar lahko vidite, kako deluje. Znak za povratno kljukico zažene ukaz in shrani rezultat. To je lahko uporabno pri pisanju skriptov, vendar je manj prilagodljivo kot uporaba cevi za preproste ukaze.

Pogosti metaznaki in njihovi pomeni

Znak Pomen
. Vsak znak.
* Nič ali več znakov.
^ Ujemite katero koli vrstico ali niz, ki se začne z vzorcem (na primer ^gnome).
$ Ujemite katero koli vrstico ali niz, ki se konča z vzorcem (na primer gnome$).
\ Ubeži naslednjemu znaku, da odstrani njegov poseben pomen.
[] Ujemite enega od seznama ali obsega (na primer ["abc", "def"] ali [1..9]).
+ Ujemite enega ali več prejšnjih (na primer grep a+).
? Ujemite nič ali eno predhodno.