Linux Metacharacters nədir və bunları necə istifadə edirsiniz?

Vikipedi görə, bir metakaracter bir karat (^), dollar işarəsi ($) və ya bir yıldız (*) kimi xüsusi bir mənaya malik olan hər hansı bir xarakterdir.

Linux baxımından, bu metakaraktların ədalətli sayı vardır və onların mənaları hansı komanda və ya proqramınızdan asılı olaraq fərqlənir.

Metacharacter kimi tam dayanma (.)

Təvazökar tam stop cd , tap və ya sh kimi əmrləri yerinə yetirərkən mövcud mövqeyini bağışlamaq üçün istifadə olunur, ancaq awk , grepsed kimi ərizə daxilində hər hansı bir xarakterə aiddir .

Bir nümunə olaraq, aşağıdakı komanda cari qovluqdakı bütün faylları və aşağıda tapa bilərsiniz.

tapın. -name * .mp3

Əgər bu əmrinizi sizdə mövcud iş directory (pwd) çalıştırırsanız, o zaman mp3 fayllarınızı ev qovluğunuzdakı bir musiqi qovluğunda saxlayırsınız, ehtimal ki, nəticələr qaytarılacaq.

İndi bu əmrə baxın:

ps-f | | grep f..efox

Ps komanda kompüterinizdə çalışan bütün prosesləri siyahıya alır. Grep əmri giriş xətləri və nümunə üçün axtarış aparır.

Buna görə də ps-komanda işləyən proseslərin siyahısını alır və siyahıdakı hər hansı bir xətt üçün axtarış edən grepə verir. hər hansı bir xarakter demək ola bilər.

Firefox'unuz varsa, bir matç olacaq. Eyni şəkildə, fonefox və ya freefox adlı bir proqramınız varsa, onlar da geri qaytarılacaq.

Bir metakaracter kimi ulduz (*)

Yulduzlar daha çox universallaşan məşhur metakarakterdir və bir nümunəni axtararkən 0 və ya daha çox deməkdir.

Misal üçün:

tapın. -name * .mp3

* .mp3, .mp3 ilə bitən hər hansı bir fayl üçün bir matçı qaytarır. Eləcə də, mən aşağıdakı kimi göstərir ki, grep komanda ilə asterisk istifadə edə bilər:

ps-f | | grep F * efox

Qeyd edək ki, bu, bir az fərqlənir, çünki yeryüzü sıfır və ya daha çox deməkdir, eləcə də firefox, facefox və fonefox tapmaq flutefox, ferretfox və hətta yalnız fefox tapa bilərsiniz.

Bir Metakaraktör olaraq Karat (^)

Karat (^) bir xəttin və ya simli başlanğıcını ifadə etmək üçün istifadə olunur. Necə istifadə olunur?

Ls əmri bir qovluqdakı bütün faylları aşağıdakı kimi göstərmək üçün istifadə olunur:

ls

"Gnome" kimi müəyyən bir simli ilə başlayan bir qovluqdakı bütün faylları bilmək istəyirsinizsə, karat bu simli müəyyən etmək üçün istifadə edilə bilər.

Misal üçün:

ls | grep ^ gnome

Qeyd edək ki, bu, yalnız gnome ilə başlayan faylları siyahıya alır. Faylın hər hansı bir yerində bir gnome olan faylları istəyirsinizsə, daha sonra yenə geri asterisk olardı.

Yuxarıdakı misalda, ls filenames siyahısını qaytarır və siyahıdan eşleme üçün istifadə edilən grep üçün siyahıdan keçir. grep, karat sembolünün sonra gələn simvollarla başlayan hər şeyi tapmaq olduğunu və bu vəziyyətdə bir gnome olduğunu bilir.

Bir Metaxaracter kimi dollar simvolu ($)

Dollar simvolu, Linux daxilində bir metakaracter kimi çox məna ola bilər.

Nümunələri uyğunlaşdırmaq üçün istifadə edildiyi zaman karatın əksinə deməkdir və müəyyən bir simli ilə bitən hər hansı bir nümunəni nəzərdə tutur.

Misal üçün:

ls | grep png $

Bu, png ilə bitən bütün faylları siyahıya alır.

Dollar simvolu, bash qabığının içərisində ətraf mühit dəyişənlərinə daxil olmaq üçün də istifadə olunur.

Misal üçün:

ixrac it = molly
echo $ it

Xətt ixrac it = molly it adlı bir ətraf mühiti dəyişən yaradır və dəyəri molly üçün müəyyən edir. Ətraf mühitə daxil olmaq üçün $ simvolu istifadə olunur. $ Simvolu ilə yankı $ it ifadəsi molly göstərir, lakin olmadan, yankı dog ifadə yalnız söz it göstərir.

Metacharacters qaçmaq

Bəzən metafaraktın xüsusi bir məna istəməsini istəmirsiniz. F.refox adlı fayl və firefox adlı bir fayl varsa.

İndi aşağıdakı əmrə baxın:

ls | grep f.refox

Nə düşünürsən? Həm f.refox həm də firefox geri qaytarılır, çünki onlar hər ikisinin nümunəsinə uyğun gəlirlər.

Yalnız f.refox qayıtmaq üçün tam dayandırmaq üçün qaçmaq lazımdır ki, həqiqətən tam stop kimi deməkdir:

ls | grep f \\. refox

Ümumi Metakarakteriyalar və onların mənaları

Linux Metacharacters siyahısı
Xarakter Məna
. Hər hansı bir xarakter
* Sıfır və ya daha çox simvol
^ Bir nümunə ilə başlayan hər hansı bir xətt və ya simli müqayisə (yəni ^ gnome)
$ Bir nümunə ilə bitən hər hansı bir xətt və ya simli (yəni gnome $)
\ Xüsusi mənasını aradan qaldırmaq üçün növbəti xarakterdən qaçır
[] Bir siyahıdan və ya aralıdan birini (yəni "abc", "def") və ya [1..9]
+ Bir və ya bir neçə əvvəlki (yəni grep a +)
? Sıfır ya da bir əvvəlki matçı eşleyin