យោងតាមវិគីភីឌាថា metacharacter គឺជាតួអង្គដែលមានអត្ថន័យពិសេសដូចជាការ៉ាត់ (^) សញ្ញាដុល្លារ ($) ឬសញ្ញាផ្កាយ (*) ។
នៅក្នុងលក្ខខណ្ឌនៃលីនុចមានចំនួនត្រឹមត្រូវនៃ metacharacters ទាំងនេះនិងអត្ថន័យរបស់ពួកគេខុសគ្នាអាស្រ័យលើពាក្យបញ្ជាឬកម្មវិធីដែលអ្នកកំពុងរត់។
ពេញបញ្ឈប់ជាតួអក្សរមេតាចារ (។ )
ការឈប់ពេញលេញដ៏រាបទាបត្រូវបានប្រើដើម្បីបរិច្ចាគទីតាំងបច្ចុប្បន្ននៅពេលរត់ពាក្យបញ្ជាដូចជា ស៊ីឌី រក ឬ sh ប៉ុន្តែក្នុងកម្មវិធីដូចជា awk , grep and sed វាត្រូវបានគេប្រើដើម្បីសម្គាល់តួអក្សរណាមួយ។
ជាឧទាហរណ៍ពាក្យបញ្ជាខាងក្រោមនឹងរកឯកសារ mp3 ទាំងអស់នៅក្នុងថតបច្ចុប្បន្ននិងខាងក្រោម។
ស្វែងរក។ - នាម * .mp3
បើអ្នករត់ពាក្យបញ្ជានោះអ្នកនឹងរកឃើញថតការងារ (pwd) បន្ទាប់មកអ្នកប្រហែលជានឹងទទួលបានលទ្ធផលដោយសន្មតថាអ្នករក្សាទុកឯកសារ mp3 របស់អ្នកនៅក្នុងថតតន្ត្រីនៅក្នុងថតផ្ទះរបស់អ្នក។
ឥឡូវនេះសូមមើលពាក្យបញ្ជានេះ:
ps -ef | grep f..efox
ពាក្យបញ្ជា ps រាយរាល់ដំណើរការដែលកំពុងរត់នៅលើកុំព្យូទ័ររបស់អ្នក។ ពាក្យបញ្ជា grep ត្រូវការបន្ទាត់នៃការបញ្ចូលនិងស្វែងរកលំនាំ។
ដូច្នេះពាក្យបញ្ជា ps -ef ទទួលបានបញ្ជីនៃដំណើរការដែលកំពុងរត់និងផ្តល់វាទៅ grep ដែលស្វែងរកបន្ទាត់ណាមួយនៅក្នុងបញ្ជីដែលមាន f.efox ជាកន្លែងដែល។ អាចមានន័យថាតួអក្សរណាមួយ។
ប្រសិនបើអ្នកមាន Firefox ដែលកំពុងរត់អ្នកនឹងទទួលបានការប្រកួត។ ស្រដៀងគ្នានេះដែរប្រសិនបើអ្នកមានកម្មវិធីដែលហៅថា fonefox ឬ freefox running ពួកគេនឹងត្រូវបានត្រឡប់មកវិញផងដែរ។
សញ្ញាផ្កាយជា metacharacter (*)
សញ្ញាផ្កាយគឺជា metacharacter ដែលត្រូវបានគេស្គាល់ជាទូទៅហើយត្រូវបានប្រើដើម្បីមានន័យថា 0 ឬច្រើនជាងនេះនៅពេលស្វែងរកលំនាំ។
ឧទាហរណ៍:
ស្វែងរក។ - នាម * .mp3
* .mp3 ត្រឡប់ការផ្គូផ្គងសម្រាប់ឈ្មោះឯកសារដែលបញ្ចប់ដោយ .mp3 ។ ដូចគ្នានេះដែរខ្ញុំអាចប្រើសញ្ញាផ្កាយជាមួយពាក្យបញ្ជា grep ដូចខាងក្រោម:
ps -ef | grep F * efox
វាគួរឱ្យកត់សម្គាល់ថាវាមានភាពខុសប្លែកបន្តិចដោយសារតែសញ្ញាផ្កាយមានន័យថាសូន្យឬច្រើនជាងនេះក៏ដូចជាការស្វែងរក Firefox, Facefox និង Fonefox វាក៏អាចរកឃើញ flutefox, ferretfox និងសូម្បីតែ fefox ។
កាបូតជាអាតូម (^)
ការ៉ាត់ (^) ត្រូវបានប្រើដើម្បីចង្អុលបង្ហាញការចាប់ផ្តើមបន្ទាត់ឬខ្សែអក្សរ។ ដូច្នេះតើវាត្រូវបានប្រើប្រាស់យ៉ាងដូចម្តេច?
ពាក្យបញ្ជា ls ត្រូវបានប្រើដើម្បីរាយឯកសារទាំងអស់ក្នុងថតដូចខាងក្រោម:
ls
ប្រសិនបើអ្នកចង់ដឹងឯកសារទាំងអស់នៅក្នុងថតដែលចាប់ផ្តើមដោយខ្សែអក្សរជាក់លាក់ដូចជា "gnome" នោះ carat អាចត្រូវបានប្រើដើម្បីបញ្ជាក់ខ្សែអក្សរនោះ។
ឧទាហរណ៍:
ls | grep ^ gnome
។ ចំណាំថាវារាយតែឯកសារដែលចាប់ផ្ដើមដោយ gnome & # 160; ។ ប្រសិនបើអ្នកចង់ឱ្យឯកសារដែលមាន gnome នៅក្នុងឈ្មោះឯកសារនៅគ្រប់ទីកន្លែងនោះអ្នកនឹងត្រឡប់ទៅសញ្ញាផ្កាយម្តងទៀត។
ក្នុងឧទាហរណ៍ខាងលើ ls ត្រឡប់បញ្ជីនៃឈ្មោះឯកសារនិងបញ្ជូនបញ្ជីនោះទៅ grep ដែលត្រូវបានប្រើសម្រាប់ការផ្គូផ្គងលំនាំ។ grep ដឹងថានិមិត្តសញ្ញាការ៉ាតមានន័យថារកឃើញអ្វីដែលចាប់ផ្តើមជាមួយតួអក្សរដែលមកបន្ទាប់ពីវាហើយក្នុងករណីនេះវាជា gnome ។
និមិត្តសញ្ញាដុល្លារជាតួអក្សរមេតាចារ ($)
និមិត្តសញ្ញាដុល្លារអាចមានអត្ថន័យច្រើនជា metacharacter ក្នុងលីនុច។
នៅពេលត្រូវបានប្រើដើម្បីផ្គូផ្គងលំនាំវាមានន័យថាផ្ទុយទៅនឹងការ៉ាតនិងបង្ហាញនូវគំរូណាមួយដែលបញ្ចប់ដោយខ្សែអក្សរជាក់លាក់មួយ។
ឧទាហរណ៍:
ls | grep png $
នេះរាយឯកសារទាំងអស់ដែលបញ្ចប់ដោយ png ។
និមិត្តសញ្ញាដុល្លារក៏ត្រូវបានប្រើដើម្បីចូលអថេរបរិស្ថាននៅក្នុងសែល bash ។
ឧទាហរណ៍:
នាំចេញសត្វឆ្កែ = molly
echo $ dog
ឆ្កែនាំចេញឆ្កែ = molly បង្កើតអថេរបរិស្ថានដែលហៅថាឆ្កែហើយកំណត់តម្លៃរបស់វាទៅ molly ។ ដើម្បីចូលប្រើអថេរបរិស្ថាននិមិត្តសញ្ញា $ ត្រូវបានប្រើ។ ជាមួយនឹងនិមិត្តសញ្ញា $ echo $ dog statement statement បង្ហាញ molly ប៉ុន្តែដោយគ្មានវា, សេចក្តីថ្លែងការណ៍ឆ្កែអេកូគ្រាន់តែបង្ហាញឆ្កែពាក្យ។
គេចពីមេកាចារិក
ជួនកាលអ្នកមិនចង់អោយមីតាចារមានអត្ថន័យពិសេស។ តើមានអ្វីប្រសិនបើអ្នកមានឯកសារដែលហៅថា f.refox និងឯកសារមួយដែលគេហៅថា firefox ។
ឥឡូវនេះសូមមើលពាក្យបញ្ជាដូចខាងក្រោម:
ls | grep f.refox
តើអ្នកគិតថាត្រូវបានត្រលប់មកវិញដោយរបៀបណា? ទាំងពីរ f.refox និង Firefox ត្រូវបានត្រឡប់ដោយសារតែពួកគេទាំងពីរផ្គូផ្គងលំនាំ។
ដើម្បីត្រឡប់តែ f.refox អ្នកនឹងត្រូវការគេចផុតពីចំណតពេញលេញដើម្បីមានន័យថាជាការឈប់ពេញលេញដូចខាងក្រោម:
ls | grep f \\ refox
Metacharacters ទូទៅនិងអត្ថន័យរបស់ពួកគេ
តួអក្សរ | អត្ថន័យ |
។ | តួអក្សរណាមួយ |
* | អក្សរសូន្យឬច្រើន |
^ | ផ្គូផ្គងបន្ទាត់ឬខ្សែអក្សរណាដែលចាប់ផ្ដើមដោយលំនាំ (ឧ។ ^ gnome) |
$ | ផ្គូផ្គងបន្ទាត់ឬខ្សែអក្សរបញ្ចប់ដោយលំនាំ (ឧទាហរណ៍ gnome $) |
\ | គេចពីតួអក្សរបន្ទាប់ដើម្បីលុបអត្ថន័យពិសេសរបស់វា |
[] | ផ្គូផ្គងបញ្ជីមួយឬជួរ (ឧ។ ["abc" "def"] ឬ [1..9] |
+ | ផ្គូផ្គងទៅមុខមួយឬច្រើន (ឧ។ grep a +) |
? | ផ្គូផ្គងសូន្យឬមួយនៅពីមុខ |