การขยายคำสั่งเชลล์และการจับคู่รูปแบบ
ทำความเข้าใจวิธีที่เชลล์ขยายคำสั่ง รวมถึงการขยายวงเล็บปีกกา การขยายเครื่องหมาย ~ และรูปแบบการจับคู่ชื่อไฟล์
การขยายคำสั่งเชลล์และการจับคู่รูปแบบ เป็นบทเรียน Linux Command Line & Bash Scripting Mastery ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Linux Command Line & Bash Scripting Mastery และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Linux Command Line & Bash Scripting Mastery มีบทเรียนทั้งหมด 4 บทเรียน
การขยายของเชลล์คืออะไร
ใน Linux เชลล์เปรียบเสมือนตัวแปลภาษาระหว่างคุณกับระบบปฏิบัติการ ก่อนที่เชลล์จะเรียกใช้คำสั่งของคุณ เชลล์มักดำเนินการบางอย่างที่เรียกว่าการขยาย
การขยายของเชลล์หมายถึงการที่เชลล์ค้นหาอักขระพิเศษหรือรูปแบบในคำสั่งของคุณ แล้วแทนที่ด้วยสิ่งอื่น การดำเนินการนี้เกิดขึ้นก่อนที่คำสั่งจะทำงานจริง ช่วยลดการพิมพ์และทำให้คำสั่งมีความสามารถมากขึ้น
โฮมของคุณด้วยทิลเด `~`
การขยายทิลเด (~)เป็นทางลัดที่มีประโยชน์มาก โดยจะขยายเป็นไดเรกทอรีโฮมของผู้ใช้ปัจจุบันโดยอัตโนมัติ
แทนที่จะพิมพ์ /home/yourusername คุณสามารถใช้ ~ ได้เลย วิธีนี้มีประโยชน์อย่างยิ่งเมื่อนำทางหรืออ้างอิงไฟล์ในโฟลเดอร์โฮมของคุณ
echo ~
echo ~/Documentsทิลเดสำหรับผู้ใช้อื่น
ทิลเดไม่ได้ใช้ได้เฉพาะกับไดเรกทอรีโฮมของคุณเองเท่านั้น คุณยังสามารถใช้ทิลเดเพื่ออ้างอิงไดเรกทอรีโฮมของผู้ใช้อื่นได้ด้วย
เมื่อพิมพ์ ~username เชลล์จะขยายค่านี้เป็นไดเรกทอรีโฮมของ 'username' ที่ระบุ วิธีนี้เหมาะสำหรับการเข้าถึงไฟล์หรือการกำหนดค่าที่ใช้ร่วมกัน
~rootจะขยายเป็น/root~guestจะขยายเป็น/home/guest
การขยายวงเล็บปีกกา `{}`
การขยายวงเล็บปีกกาช่วยให้คุณสร้างสตริงแบบใดก็ได้ เปรียบเสมือนวิธีด่วนในการสร้างหลายรายการจากรูปแบบเดียว โดยไม่ต้องพิมพ์ทีละรายการ
เชลล์จะขยายเนื้อหาภายในวงเล็บปีกกา {} ให้เป็นรายการคำแยกกัน วิธีนี้มีประโยชน์มากสำหรับการสร้างไฟล์หรือไดเรกทอรีที่มีชื่อคล้ายกัน หรือการเรียกใช้คำสั่งกับหลายรายการ
echo {apple,banana,cherry}ช่วงของวงเล็บปีกกา
คุณยังสามารถใช้การขยายวงเล็บปีกกาเพื่อสร้างลำดับตัวเลขหรือตัวอักษรได้ โดยใช้สองรายการคั่นด้วย .. ภายในวงเล็บปีกกา
เชลล์จะสร้างรายการทั้งหมดในลำดับนั้น ทำให้สร้างไฟล์หรือไดเรกทอรีที่มีหมายเลขได้ง่าย รวมถึงวนซ้ำผ่านชุดค่าได้สะดวก
echo file_{1..3}.txt
echo {a..c}_report.logบทนำสู่การจับคู่รูปแบบไฟล์
การจับคู่รูปแบบไฟล์เป็นวิธีที่เชลล์ใช้จับคู่ชื่อไฟล์และชื่อพาธด้วยอักขระแทนที่พิเศษ เปรียบเสมือนการใช้ 'รูปแบบการค้นหา' เพื่อค้นหาไฟล์
เมื่อคุณพิมพ์คำสั่งอย่าง ls *.txt เชลล์จะไม่ส่ง *.txt ไปให้ ls แต่จะขยาย *.txt เป็นรายการไฟล์ทั้งหมดในไดเรกทอรีปัจจุบันที่ตรงกัน แล้วส่งรายการนั้นไปให้ ls
จับคู่ทั้งหมดด้วย `*`
เครื่องหมายดอกจัน (*)เป็นอักขระแทนที่ที่ใช้บ่อยที่สุด โดยจับคู่กับอักขระศูนย์ตัวขึ้นไปในชื่อไฟล์
คุณสามารถใช้เครื่องหมายนี้เพื่อจับคู่ลำดับอักขระใดก็ได้ จึงมีความยืดหยุ่นอย่างมากสำหรับเลือกไฟล์ตามบางส่วนของชื่อไฟล์
mkdir -p glob_test
touch glob_test/report.txt glob_test/image.jpg glob_test/document.pdf
echo "Files ending in .txt:"
ls glob_test/*.txt
rm -rf glob_testจับคู่หนึ่งตัวด้วย `?`
อักขระแทนที่เครื่องหมายคำถาม (?)จะจับคู่กับอักขระหนึ่งตัวพอดี
วิธีนี้มีประโยชน์เมื่อคุณทราบความยาวที่แน่นอนของส่วนชื่อไฟล์ที่ต้องการจับคู่ แต่ไม่ทราบว่าอักขระนั้นเป็นตัวใด
mkdir -p glob_test
touch glob_test/file1.log glob_test/file2.log glob_test/fileA.log
echo "Files matching file?.log:"
ls glob_test/file?.log
rm -rf glob_testอักขระเฉพาะ `[]`
คุณสามารถใช้วงเล็บเหลี่ยม ([])เพื่อจับคู่กับอักขระหนึ่งตัวใดก็ได้ภายในชุดอักขระที่ระบุ
วิธีนี้ช่วยให้จับคู่ได้เจาะจงกว่า ? คุณสามารถระบุอักขระแต่ละตัวหรือกำหนดช่วงได้ (เช่น [a-z] สำหรับตัวอักษรพิมพ์เล็กใดก็ได้ หรือ [0-9] สำหรับตัวเลขใดก็ได้)
mkdir -p glob_test
touch glob_test/photoA.png glob_test/photoB.png glob_test/photoC.png glob_test/photoD.png
echo "Files matching photo[A-C].png:"
ls glob_test/photo[A-C].png
rm -rf glob_testการผสมรูปแบบการจับคู่ไฟล์
คุณสามารถผสมรูปแบบการจับคู่ไฟล์หลายรูปแบบ รวมถึงการขยายวงเล็บปีกกา เพื่อเลือกไฟล์ได้อย่างมีประสิทธิภาพ
เชลล์จะประมวลผลการขยายเหล่านี้จากซ้ายไปขวา ทำให้เกิดรูปแบบซับซ้อนที่ตรงกับสิ่งที่คุณต้องการอย่างแม่นยำ
mkdir -p glob_test
touch glob_test/data_01.csv glob_test/data_02.txt glob_test/data_a.log glob_test/info_01.txt
echo "Files matching data_[0-9]*.{txt,csv}:"
ls glob_test/data_[0-9]*.{txt,csv}
rm -rf glob_testตรวจสอบความเข้าใจอย่างรวดเร็ว
คำสั่งใดต่อไปนี้จะแสดงรายการไฟล์ชื่อ report1.doc, report2.doc และ report3.doc แต่จะไม่แสดง reportA.doc
ทบทวนและขั้นตอนถัดไป
ทำได้ดีมาก คุณได้เรียนรู้วิธีที่เชลล์ขยายคำสั่งก่อนที่คำสั่งจะทำงานแล้ว 'เวทมนตร์' นี้ทำให้การทำงานกับบรรทัดคำสั่งมีประสิทธิภาพมากขึ้น
- การขยายทิลเด (
~): ทางลัดสำหรับไดเรกทอรีโฮม - การขยายวงเล็บปีกกา (
{}): สร้างสตริงหรือลำดับที่กำหนดเอง - การจับคู่รูปแบบไฟล์ (
*,?,[]): จับคู่ชื่อไฟล์โดยใช้อักขระแทนที่เพื่อเลือกไฟล์ตามรูปแบบได้อย่างมีประสิทธิภาพ
ความเข้าใจเกี่ยวกับการขยายเหล่านี้เป็นกุญแจสำคัญในการเขียนคำสั่งที่มีประสิทธิภาพและกระชับ หมั่นฝึกใช้ต่อไป
คำถามที่พบบ่อย
บทเรียน “การขยายคำสั่งเชลล์และการจับคู่รูปแบบ” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การขยายคำสั่งเชลล์และการจับคู่รูปแบบ” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Linux Command Line & Bash Scripting Mastery ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Linux Command Line & Bash Scripting Mastery มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การขยายคำสั่งเชลล์และการจับคู่รูปแบบ”
ทำความเข้าใจวิธีที่เชลล์ขยายคำสั่ง รวมถึงการขยายวงเล็บปีกกา การขยายเครื่องหมาย ~ และรูปแบบการจับคู่ชื่อไฟล์ คุณปฏิบัติ Linux Command Line & Bash Scripting Mastery ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Linux Command Line & Bash Scripting Mastery หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Linux Command Line & Bash Scripting Mastery บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน
บทเรียน “การขยายคำสั่งเชลล์และการจับคู่รูปแบบ” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Linux Command Line & Bash Scripting Mastery นี้ได้ไหม
ได้ บทเรียน Linux Command Line & Bash Scripting Mastery ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การควบคุมงาน (bg, fg, jobs)
- การขยายคำสั่งเชลล์และการจับคู่รูปแบบ
- ชื่อแทนและพรอมต์แบบกำหนดเอง
- ฟังก์ชันเชลล์และส่วนโค้ดที่นำกลับมาใช้ซ้ำ