สิ่งที่เป็นลิเทต Linux Metacharacters และคุณใช้พวกเขาอย่างไร

ตามวิกิพีเดีย 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 +)
? ตรงกับศูนย์หรือก่อนหน้า