วิธีปรับแต่ง Bash Shell ด้วย shopt

เผยแพร่แล้ว: 2022-01-29
ข้อความแจ้งเทอร์มินัลบนแล็ปท็อป Linux
Fatmawati Achmad Zaenuri/Shutterstock

หากคุณปรับแต่งพฤติกรรมของ Bash shell ด้วย shopt คุณสามารถควบคุมการตั้งค่าได้กว่า 50 รายการ เราจะแสดงวิธีปรับแต่งระบบ Linux ของคุณในแบบที่คุณชอบ

ร้านค้าในตัว

shopt ในตัวเป็นส่วนหนึ่งของ Bash shell ทุกรุ่น ดังนั้นจึงไม่จำเป็นต้องติดตั้งอะไรเลย จำนวนตัวเลือกที่มีอยู่ใน shopt เพิ่มขึ้นอย่างต่อเนื่องในช่วงหลายปีที่ผ่านมา ดังนั้น ยิ่งคุณรุ่นเก่าของ Bash รายการตัวเลือก shopt จะสั้นลงเท่านั้น

หากมีบางอย่างไม่ทำงานบนเครื่องของคุณ ให้ตรวจสอบรายการ man page สำหรับ Bash และตรวจสอบว่าตัวเลือกนั้นมีอยู่ในเวอร์ชันของ shopt

เราครอบคลุมตัวเลือก shopt ทั้งหมดด้านล่าง เรายังอธิบายวิธีใช้งานและแชร์ตัวอย่าง จากที่นั่น คุณสามารถตรวจสอบหน้าคนของ Bash หรือ คู่มืออ้างอิง GNU Bash เพื่อดูว่าตัวเลือกใดมีประโยชน์หรือน่าดึงดูดใจหรือไม่

บางตัวเลือก shopt ถูกเปิดใช้งานโดยค่าเริ่มต้นและเป็นส่วนหนึ่งของพฤติกรรมเริ่มต้นของ Bash คุณสามารถเปิดใช้งานตัวเลือก shopt เป็นการเปลี่ยนแปลงระยะสั้นของ Bash จากนั้นจะเปลี่ยนกลับเป็นการทำงานเริ่มต้นเมื่อคุณปิดเชลล์

โฆษณา

อย่างไรก็ตาม หากคุณต้องการให้ลักษณะการทำงานที่แก้ไขพร้อมใช้งานทุกครั้งที่คุณเรียกใช้ Bash shell คุณสามารถทำการเปลี่ยนแปลงอย่างถาวรได้

ตัวเลือกร้านค้า

มี 53 shopt ค้าให้เลือก หากคุณใช้คำสั่ง shopt โดยไม่มีตัวเลือกใดๆ คำสั่งนี้จะแสดงรายการเหล่านี้ หากเราไพพ์เอาต์พุตผ่านคำสั่ง wc มันจะนับบรรทัด คำ และอักขระสำหรับเรา เนื่องจากแต่ละตัวเลือก shopt อยู่ในบรรทัดของตัวเอง จำนวนบรรทัดคือจำนวนตัวเลือก

เราพิมพ์ดังต่อไปนี้:

 shopt | ห้องน้ำ 

หากต้องการดูตัวเลือกทั้งหมด เราสามารถไพพ์เอาต์พุตผ่านคำสั่งของ column เพื่อแสดงชื่อตัวเลือกในคอลัมน์ หรือเราจะไพพ์ลงในไฟล์ less

เราพิมพ์ดังต่อไปนี้:

 shopt | คอลัมน์ 

ค้นหา shopt ในคู่มือ Linux

หัวข้อที่กล่าวถึง shopt และตัวเลือกต่างๆ อยู่ในส่วน Bash ของคู่มือ Linux ส่วนทุบตีมีความยาวมากกว่า 6,000 บรรทัด คุณสามารถค้นหาคำอธิบายของ shopt ได้ด้วยการเลื่อนดูจำนวนมาก หรือค้นหาได้ในคู่มือ

ในการดำเนินการดังกล่าว ให้เปิดคู่มือที่ส่วน Bash:

 ผู้ชายทุบตี 

โฆษณา

ในคู่มือ ให้กด / เพื่อเริ่มการค้นหา พิมพ์ข้อมูลต่อไปนี้ จากนั้นกด Enter:

 assoc_expand_once 

จุดเริ่มต้นของส่วนตัวเลือก shopt จะปรากฏในหน้าต่าง man

ที่เกี่ยวข้อง: วิธีใช้คำสั่ง man ของ Linux: ความลับและพื้นฐานที่ซ่อนอยู่

ตัวเลือกการตั้งค่าและการยกเลิกการตั้งค่า

ในการตั้งค่าและยกเลิกการตั้งค่าตัวเลือก shopt ให้ใช้คำสั่งต่อไปนี้:

  • -s : ตั้งค่าหรือเปิดใช้งาน
  • -u : Unset หรือปิดการใช้งาน

