Რა არის Linux Metacharacters და როგორ იყენებთ მათ

ვიკიპედიის მიხედვით, მეტაჩარქაქტერი არის ნებისმიერი ხასიათი, რომელსაც აქვს განსაკუთრებული მნიშვნელობა, როგორიცაა კარავი (^), დოლარის ნიშანი ($) ან ვარსკვლავი (*).

Linux- ის თვალსაზრისით არსებობს ამ მეტაჩარქექტორების სამართლიანი რიცხვი და მათი მნიშვნელობა განსხვავდება იმაზე, თუ რომელი დონის ბრძანება ან პროგრამა ხორციელდება.

სრული გაჩერება, როგორც მეტაჩარქაქტორი (.)

თავმდაბალი სრული გაჩერება გამოიყენება დღევანდელი პოზიციის შესაქმნელად, როდესაც cd- ის , როგორიცაა cd , იპოვოს ან sh, მაგრამ განაცხადების ფარგლებში, როგორიცაა awk , grep და sed გამოიყენება ნებისმიერი ხასიათი.

მაგალითად, შემდეგი ბრძანება იხილავს ყველა mp3 ფაილს მიმდინარე საქაღალდეში და ქვემოთ.

იპოვოს. -name *. mp3

თუ თქვენ აწარმოებთ ამ ბრძანებას თქვენს სამუშაო დირექტორიაში (pwd), მაშინ ალბათ მიიღებთ შედეგებს დაბრუნებულებს, თუ თქვენ გაქვთ თქვენი MP3 ფაილები მუსიკალურ საქაღალდეში თქვენი სახლის საქაღალდეში.

ახლა შეხედეთ ამ ბრძანებას:

ps -ef | grep f..efox

Ps ბრძანება ჩამოთვლილია ყველა გაშვებული პროცესების თქვენს კომპიუტერში. Grep ბრძანება იღებს ხაზების შეყვანის და ძიება ნიმუში.

ამიტომ ps -ef ბრძანება იღებს გაშვებული პროცესების სიას და აძლევს მას grep რომელიც ეძებს ნებისმიერი ხაზი სიაში, რომელსაც აქვს f..efox სადაც. შეუძლია ნებისმიერი ხასიათი.

თუ ცეცხლსასროლი იარაღი გაქვთ, თქვენ მიიღებთ თამაშს. ანალოგიურად, თუ თქვენ გაქვთ პროგრამა მოუწოდა fonefox ან freefox გაშვებული ისინი დაბრუნდება.

ვარსკვლავის როგორც metacharacter (*)

ვარსკვლავი უფრო საყოველთაოდ ცნობილი მეტაჩარქეტერია და გამოიყენება ნიმუშის ძიებისას 0 ან მეტი.

მაგალითად:

იპოვოს. -name *. mp3

* .mp3 დააბრუნებს თამაშს ნებისმიერი ფაილის სახელი, რომელიც მთავრდება. Mp3. ანალოგიურად, მე შემიძლია გამოყენებული ვარსკვლავის grep ბრძანება, როგორც შემდეგი გვიჩვენებს:

ps -ef | grep F * efox

აღსანიშნავია, რომ ეს განსხვავდება ოდნავ იმიტომ, რომ ვარსკვლავის ნიშნავს ნულოვანი ან მეტი ისე, როგორც მოძიებაში firefox, facefox და fonefox მას შეუძლია იპოვოს flutefox, ferretfox და კიდევ მხოლოდ fefox.

კარატი როგორც მეტაჩარქაქტორი (^)

კარატი (^) გამოიყენება ხაზის ან სტრიქონის დაწყების აღნიშვნაში. ასე რომ, როგორ არის გამოყენებული ეს?

Ls ბრძანება გამოიყენება ფაილების საქაღალდეში შემდეგნაირად:

ls

თუ გსურთ შეიტყოთ ყველა ფაილი საქაღალდეში, რომელიც იწყება გარკვეული სტრიქონით, როგორიცაა "გნომე", მაშინ კარატი შეიძლება გამოყენებულ იქნას, რომ დააკონკრეტოს, რომ სიმებიანი.

