0Pricing
DevOps Bootcamp · บทเรียน

การขยายคำสั่งเชลล์และการจับคู่รูปแบบ

ทำความเข้าใจวิธีที่เชลล์ขยายคำสั่ง รวมถึงการขยายวงเล็บปีกกา การขยายเครื่องหมาย ~ และรูปแบบการจับคู่ชื่อไฟล์

การขยายคำสั่งเชลล์และการจับคู่รูปแบบ เป็นบทเรียน DevOps Bootcamp ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน DevOps Bootcamp และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 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) และปลดล็อคส่วนที่เหลือของคอร์ส DevOps Bootcamp ให้อัปเกรดเป็น CoddyKit PRO คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การขยายคำสั่งเชลล์และการจับคู่รูปแบบ”

ทำความเข้าใจวิธีที่เชลล์ขยายคำสั่ง รวมถึงการขยายวงเล็บปีกกา การขยายเครื่องหมาย ~ และรูปแบบการจับคู่ชื่อไฟล์ คุณปฏิบัติ DevOps Bootcamp ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน DevOps Bootcamp หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน DevOps Bootcamp บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน

บทเรียน “การขยายคำสั่งเชลล์และการจับคู่รูปแบบ” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน DevOps Bootcamp นี้ได้ไหม

ได้ บทเรียน DevOps Bootcamp ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การควบคุมงาน (bg, fg, jobs)
  2. การขยายคำสั่งเชลล์และการจับคู่รูปแบบ
  3. ชื่อแทนและพรอมต์แบบกำหนดเอง
  4. ฟังก์ชันเชลล์และส่วนโค้ดที่นำกลับมาใช้ซ้ำ
← กลับไปที่ DevOps Bootcamp