เนื่องจากบางตัวเลือกถูกเปิดใช้งานโดยค่าเริ่มต้น การตรวจสอบว่าตัวเลือกใดเปิดอยู่จึงสะดวก คุณสามารถทำได้โดยใช้ตัวเลือก -s และ -u โดยไม่ต้องใช้ชื่อตัวเลือก สิ่งนี้ทำให้ shopt แสดงรายการตัวเลือกที่เปิดและปิด

พิมพ์ต่อไปนี้:

 shopt -s 

 shopt -u | คอลัมน์ 

คุณสามารถใช้ตัวเลือก shopt โดยไม่ต้องใช้คำสั่ง -s หรือ -u เพื่อดูสถานะเปิดหรือปิดสำหรับแต่ละตัวเลือก

ตัวอย่างเช่น เราสามารถพิมพ์ข้อความต่อไปนี้เพื่อตรวจสอบการตั้งค่าของตัวเลือก histverify :

 shopt histverify

เราสามารถพิมพ์ข้อความต่อไปนี้เพื่อตั้งค่าเป็นเปิด:

 shopt -s histverify
โฆษณา

จากนั้นเราสามารถพิมพ์ข้อความต่อไปนี้เพื่อตรวจสอบอีกครั้ง:

 shopt histverify 

histverify จะเปลี่ยนวิธีดำเนินการด้านหนึ่งของคำสั่ง history โดยปกติ หากคุณขอให้ history ทำซ้ำคำสั่งโดยอ้างอิงตามตัวเลข เช่น !245 คำสั่งจะถูกดึงมาจากประวัติคำสั่งและดำเนินการทันที

หากคุณต้องการตรวจสอบคำสั่งเพื่อให้แน่ใจว่าเป็นคำสั่งที่คุณคาดหวังและแก้ไข หากจำเป็น ให้พิมพ์คำสั่งต่อไปนี้เพื่อตั้งค่าตัวเลือก shopt histverify เป็นเปิด:

 !245 

คำสั่งถูกดึงและนำเสนอบนบรรทัดคำสั่ง คุณสามารถลบ แก้ไข หรือดำเนินการได้โดยกด Enter

ที่เกี่ยวข้อง: วิธีใช้คำสั่งประวัติบน Linux

ตัวเลือก autocd

เมื่อตั้งค่าตัวเลือก autocd เป็นเปิด หากคุณพิมพ์ชื่อไดเร็กทอรีในบรรทัดคำสั่งแล้วกด Enter ระบบจะถือว่าคุณพิมพ์ cd ไว้ข้างหน้า

เราพิมพ์ข้อความต่อไปนี้เพื่อเปิดตัวเลือก autocd :

 shopt -s autocd

จากนั้นเราพิมพ์ชื่อไดเร็กทอรี:

 เอกสาร 

ตัวเลือก cdspell

เมื่อเปิดตัวเลือก cdspell ไว้ Bash จะแก้ไขข้อผิดพลาดในการสะกดคำอย่างง่ายและการสะกดผิดในชื่อไดเร็กทอรีโดยอัตโนมัติ

เราพิมพ์ต่อไปนี้เพื่อตั้งค่าตัวเลือก cdspell :

 shopt -s cdspell
โฆษณา

ในการลองเปลี่ยนเป็นไดเร็กทอรีตัวพิมพ์เล็กที่ควรมีอักษรตัวพิมพ์ใหญ่ขึ้นต้น เราพิมพ์ดังต่อไปนี้:

 เอกสารซีดี

จากนั้น เราสามารถพิมพ์ต่อไปนี้เพื่อลองใช้ชื่อไดเร็กทอรีที่มี "t" พิเศษในชื่อ:

 cd ../รูปภาพ 

Bash จะเปลี่ยนในแต่ละไดเร็กทอรีโดยไม่คำนึงถึงการสะกดคำผิด

ตัวเลือก xpg_echo

เมื่อตั้งค่าตัวเลือก xpg_echo เป็นเปิด คำสั่ง echo จะปฏิบัติตามอักขระที่ใช้ Escape เช่น \n สำหรับบรรทัดใหม่และ \t สำหรับแท็บแนวนอน

ขั้นแรก เราพิมพ์ข้อความต่อไปนี้เพื่อให้แน่ใจว่าได้ตั้งค่าตัวเลือกไว้:

 shopt -s xpg_echo
โฆษณา

จากนั้นเรารวม \n ในสตริงที่เราจะส่งผ่านไปยัง echo :

 echo "นี่คือบรรทัดที่หนึ่ง\nนี่คือบรรทัดที่สอง" 

อักขระขึ้นบรรทัดใหม่ที่ใช้ Escape บังคับให้ตัวแบ่งบรรทัดในเอาต์พุต

สิ่งนี้สร้างพฤติกรรมเช่นเดียวกับตัวเลือก echo -e (เปิดใช้งานการหลีกเลี่ยงการตีความ) แต่ xpg_echo อนุญาตให้เป็นการดำเนินการเริ่มต้น

ที่เกี่ยวข้อง: วิธีใช้คำสั่ง Echo บน Linux

