ตามวิกิพีเดีย metacharacter เป็นอักขระที่มีความหมายพิเศษเช่น carat (^), dollar sign ($) หรือเครื่องหมายดอกจัน (*)
ในแง่ของลินุกซ์มีจำนวนเมตาแท็กเหล่านี้และความหมายแตกต่างกันขึ้นอยู่กับคำสั่งหรือโปรแกรมที่คุณกำลังทำงานอยู่
การหยุดแบบเต็มเป็น Metacharacter (.)
การหยุดแบบเต็มรูปแบบจะใช้ในการบริจาคตำแหน่งปัจจุบันเมื่อรันคำสั่งเช่น cd หา หรือ sh แต่ในแอปพลิเคชันเช่น awk , grep และ sed จะใช้เพื่อระบุตัวอักษรใด ๆ
ตัวอย่างเช่นคำสั่งต่อไปนี้จะพบไฟล์ mp3 ทั้งหมดในโฟลเดอร์ปัจจุบันและด้านล่าง
หา - ชื่อ * .mp3
ถ้าคุณเรียกใช้คำสั่งดังกล่าวในไดเร็กทอรีการทำงาน (pwd) ในปัจจุบันคุณอาจจะได้ผลลัพธ์ที่ส่งกลับมาสมมติว่าคุณเก็บไฟล์ mp3 ไว้ในโฟลเดอร์เพลงภายในโฟลเดอร์ภายในบ้านของคุณ
ตอนนี้ดูคำสั่งนี้:
ps -ef | grep f..efox
คำสั่ง ps จะแสดงรายการกระบวนการทำงานทั้งหมดในคอมพิวเตอร์ของคุณ คำสั่ง grep ใช้สายการป้อนข้อมูลและค้นหารูปแบบ
ดังนั้นคำสั่ง ps -ef ได้รับรายการของกระบวนการทำงานและให้มันไป grep ซึ่งค้นหาบรรทัดใด ๆ ในรายการที่มี f. อาจหมายถึงตัวอักษรใดก็ได้
ถ้าคุณมี Firefox ทำงานคุณจะได้รับการจับคู่ ในทำนองเดียวกันถ้าคุณมีโปรแกรมที่เรียกว่า fonefox หรือ freefox พวกเขาจะถูกส่งกลับ
เครื่องหมายดอกจันเป็น metacharacter (*)
เครื่องหมายดอกจันเป็น metacharacter ที่รู้จักกันแพร่หลายมากขึ้นและใช้เพื่อหมายถึง 0 หรือมากกว่าเมื่อค้นหารูปแบบ
ตัวอย่างเช่น:
หา - ชื่อ * .mp3
* .mp3 จะส่งกลับค่าที่ตรงกันสำหรับชื่อไฟล์ที่ลงท้ายด้วย. mp3 ในทำนองเดียวกันฉันได้ใช้เครื่องหมายดอกจันกับคำสั่ง grep ดังที่แสดงต่อไปนี้:
ps -ef | grep F * efox
เป็นมูลค่า noting ที่นี้แตกต่างเล็กน้อยเพราะเครื่องหมายดอกจันหมายถึงศูนย์หรือมากกว่าเพื่อหา firefox, facefox และ fonefox ยังสามารถหา flutefox, ferretfox และแม้เพียง fefox.
Carat เป็น Metacharacter (^)
กะรัต (^) ใช้เพื่อแสดงถึงจุดเริ่มต้นของเส้นหรือสายอักขระ ดังนั้นมันจึงใช้อย่างไร
คำสั่ง ls ใช้เพื่อแสดงรายการไฟล์ทั้งหมดในโฟลเดอร์ดังนี้:
LS
ถ้าคุณต้องการทราบไฟล์ทั้งหมดในโฟลเดอร์ที่ขึ้นต้นด้วยสตริงบางอย่างเช่น "gnome" คุณสามารถใช้ carat เพื่อระบุสตริงนั้นได้
ตัวอย่างเช่น:
ls | grep ^ gnome
โปรดทราบว่าเฉพาะรายการไฟล์ที่ขึ้นต้นด้วย gnome เท่านั้น ถ้าคุณต้องการไฟล์ที่มี gnome ในชื่อไฟล์ที่ใดก็ได้คุณจะเปลี่ยนกลับไปใช้เครื่องหมายดอกจันอีกครั้ง
ในตัวอย่างข้างต้น ls จะแสดงรายการชื่อไฟล์และส่งผ่านรายการนั้นไปยัง grep ซึ่งใช้สำหรับการจับคู่รูปแบบ grep รู้ว่าสัญลักษณ์กะรัตหมายถึงอะไรที่เริ่มต้นด้วยตัวละครที่มาหลังจากมันและในกรณีนี้ก็คือคำพังเพย
สัญลักษณ์สกุลเงินเป็น Metacharacter ($)
สัญลักษณ์ดอลลาร์อาจมีความหมายหลายอย่างเป็น metacharacter ภายใน Linux
เมื่อใช้เพื่อจับคู่รูปแบบหมายถึงตรงกันข้ามกับกะรัตและระบุรูปแบบใด ๆ ที่ลงท้ายด้วยสตริงที่เฉพาะเจาะจง
ตัวอย่างเช่น:
ls | grep png $
ซึ่งจะแสดงรายการไฟล์ทั้งหมดที่ลงท้ายด้วย png
สัญลักษณ์ดอลลาร์ใช้เพื่อเข้าถึงตัวแปรสภาพแวดล้อมภายในเปลือก bash
ตัวอย่างเช่น:
สุนัขส่งออก = molly
echo $ dog
สุนัขสายการส่งออก = molly สร้างตัวแปรสภาพแวดล้อมที่เรียกว่าสุนัขและตั้งค่าเป็น molly ในการเข้าถึงตัวแปรสภาพแวดล้อมสัญลักษณ์ $ จะถูกใช้ ด้วยสัญลักษณ์ $ echo $ dog statement แสดงคำว่า molly แต่ไม่มีคำว่า echo dog จะแสดงคำว่า dog
การหลีกเลี่ยงอักขระตัวอักษร
บางครั้งคุณไม่ต้องการให้ metacharacter มีความหมายพิเศษ เกิดอะไรขึ้นถ้าคุณมีไฟล์ชื่อ f.refox และไฟล์ชื่อ firefox
ตอนนี้ดูคำสั่งต่อไปนี้:
ls | grep f.refox
คุณคิดว่าอะไรถูกส่งกลับ? ทั้ง f.refox และ firefox ถูกส่งคืนเนื่องจากทั้งคู่ตรงกับรูปแบบ
เมื่อต้องการเพียงคืน f.refox คุณจะต้องหลบหนีเต็มไปจริงๆหมายถึงการหยุดเต็มรูปแบบดังนี้:
ls | grep f \\ refox
ตัวอักษรสามัญและความหมายของพวกเขา
ตัวละคร | ความหมาย |
. | อักขระใดก็ได้ |
* * * * | ศูนย์หรือมากกว่าอักขระ |
^ | จับคู่สายหรือสตริงที่เริ่มต้นด้วยรูปแบบ (เช่น ^ gnome) |
$ | จับคู่สายหรือสตริงที่ลงท้ายด้วยรูปแบบ (เช่น gnome $) |
\ | หนีอักขระถัดไปเพื่อลบความหมายพิเศษ |
[] | จับคู่รายการหรือช่วง (เช่น ["abc", "def"] หรือ [1..9] |
+ | จับคู่อย่างน้อยหนึ่งรายการ (เช่น grep a +) |
? | ตรงกับศูนย์หรือก่อนหน้า |