Ki sa ki Metacharacters Linux ak kouman ou itilize yo

Dapre Wikipedia, yon metacharacter se nenpòt karaktè ki gen yon siyifikasyon espesyal, tankou yon karat (^), siyal dola ($) oswa yon asterisk (*).

An tèm de Linux, gen yon nimewo ki jis nan metacharacters sa yo ak siyifikasyon yo diferan depann sou ki lòd oswa pwogram ou ap kouri.

Sispann konplè kòm yon Metacharacter (.)

Yo sispann imèl konplè a pou yo bay pozisyon aktyèl la lè kouri kòmandman tankou CD , jwenn oswa sh, men nan aplikasyon tankou awk , grep ak sed li itilize pou endike nenpòt karaktè.

Kòm yon egzanp, lòd sa a pral jwenn tout dosye mp3 nan katab aktyèl la ak pi ba a.

jwenn. non * .mp3

Si ou kouri lòd sa a nan ou prezan k ap travay anyè (pwd) Lè sa a, ou pral pwobableman jwenn rezilta retounen, an konsideran ou kenbe dosye mp3 ou nan yon katab mizik nan katab lakay ou.

Koulye a, gade nan lòd sa a:

ps -ef | grep f..efox

Kòmandman ps la bay lis tout pwosesis yo kouri sou òdinatè ou. Kòmann lan grep pran liy nan opinyon ak rechèch pou yon modèl.

Se poutèt sa, kòmandman nan ps -efi vin yon lis pwosesis kouri ak bay li nan grep ki fouy pou nenpòt ki liy nan lis la ki gen f..efox kote a. ka vle di nenpòt karaktè.

Si ou gen Firefox kouri ou pral jwenn yon match. Menm jan tou, si ou gen yon pwogram ki rele fonefox oswa freefox kouri yo pral tou ap retounen.

Asterisk la kòm yon metacharacter (*)

Asterisk la se yon metacharacter ki pi inivèsèl byen li te ye epi ki itilize pou vle di 0 oswa plis lè y ap chèche yon modèl.

Pa egzanp:

jwenn. non * .mp3

The * .mp3 retounen yon match pou nenpòt fichye ki fini nan .mp3. Menm jan an tou, mwen te ka itilize asterisk la ak lòd grep la kòm montre sa yo:

ps -ef | grep F * efox

Li se vo anyen ke sa a diferan yon ti kras paske asterisk a vle di zewo oswa plis konsa kòm byen ke jwenn Firefox, Facefox ak fonefox li ka jwenn tou Flutefox, Ferretfox e menm jis fefox.

Carat la kòm yon Metacharacter (^)

Carat la (^) yo itilize pou endike kòmansman yon liy oswa yon fisèl. Se konsa, kouman li itilize?

Se lòd nan ls itilize nan lis tout dosye yo nan yon katab jan sa a:

ls

Si ou vle konnen tout dosye yo nan yon katab ki kòmanse avèk yon fisèl sèten tankou "luten" Lè sa a, ka kara a dwe itilize presize ke fisèl.

Pa egzanp:

ls | grep ^ gnome

Remake byen ke sa a sèlman bay lis dosye ki kòmanse ak luten. Si ou vle dosye ki gen yon luten nan fichye a nenpòt kote Lè sa a, ou ta ankò retounen tounen nan asterisk la.

Nan egzanp ki anwo a, ls la retounen yon lis fichye epi li pase lis grep ki itilize pou modèl matche. grep konnen ke senbòl la karat vle di jwenn anyen ki kòmanse ak karaktè yo ki vini apre li ak nan ka sa a, li se yon luten.

Senbòl dola kòm yon Metacharacter ($)

Senbòl a dola ka gen siyifikasyon miltip kòm yon metacharacter nan Linux.

Lè yo itilize matche ak modèl sa vle di opoze a karat ak vle di nenpòt modèl ki fini ak yon fisèl patikilye.

Pa egzanp:

ls | grep png $

Sa a bay lis tout dosye ki fini ak png.

Se senbòl dola tou itilize pou gen aksè nan varyab anviwònman nan koki bach la.

Pa egzanp:

chen ekspòtasyon = molly
eko chen $

Chan an ekspòtasyon liy = molly kreye yon varyab anviwònman ki rele chen, li kouche valè li yo molly. Pou jwenn aksè nan varyab anviwònman an, yo itilize sistèm nan $. Avèk $ senbòl eko $ deklarasyon an chen montre molly men san li, deklarasyon an chen eko jis montre chen an mo.

Chape Metacharacters

Pafwa ou pa vle metacharacter la gen yon siyifikasyon espesyal. E si ou gen yon dosye ki rele f.refox ak yon dosye ki rele Firefox.

Koulye a, gade nan lòd sa a:

ls | grep f.refox

Ki sa ou panse ki te retounen? Tou de f.refox ak firefox yo te retounen paske yo tou de matche ak modèl la.

Pou sèlman retounen f.refox ou ta bezwen chape arè a plen aktyèlman vle di yon arè plen jan sa a:

ls | grep f \\ refox

Komen Metacharacters ak siyifikasyon yo

Lis Linux Metacharacters
Karaktè Sa vle di
. Nenpòt karaktè
* Zewo oswa plis karaktè
^ Koresponn ak nenpòt liy oswa kòd ki kòmanse ak yon modèl (sa vle di ^ gnome)
$ Koresponn ak nenpòt liy oswa fisèl ki fini ak yon modèl (sa vle di gnome $)
\ Eskape karaktè nan pwochen yo retire siyifikasyon espesyal li yo
[] Koresponn ak youn nan yon lis oswa ranje (sètadi ["abc", "def"] oswa [1..9]
+ Koresponn ak yon sèl oswa plis anvan (sètadi grep a +)
? Match zewo oswa yon sèl anvan