ตัวเลือก dotglob

ตัวเลือก dotglob ควรได้รับการปฏิบัติด้วยความระมัดระวังเล็กน้อย อนุญาตให้รวมไฟล์และไดเร็กทอรีที่ขึ้นต้นด้วยจุด ( . ) ในการขยายชื่อหรือ "globbing" สิ่งเหล่านี้เรียกว่า “ไฟล์จุด” หรือ “ไดเรกทอรีจุด” และมักจะถูกซ่อนไว้ ตัวเลือก dotglob จะละเว้นจุดที่ขึ้นต้นชื่อ

อันดับแรก เราจะทำการค้นหาไฟล์หรือไดเร็กทอรีที่ลงท้ายด้วย “geek” โดยพิมพ์ข้อความต่อไปนี้:

 ls * geek

พบหนึ่งไฟล์และแสดงรายการ จากนั้น เราจะเปิดตัวเลือก dotglob โดยพิมพ์ข้อความต่อไปนี้:

 shopt -s dotglob
โฆษณา

เราออกคำสั่ง ls เดียวกันเพื่อค้นหาไฟล์และไดเร็กทอรีที่ลงท้ายด้วย "geek":

 ls * geek 

คราวนี้จะพบและแสดงรายการไฟล์สองไฟล์ ซึ่งหนึ่งในนั้นคือไฟล์ดอท คุณต้องระวัง rm และ mv เมื่อคุณได้ตั้งค่าตัวเลือก dotglob ไว้

ตัวเลือก nocaseglob

ตัวเลือก nocaseglob คล้ายกับตัวเลือก dotglob ยกเว้น nocaseglob ทำให้เกิดความแตกต่างในอักษรตัวพิมพ์ใหญ่และตัวพิมพ์เล็กในชื่อไฟล์และไดเร็กทอรีที่จะถูกละเว้นในการขยายชื่อ

เราพิมพ์ข้อความต่อไปนี้เพื่อค้นหาไฟล์หรือไดเร็กทอรีที่ขึ้นต้นด้วย "how":

 ยังไง*

พบหนึ่งไฟล์และแสดงรายการ เราพิมพ์ข้อความต่อไปนี้เพื่อเปิดตัวเลือก nocaseglob :

 shopt -s nocaseglob

จากนั้นเราทำซ้ำคำสั่ง ls :

 ยังไง* 

พบไฟล์ 2 ไฟล์ ไฟล์หนึ่งมีตัวพิมพ์ใหญ่

การเปลี่ยนแปลงอย่างถาวร

การเปลี่ยนแปลงที่เราทำจะคงอยู่จนกว่าเราจะปิด Bash shell ปัจจุบันเท่านั้น ในการทำให้ถาวรในเชลล์เซสชันต่างๆ เราต้องเพิ่มลงในไฟล์ ".bashrc"

โฆษณา

ในโฮมไดเร็กทอรีของคุณ ให้พิมพ์คำสั่งต่อไปนี้เพื่อเปิดไฟล์ ".bashrc" ในตัวแก้ไขข้อความ Gedit แบบกราฟิก (หรือเปลี่ยนตามนั้นเพื่อใช้ตัวแก้ไขที่คุณต้องการ):

 gedit .bashrc

ตัวแก้ไข gedit จะเปิดขึ้นพร้อมกับโหลดไฟล์ “.bashrc” คุณจะเห็นรายการ shopt บางรายการอยู่ในนั้นแล้ว

ตัวแก้ไข gedit ที่มี .bashrc โหลดอยู่ และตัวเลือก shopt ที่ไฮไลต์ไว้

คุณสามารถเพิ่มตัวเลือก shopt ของคุณเองได้ที่นี่เช่นกัน เมื่อคุณเพิ่มแล้ว ให้บันทึกการเปลี่ยนแปลงและปิดตัวแก้ไข ตอนนี้ เมื่อใดก็ตามที่คุณเปิดเปลือก Bash ใหม่ ตัวเลือกของคุณจะถูกตั้งค่าไว้สำหรับคุณ

ทางเลือกไกลสุดลูกหูลูกตา

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

ตัวอย่างเช่น มีกลุ่มที่บังคับให้ Bash ทำงานในลักษณะที่เข้ากันได้กับเวอร์ชันเก่าที่เฉพาะเจาะจง นั่นอาจเป็นประโยชน์สำหรับใครบางคน แต่เป็นกรณีเฉพาะที่ค่อนข้าง

โฆษณา

คุณสามารถตรวจสอบหน้าคู่มือ Bash หรือคู่มืออ้างอิง GNU Bash ตัดสินใจว่าตัวเลือกใดที่จะสร้างความแตกต่างให้กับคุณ แล้วทดลองกับตัวเลือกเหล่านั้น เพียงระวังตัวเลือกที่ส่งผลต่อวิธีการขยายชื่อไฟล์และไดเรกทอรี ลองใช้คำสั่งที่ไม่เป็นพิษเป็นภัย เช่น ls จนกว่าคุณจะพอใจกับมัน