วิธีปรับแต่ง Bash Shell ด้วย shopt
เผยแพร่แล้ว: 2022-01-29 หากคุณปรับแต่งพฤติกรรมของ 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
บางรายการอยู่ในนั้นแล้ว
คุณสามารถเพิ่มตัวเลือก shopt
ของคุณเองได้ที่นี่เช่นกัน เมื่อคุณเพิ่มแล้ว ให้บันทึกการเปลี่ยนแปลงและปิดตัวแก้ไข ตอนนี้ เมื่อใดก็ตามที่คุณเปิดเปลือก Bash ใหม่ ตัวเลือกของคุณจะถูกตั้งค่าไว้สำหรับคุณ
ทางเลือกไกลสุดลูกหูลูกตา
จริงอยู่ที่คำสั่ง shopt
มีตัวเลือกมากมาย แต่คุณไม่จำเป็นต้องจับทั้งหมดพร้อมกัน ถ้าเคย เนื่องจากมีจำนวนมากจึงมีแนวโน้มที่จะไม่น่าสนใจสำหรับคุณ
ตัวอย่างเช่น มีกลุ่มที่บังคับให้ Bash ทำงานในลักษณะที่เข้ากันได้กับเวอร์ชันเก่าที่เฉพาะเจาะจง นั่นอาจเป็นประโยชน์สำหรับใครบางคน แต่เป็นกรณีเฉพาะที่ค่อนข้าง
คุณสามารถตรวจสอบหน้าคู่มือ Bash หรือคู่มืออ้างอิง GNU Bash ตัดสินใจว่าตัวเลือกใดที่จะสร้างความแตกต่างให้กับคุณ แล้วทดลองกับตัวเลือกเหล่านั้น เพียงระวังตัวเลือกที่ส่งผลต่อวิธีการขยายชื่อไฟล์และไดเรกทอรี ลองใช้คำสั่งที่ไม่เป็นพิษเป็นภัย เช่น ls
จนกว่าคุณจะพอใจกับมัน