สนุกกับการใช้ bash shell ใน Linux หรือไม่? หรือคุณต้องการลองใช้ทางเลือกอื่นหรือไม่? มีให้เลือกทั้ง tsch, fish, KornShell และ Z Shell แต่เชลล์ Linux ยอดนิยมตัวใดดีที่สุด?
Linux Shell คืออะไร
โดยปกติ เมื่อคุณเขียนแอปพลิเคชัน จะทำในภาษาระดับสูงที่มนุษย์สามารถเข้าใจได้ ตัวอย่างของสิ่งเหล่านี้คือ C#, Java, C++ เป็นต้น เชื่อหรือไม่ว่าคอมพิวเตอร์ของคุณมองเห็นทุกอย่างเป็น 1 วินาทีเป็น 0 หรือที่รู้จักกันทั่วไปคือไบนารีหรือรหัสเครื่อง
คอมไพเลอร์จะแปลภาษาระดับสูงเป็นไฟล์ไบนารีเช่นปฏิบัติการ ไฟล์ไบนารีนี้เป็นสิ่งที่คุณเรียกใช้เพื่อเปิดแอปพลิเคชันดังกล่าว
นี่เป็นมุมมองที่สูงมากเกี่ยวกับสิ่งที่เกิดขึ้น เพียงจำไว้ว่าคอมพิวเตอร์ของคุณต้องมีชั้นการแปล เรื่องนี้อยู่ระหว่างสิ่งที่คุณบอกให้ทำกับวิธีที่จะเข้าใจสิ่งนั้น
เชลล์คือสิ่งที่เรียกว่าล่าม คล้ายกับคอมไพเลอร์ ล่ามแปลรหัสมนุษย์เป็นรหัสเครื่อง ความแตกต่างประการหนึ่งคือล่ามทำหน้าที่นี้ทีละคำสั่ง ในขณะเดียวกัน คอมไพเลอร์จะสแกนโปรแกรมทั้งหมดและแปลเป็นรหัสเครื่อง
เชลล์เป็นอินเทอร์เฟซสำหรับคุณในการโต้ตอบกับระบบปฏิบัติการ (OS) ของคุณ ในขณะที่คุณพิมพ์คำสั่งลงในเชลล์ จะมีหน้าที่ในการตีความคำสั่งเหล่านั้นและทำให้เวทมนตร์เกิดขึ้น การดำเนินการต่างๆ เช่น การคัดลอกไฟล์ การไพพ์ การแสดงรายการไฟล์ทั้งหมดอยู่ในการส่งของเชลล์
มีลีนุกซ์เชลล์หลายตัว หากต้องการค้นหาเชลล์ทั้งหมดที่มีอยู่ในระบบของคุณ ให้เปิดเทอร์มินัลแล้วพิมพ์:
cat /etc/shells
หากต้องการทราบว่าคุณกำลังใช้เชลล์ใดอยู่ ให้พิมพ์:
echo $0
แต่คุณใช้เปลือก Linux ที่ดีที่สุดหรือไม่? มาดูกันว่ามีอะไรบ้าง
1. ทุบตี
นี่คือเชลล์ที่ได้รับความนิยมสูงสุดในหมู่ผู้ใช้ Linux หนึ่งไมล์ เป็นการยากที่จะคิดถึงเชลล์โดยที่ Bourne-Again Shell (bash) ไม่ได้เป็นส่วนหนึ่งของสมการ ลีนุกซ์หลายรุ่นมาพร้อมกับ bash เป็นเชลล์เริ่มต้นเพราะ bash เป็นเชลล์ GNU เริ่มต้น ซึ่งเปิดตัวในปี 1989 และยังมีการพัฒนาที่ดีอยู่เบื้องหลังเป็นเวลา 2-3 ทศวรรษ
บรรพบุรุษของ Bash คือ The Bourne Shell (sh) ซึ่งเป็นหนึ่งในเชลล์ Unix ดั้งเดิม คุณลักษณะที่น่าสนใจประการหนึ่งสำหรับโปรแกรมเมอร์ sh คือพวกเขาสามารถพอร์ตสคริปต์ของตนโดยตรงเพื่อทุบตีไม่เปลี่ยนแปลงทั้งหมด Bash ยังเสนอการปรับปรุงหลายอย่างให้กับรุ่นก่อน:
- เสร็จสิ้นคำสั่ง
- ประวัติคำสั่ง
บ่อยครั้งที่เอกสารออนไลน์จะถือว่าคุณกำลังใช้ bash อย่างไรก็ตาม ไม่ใช่ว่าไม่มีข้อบกพร่อง เพราะใครก็ตามที่เคยเขียนสคริปต์ทุบตีสามารถยืนยันได้! ไม่ใช่ว่าคุณทำอะไรไม่ได้ แต่การอ่านและเขียนไม่ได้สวยงามเป็นพิเศษเสมอไป
2. คอร์นเชลล์
KornShell ที่รู้จักกันทั่วไปในชื่อ ksh เป็นเชลล์ทางเลือกยอดนิยมของ Linux ซึ่งมีต้นกำเนิดมาจาก Bell Labs ในทศวรรษ 1980 มีความแตกต่างไม่มากระหว่าง bash และ ksh แต่แต่ละข้อมีข้อดีเล็กน้อยเหนือสิ่งอื่นใด ตัวอย่างเช่น Ksh มีคำสั่ง cd old new หากคุณอยู่ในไดเรกทอรี /Downloads/foo/bar/one/foobar และคุณต้องไปที่ /Downloads/foo/bar/two/foobar คุณเพียงแค่ต้องป้อน:
cd one two
ทหารผ่านศึกของ ksh จะสนับสนุนความเหนือกว่าด้วยการกล่าวถึงประโยชน์ของสคริปต์ ซึ่งรวมถึง:
- รูปแบบการวนซ้ำที่ดีขึ้น
- วิธีธรรมชาติในการทำซ้ำคำสั่ง
- แอสโซซิเอทีฟอาเรย์
ต่างจาก bash ตรงที่หาความช่วยเหลือสำหรับ ksh ออนไลน์ได้ยาก หากคุณต้องการลอง ksh คุณป้อน:
sudo apt install ksh
ksh
3. TCSH
Tcsh สามารถติดตามรากของมันกลับไปสู่ยุคแรก ๆ ของ Unix เป็นเวอร์ชันปรับปรุงของ C เชลล์ (csh) และคุณลักษณะ:
- โปรแกรมบรรทัดคำสั่งเสร็จสิ้น
- การแก้ไขบรรทัดคำสั่ง
- การเพิ่มอาร์กิวเมนต์ให้กับนามแฝง
- เข้าถึงประวัติคำสั่งได้ง่าย
คุณสามารถเรียกใช้คำสั่งใดก็ได้โดยพิมพ์ !n แทนที่ n ด้วยหมายเลขที่เกี่ยวข้องในประวัติที่แสดง การเติมแท็บประวัติให้สมบูรณ์ใน tcsh ทำได้โดยพิมพ์:
!a<TAB>
ซึ่งจะขยายไปยังคำสั่งสุดท้ายที่ขึ้นต้นด้วยตัวอักษร "a" เมื่อเทียบกับ bash คุณจะต้องพิมพ์ !a:p ก่อนเห็นคำสั่ง ตามด้วย !! เพื่อดำเนินการ
หากต้องการลองใช้ tcsh ให้พิมพ์:
sudo apt install tcsh
tcsh
Tcsh เป็นเชลล์เริ่มต้นสำหรับระบบที่ใช้ BSD เช่น FreeBSD จุดขายที่สำคัญสำหรับ tcsh คือภาษาสคริปต์ ซึ่งมีประโยชน์สำหรับทุกคนที่เขียนโปรแกรมในภาษา C เป็นหลัก สิ่งนี้ทำให้ tcsh มีประโยชน์สำหรับการสร้างต้นแบบโปรแกรม C ขนาดเล็กโดยไม่สับสนกับสิ่งต่างๆ เช่น วงเล็บที่คุณใช้อยู่ ปัญหานี้มักเกิดขึ้นหากคุณสลับไปมาระหว่างการเขียนโปรแกรม C และเชลล์สคริปต์อย่างต่อเนื่อง
4. ปลา
ท่ามกลางความจริงจังของ Linux ทีมงานของ Fish ได้ฝังอารมณ์ขันไว้ในโปรเจ็กต์ของพวกเขา ในเว็บไซต์ของพวกเขา หัวเรื่องลิ้นแก้มอ่านว่า "สุดท้ายแล้ว เปลือกคำสั่งสำหรับยุค 90" แม้ว่าปลา ("f อย่างตรงไปตรงมา ฉัน โต้ตอบ sh ell") ได้รับการพัฒนาในปี 2548 นอกเหนือจาก "Glorious VGA Color" แล้ว ยังมีการปรับปรุงบางอย่างเหนือเชลล์อื่นๆ:
- คำสั่งที่มีไวยากรณ์ที่ไม่ถูกต้องแสดงเป็นสีแดง
- ไวยากรณ์ที่ถูกต้องปรากฏเป็นสีน้ำเงิน
- เติมคำแนะนำอัตโนมัติ
- เสร็จสิ้นคำสั่งตามหน้า man บนเครื่องของคุณ
คุณลักษณะนี้จะเพิ่มไวยากรณ์จากหน้าคู่มือของซอฟต์แวร์ที่ติดตั้งใหม่ไปยังคำแนะนำการเติมข้อความอัตโนมัติของคุณ หากคุณต้องการทำความคุ้นเคยกับบรรทัดคำสั่งให้มากขึ้น ปลาอาจเป็นจุดเริ่มต้นที่ดี
ดูตัวอย่างว่าปลาเกี่ยวกับอะไร ให้พิมพ์:
sudo apt install fish
fish
5. ซีเชลล์
หลายคนคิดว่านี่เป็นการทิ้งเปลือกที่ดีที่สุดไว้เป็นครั้งสุดท้าย ซึ่งจะเข้าใจได้อย่างสมบูรณ์ Zsh มีความคล้ายคลึงกันกับ bash และ ksh และรวมเอาคุณสมบัติมากมายที่พบในนั้นรวมถึง tcsh คุณสมบัติของ Zsh:
- รายการเติมข้อความอัตโนมัติที่นำทางได้
- การแก้ไขตัวสะกดที่เหนือกว่า
- กรอกบรรทัดคำสั่ง
- แชร์ประวัติระหว่างเทอร์มินัล
- Globbing (อักขระตัวแทนสำหรับชื่อไฟล์)
Globbing ใน zsh มีประโยชน์มาก กำลังพิมพ์:
vim /u/l/b/a<TAB>
จะเปิดไฟล์:
/usr/local/bin/autoupdate.sh
Zsh อาจใช้เวลาสักครู่ในการกำหนดค่าในการใช้งานครั้งแรกหากคุณไม่ได้ใช้การกำหนดค่าเริ่มต้น หากต้องการทดลองใช้ ให้ป้อน:
sudo apt install zsh
zsh
Linux Shell รุ่นใดดีที่สุดสำหรับฉัน
ความจริงที่ว่ามีตัวเลือกเหล่านี้ที่ยอดเยี่ยม แต่ละรายการคือภาพรวมของประวัติการใช้คอมพิวเตอร์ ซึ่งโปรแกรมเมอร์ตัดสินใจว่าพวกเขาต้องการสร้างสิ่งต่างๆ ในแบบของตัวเอง
ความแตกต่างที่สำคัญระหว่างเชลล์เหล่านี้สามารถพบได้ในไวยากรณ์สคริปต์ แต่ละเชลล์มีชุดของความแตกต่างเฉพาะที่แยกออกจากกัน ตามที่ปรากฏ bash ครอบงำในแง่ของส่วนแบ่งการตลาดซึ่งทำให้การค้นหาความช่วยเหลือง่ายขึ้นมาก Bash เป็นเพียงโปรแกรมอเนกประสงค์ที่ดีที่สุด ตอบสนองความต้องการของทุกคน ยกเว้นผู้ใช้ที่ล้ำหน้าที่สุด
เมื่อคุณเลือกใช้ Linux Shell คุณต้องคุ้นเคยกับพื้นฐานของเชลล์สคริปต์