Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ระบบ >> Linux

Linux Shell ไหนดีที่สุด? เปรียบเทียบ 5 Shells ยอดนิยม

พอใจกับ Bash Shell บน Linux? หรืออยากลอง Alternative? มี tsch, fish, KornShell, Z Shell ให้เลือก แต่ Shell ไหน Best?

Linux Shell คืออะไร?

เขียน Application ภาษา High-level ที่มนุษย์เข้าใจ: C#, Java, C++ แต่ Computer มองเป็น 1s/0s (Binary/Machine Code)

Compiler แปลง High-level Language -> Binary File (Executable) รันไฟล์นี้เพื่อ Launch App

มุมมอง High-level: Computer ต้องการ Translation Layer ระหว่างคำสั่งของคุณและการเข้าใจของมัน

Shell = Interpreter คล้าย Compiler แปลง Human Code -> Machine Code แตกต่าง: Interpreter ทำทีละ Statement Compiler Scan ทั้งโปรแกรม แปลงทั้งหมด

Shell = Interface ให้คุณ Interact กับ OS พิมพ์คำสั่ง Shell Interpret ทำให้ Magic เกิดขึ้น Operations: Copy Files, Piping, List Files ทั้งหมดอยู่ใน Shell's Remit

Linux Shells หลายตัว พิมพ์ใน Terminal ดู Shells ทั้งหมดในระบบ:

cat /etc/shells

ดู Shell ปัจจุบัน:

echo $0
Linux Shell ไหนดีที่สุด? เปรียบเทียบ 5 Shells ยอดนิยม

แต่คุณใช้ Best Linux Shell ไหม? มาดูตัวเลือก

1. Bash (Bourne-Again Shell)

Popular มากที่สุดใน Linux Users ไม่คิด Shells ได้โดยไม่มี Bash หลาย Distros Ship Bash Default เพราะ Bash = Default GNU Shell Released 1989 พัฒนามา दशক

Predecessor: Bourne Shell (sh) Original Unix Shells หนึ่ง Feature ดึงดูด sh Programmers: Port Scripts ไป Bash ได้โดยไม่เปลี่ยน Bash เพิ่ม Enhancements:

  • Command Completion
  • Command History

Online Docs มัก Assume ใช้ Bash แต่ไม่ได้ Perfect — ใครเขียน Bash Script รู้! ไม่ได้ทำไม่ได้ แต่ไม่อย่าง Elegante อ่าน/เขียน

2. KornShell (ksh)

Linux Shell ไหนดีที่สุด? เปรียบเทียบ 5 Shells ยอดนิยม

Alternative ยอดนิยม จาก Bell Labs 1980s ความแตกต่างกับ Bash น้อย แต่แต่ละตัวมี Minor Advantages ksh มี cd old new Command: อยู่ /Downloads/foo/bar/one/foobar อยากไป /Downloads/foo/bar/two/foobar พิมพ์ cd one two

Ksh Veterans โปรโมท Superiority ด้วย Scripting Benefits:

  • Better Loop Syntax
  • Natural Ways to Repeat Commands
  • Associative Arrays

ต่างจาก Bash: หา Help ksh ออนไลน์ยาก ลอง ksh:

sudo apt install ksh
ksh

3. Tcsh

Linux Shell ไหนดีที่สุด? เปรียบเทียบ 5 Shells ยอดนิยม

Tcsh รากผิดไป Unix ต้นๆ Improved Version ของ C Shell (csh) Features:

  • Programmable Command-line Completion
  • Command-line Editing
  • Adding Arguments to Aliases
  • Easy Command History Access

รัน Command ใดๆ: พิมพ์ !n แทน n ด้วย Number ใน History History Tab Completion: !a -> Expand ไป Command ล่าสุดเริ่มต้น "a" เปรียบเทียบ Bash: !a:p ดู Command แล้ว !! รัน

ลอง tcsh:

sudo apt install tcsh
tcsh

Tcsh = Default Shell BSD-based (FreeBSD) Selling Point: Scripting Language เหมาะ Programming C -> Prototyping C Programs 小さくโดยไม่สับสน Brackets (ปัญหาเมื่อ Switch ระหว่าง C และ Shell Scripting)

4. Fish (Friendly Interactive Shell)

Linux Shell ไหนดีที่สุด? เปรียบเทียบ 5 Shells ยอดนิยม

ในความจริงจังของ Linux ทีม Fish ใส่ Humor: Website Title "Finally, a command line shell for the 90s" (Fish พัฒนา 2005) นอกจาก "Glorious VGA Color" มี Enhancements:

  • Commands Invalid Syntax = แดง
  • Correct Syntax = น้ำเงิน
  • Auto-complete Suggestions
  • Command Completion Based on Man Pages บนเครื่อง

Feature นี้เพิ่ม Syntax จาก Man Page ของ Software ใหม่เข้า Auto-complete อยากคล่อง CLI -> Fish เริ่มต้นดี

ลอง Fish:

sudo apt install fish
fish

5. Z Shell (Zsh)

Linux Shell ไหนดีที่สุด? เปรียบเทียบ 5 Shells ยอดนิยม

หลายคนคิดว่าที่ดีที่สุดไว้ท้าย เข้าใจได้ Zsh คล้าย Bash/Ksh รวม Features จากทั้งคู่ + tcsh Features:

  • Navigable Autocompletion List
  • Superior Spelling Correction
  • Command Line Completion
  • History Shared Across Terminals
  • Globbing (Wildcard Characters สำหรับ Filenames)

Globbing ใน Zsh ใช้งานได้จริง พิมพ์: vim /u/l/b/a -> เปิดไฟล์: /usr/local/bin/autoupdate.sh

Zsh Config ใช้เวลาตอนแรกหากไม่ใช้ Default Config ลอง:

sudo apt install zsh
zsh

Linux Shell ไหนดีสำหรับคุณ?

ตัวเลือกเหล่านี้มีอยู่ = Brilliant แต่ละตัว = Glimpse Computing History ที่ Programmers ตัดสินใจทำ Dinge ของพวกเขา

ความแตกต่างสำคัญอยู่ที่ Scripting Syntax แต่ละ Shell มี Nuances แยกตัวตน Bash Dominate Market Share -> หา Help ง่ายที่สุด Bash = Best All-rounder ตอบสนองทุกคนยกเว้น Advanced Users มาก

เลือก Shell แล้ว -> เรียนรู้ Basics ของ Shell Scripting