Линуксийн мета-тэмдэгтүүд гэж юу вэ, тэдгээрийг хэрхэн ашиглах вэ?

Википедиагаар бол metacharacter нь каратын (^), долларын тэмдэг ($), эсвэл од (*) зэрэг тусгай утгатай тэмдэгтүүд юм.

Линуксын хувьд эдгээр мета-тэмдэгтүүд нь шударга тоо байдаг бөгөөд ямар тушаал, програм ажиллаж байгаагаас шалтгаалан өөр өөр байдаг.

Бүтэн зогсоох нь Metacharacter (.)

Даруухан бүрэн бүтэн зогсолт нь cd , find or sh гэх мэт тушаалуудыг ажиллуулахдаа одоогийн байрлалыг хандивлахад хэрэглэгддэг боловч awk , grep болон sed зэрэг програмуудад ямар ч тэмдэгтийг илэрхийлэхэд ашигладаг.

Жишээ нь, дараах тушаал нь одоо байгаа фолдер болон доорх бүх mp3 файлуудыг олох болно.

хайх. -name * .mp3

Хэрэв та тэр тушаалыг ажиллуулж байгаа ажлын санг (pwd) -д ажиллуулбал үр дүнг буцааж авах болно. Та өөрийн фолдерууддаа өөрийн фолдеруудынхаа хавтас дотор хадгалж байгаад магадгүй болно.

Одоо энэ командыг харна уу:

ps -ef | grep f..efox

Жич тушаал таны ажиллаж байгаа бүх процессуудыг таны компьютер дээр жагсаасан байдаг. Grep командыг оролтын мөрөнд загварыг хайж олох хэрэгтэй.

Тиймээс ps -ef тушаал нь ажиллаж байгаа процессуудын жагсаалтыг аваад grep-д өгнө. Энэ жагсаалтад байгаа мөрөнд дурын мөрийг хайх болно. ямар ч тэмдэгт байж болно.

Хэрэв та firefox ажиллаж байгаа бол та таарах болно. Үүнтэй адилаар хэрэв та fonefox эсвэл freefox ажиллуулж байгаа програмтай бол буцааж өгөх болно.

Одоор тэмдэглэгдсэн метадарактер (*)

Одоор бол олон нийтэд илүү сайн мэддэг метафаракт бөгөөд загварыг хайж байхдаа 0 эсвэл түүнээс их утгыг ашигладаг.

Жишээлбэл:

хайх. -name * .mp3

* * .mp3 нь төгсгөлд байгаа дурын файлын нэртэй таарч байна. Үүний нэгэн адил би одоогоор grep командтай хамт од бичиж ашиглаж болно:

ps -ef | grep F * efox

Гэтэл одоогоор ялимгүй ялгаатай гэдгийг тэмдэглэх нь зүйтэй. Гэтэл одоор тэмдэглэхэд гипофокс, факфокс, фонфококс гликофокс, феррикфокс, фифокок ч олох боломжтой.

Карат бол метапаракт (^)

Карат (^) нь мөрийн эхлэл, мөрийг илэрхийлэхэд хэрэглэгддэг. Тэгвэл яаж хэрэглэдэг вэ?

Ls тушаал нь фолдер дахь бүх файлуудыг жагсаахад хэрэглэгддэг:

ls

Хэрэв та "gnome" гэх мэт тодорхой тэмдэгтээс эхлэн хавтас дахь бүх файлыг мэдэхийг хүсвэл каратыг тэр мөрийг зааж өгөхөд ашиглаж болно.

Жишээлбэл:

ls | grep ^ gnome

Энэ нь зөвхөн gnome-тэй эхэлж байгаа файлуудыг жагсаах болно гэдгийг анхаарна уу. Хэрэв та файлын нэр дээрээ gnome байгаа файлуудыг хүсвэл дараа нь одоор буцаж очиж болно.

Дээрх жишээнд ls нь файлын нэрсийн жагсаалтыг буцааж, энэ нь хэвлэлтийн тохиргоонд ашиглагддаг grep-д зориулсан жагсаалтыг дамжуулдаг. grep нь каратын тэмдэг гэдэг нь түүний дараа ирдэг тэмдэгтүүдээс эхэлж байгаа зүйлийг олохыг мэддэг бөгөөд энэ тохиолдолд энэ нь гномо юм.

Долларын тэмдэглэгээ нь Metacharacter ($)

Долларын тэмдэг нь Линукс дотор метафаракт гэж олон утгатай байж болно.

Материалыг тааруулахдаа каратын эсрэг утгатай бөгөөд тодорхой тэмдэгт мөрөөр төгссөн ямар ч загварыг илэрхийлдэг.

Жишээлбэл:

ls | grep png $

Энэ нь png-тэй төгссөн бүх файлуудыг жагсаадаг.

Долларын тэмдэг нь мөн bash бүрхүүл дотор орчны хувьсагчуудад хандахад ашиглагддаг.

Жишээлбэл:

экспедицийн нохой = molly
$ нохой echo

Шууд экспорт нохой = молл нь нохой нэртэй орчны хувьсагчийг үүсгэдэг бөгөөд түүний үнэ цэнийг молли руу шилжүүлдэг. Байгаль орчны хувьсагчид хандахын тулд $ тэмдгийг ашигладаг. $ Тэмдэг нь $ цуурай нохойны мэдэгдэл нь моллиг харагдуулдаг боловч үүнийг байхгүй бол цуурай нохойны мэдэгдэл нь зөвхөн нохой үгийг харуулна.

Metacharacters зугтах

Заримдаа метафактан онцгой утгатай байхыг хүсдэггүй. Хэрэв та f.refox гэж нэрлэгдсэн файл ба галтефокс гэж нэрлэгдсэн файл байвал яах уу?

Одоо дараах тушаалыг харна уу:

ls | grep f.refox

Та юу гэж бодож байна? F.refox болон firefox хоёулаа хоёулаа загвартай тохирч байгаа тул буцаагдах болно.

F.refox-г буцаахын тулд бүрэн зогсолтыг зогсоох хэрэгтэй бөгөөд ингэснээр бүрэн зогсолтыг дараах байдлаар илэрхийлнэ:

ls | grep f \\. refox

Нийтлэг аргууд болон тэдгээрийн утгууд

Линуксийн Metacharacters-ийн жагсаалт
Тэмдэгтэн Энэ нь утгатай
. Ямар ч тэмдэгт
* Тэг болон түүнээс олон тэмдэгтүүд
^ Загвараас эхлэх өөр мөр эсвэл мөрийг (өөрөөр хэлбэл ^ gnome)
$ Загвар дуусах ямар нэгэн мөр эсвэл мөрийг (өөрөөр хэлбэл gnome $)
\ Түүний онцгой утгыг арилгахын тулд дараагийн тэмдэгт рүү орно
[] Жагсаалтын нэг эсвэл мужийн нэгийг (өөрөөр хэлбэл ["abc", "def" эсвэл [1..9]
+ Нэг буюу түүнээс олон өмнөх (өөрөөр хэлбэл grep a +)
? Тэг эсвэл нэгийг харьцуулах