მაგალითად:

ls | grep ^ gnome

გაითვალისწინეთ, რომ ეს მხოლოდ ჩამოთვლილია ფაილი, რომელიც იწყება გნომით. თუ გინდათ ფაილები, რომლებსაც gnome ფაილის სახით ვეღარ შეძლებთ, მაშინ კვლავ დააბრუნებ ვარსკვლავით.

ზემოთ მოყვანილ მაგალითში ls დააბრუნებს filenames- ის სიას და გადის grep- ის სიას, რომელიც გამოიყენება ნიმუში შესატყვისი. grep იცის, რომ კარატი სიმბოლო ნიშნავს იმას, რომ იწყება გმირები, რომლებიც მას შემდეგ მოდის და ამ შემთხვევაში, ეს არის გნომ.

დოლარის სიმბოლოა, როგორც მეტაჩარქაქტორი ($)

დოლარის სიმბოლოს შეიძლება ჰქონდეს მრავალი მნიშვნელობა, როგორც მეტაჩარქატერი Linux- ში.

როდესაც გამოყენებული იყო ნიმუში, ეს ნიშნავს საპირისპირო კარატს და აღნიშნავს ნებისმიერ ნიმუში, რომელიც მთავრდება კონკრეტული სიმებიანი.

მაგალითად:

ls | grep png $

ეს ჩამოთვლილია ყველა ფაილი, რომელიც დასრულდება png.

დოლარის სიმბოლო ასევე გამოყენებულია გარემოს ცვლადების წვდომისათვის ბახის ჭურვიში.

მაგალითად:

ექსპორტის ძაღლი = მოლი
ექო $ ძაღლი

ხაზის საექსპორტო ძაღლი = მოლი ქმნის გარემოს ცვლადს ძაღლს და ადგენს მის ღირებულებას მოლისთვის. გარემოს ცვლადის მისაღებად $ სიმბოლო გამოიყენება. $ სიმბოლოთი ექოს $ ძაღლის განაცხადი აჩვენებს მოლი, მაგრამ მის გარეშე, ეხო ძაღლი განცხადება მხოლოდ სიტყვის ძაღლს აჩვენებს.

გაქცევის მეტაჩარქექტორები

ზოგჯერ არ გინდა მეტაჩარქექტორს განსაკუთრებული მნიშვნელობა აქვს. რა მოხდება, თუ თქვენ გაქვთ ფაილი f.refox და ფაილი მოუწოდა firefox.

ახლა შეხედეთ შემდეგ ბრძანებას:

ls | grep f.refox

რას ფიქრობთ? ორივე f.refox და firefox დაბრუნდა, რადგან ორივე ემთხვევა ნიმუში.

მხოლოდ f.refox- ს დაბრუნების შემთხვევაში თქვენ უნდა გაქცევა სრული გაჩერება, რომელიც ფაქტობრივად ნიშნავს სრულ გაჩერებას შემდეგნაირად:

ls | grep f \\

საერთო მეტაჩარქექტორები და მათი მნიშვნელობა

ჩამონათვალი მეტაჩარქტექტორების ჩამონათვალი
სიმბოლო მნიშვნელობა
. ნებისმიერი ხასიათი
* ნულოვანი ან მეტი სიმბოლო
^ შეესაბამება ნებისმიერ ხაზს ან სტრიქონს, რომელიც იწყება ნიმუში (ანუ გნომ)
$ შეესაბამება ნებისმიერი ხაზის ან სტრიქონის დასასრულს ნიმუში (ანუ gnome $)
\ გაქცევის შემდეგი ხასიათი ამოიღონ მისი განსაკუთრებული მნიშვნელობა
[] შეავსეთ ერთი სიდიდე ან დიაპაზონი (ანუ ["abc", "def"] ან [1.9]
+ შეასრულეთ ერთი ან მეტი წინა (ანუ grep +)
? მატჩის ნულოვანი ან ერთი წინა