Computer >> คอมพิวเตอร์ >  >> ระบบ >> Linux

Linux Shell ตัวไหนดีที่สุด? 5 เปรียบเทียบเปลือกหอยทั่วไป

สนุกกับการใช้ bash shell ใน Linux หรือไม่? หรือคุณต้องการลองใช้ทางเลือกอื่นหรือไม่? มีให้เลือกทั้ง tsch, fish, KornShell และ Z Shell แต่เชลล์ Linux ยอดนิยมตัวใดดีที่สุด?

Linux Shell คืออะไร

โดยปกติ เมื่อคุณเขียนแอปพลิเคชัน จะทำในภาษาระดับสูงที่มนุษย์สามารถเข้าใจได้ ตัวอย่างของสิ่งเหล่านี้คือ C#, Java, C++ เป็นต้น เชื่อหรือไม่ว่าคอมพิวเตอร์ของคุณมองเห็นทุกอย่างเป็น 1 วินาทีเป็น 0 หรือที่รู้จักกันทั่วไปคือไบนารีหรือรหัสเครื่อง

คอมไพเลอร์จะแปลภาษาระดับสูงเป็นไฟล์ไบนารีเช่นปฏิบัติการ ไฟล์ไบนารีนี้เป็นสิ่งที่คุณเรียกใช้เพื่อเปิดแอปพลิเคชันดังกล่าว

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

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

เชลล์เป็นอินเทอร์เฟซสำหรับคุณในการโต้ตอบกับระบบปฏิบัติการ (OS) ของคุณ ในขณะที่คุณพิมพ์คำสั่งลงในเชลล์ จะมีหน้าที่ในการตีความคำสั่งเหล่านั้นและทำให้เวทมนตร์เกิดขึ้น การดำเนินการต่างๆ เช่น การคัดลอกไฟล์ การไพพ์ การแสดงรายการไฟล์ทั้งหมดอยู่ในการส่งของเชลล์

มีลีนุกซ์เชลล์หลายตัว หากต้องการค้นหาเชลล์ทั้งหมดที่มีอยู่ในระบบของคุณ ให้เปิดเทอร์มินัลแล้วพิมพ์:

cat /etc/shells

หากต้องการทราบว่าคุณกำลังใช้เชลล์ใดอยู่ ให้พิมพ์:

echo $0
Linux Shell ตัวไหนดีที่สุด? 5 เปรียบเทียบเปลือกหอยทั่วไป

แต่คุณใช้เปลือก Linux ที่ดีที่สุดหรือไม่? มาดูกันว่ามีอะไรบ้าง

1. ทุบตี

นี่คือเชลล์ที่ได้รับความนิยมสูงสุดในหมู่ผู้ใช้ Linux หนึ่งไมล์ เป็นการยากที่จะคิดถึงเชลล์โดยที่ Bourne-Again Shell (bash) ไม่ได้เป็นส่วนหนึ่งของสมการ ลีนุกซ์หลายรุ่นมาพร้อมกับ bash เป็นเชลล์เริ่มต้นเพราะ bash เป็นเชลล์ GNU เริ่มต้น ซึ่งเปิดตัวในปี 1989 และยังมีการพัฒนาที่ดีอยู่เบื้องหลังเป็นเวลา 2-3 ทศวรรษ

บรรพบุรุษของ Bash คือ The Bourne Shell (sh) ซึ่งเป็นหนึ่งในเชลล์ Unix ดั้งเดิม คุณลักษณะที่น่าสนใจประการหนึ่งสำหรับโปรแกรมเมอร์ sh คือพวกเขาสามารถพอร์ตสคริปต์ของตนโดยตรงเพื่อทุบตีไม่เปลี่ยนแปลงทั้งหมด Bash ยังเสนอการปรับปรุงหลายอย่างให้กับรุ่นก่อน:

  • เสร็จสิ้นคำสั่ง
  • ประวัติคำสั่ง

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

2. คอร์นเชลล์

Linux Shell ตัวไหนดีที่สุด? 5 เปรียบเทียบเปลือกหอยทั่วไป

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

Linux Shell ตัวไหนดีที่สุด? 5 เปรียบเทียบเปลือกหอยทั่วไป

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 Shell ตัวไหนดีที่สุด? 5 เปรียบเทียบเปลือกหอยทั่วไป

ท่ามกลางความจริงจังของ Linux ทีมงานของ Fish ได้ฝังอารมณ์ขันไว้ในโปรเจ็กต์ของพวกเขา ในเว็บไซต์ของพวกเขา หัวเรื่องลิ้นแก้มอ่านว่า "สุดท้ายแล้ว เปลือกคำสั่งสำหรับยุค 90" แม้ว่าปลา ("f อย่างตรงไปตรงมา ฉัน โต้ตอบ sh ell") ได้รับการพัฒนาในปี 2548 นอกเหนือจาก "Glorious VGA Color" แล้ว ยังมีการปรับปรุงบางอย่างเหนือเชลล์อื่นๆ:

  • คำสั่งที่มีไวยากรณ์ที่ไม่ถูกต้องแสดงเป็นสีแดง
  • ไวยากรณ์ที่ถูกต้องปรากฏเป็นสีน้ำเงิน
  • เติมคำแนะนำอัตโนมัติ
  • เสร็จสิ้นคำสั่งตามหน้า man บนเครื่องของคุณ

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

ดูตัวอย่างว่าปลาเกี่ยวกับอะไร ให้พิมพ์:

sudo apt install fish
fish

5. ซีเชลล์

Linux Shell ตัวไหนดีที่สุด? 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 คุณต้องคุ้นเคยกับพื้นฐานของเชลล์สคริปต์