Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม Bash

Zsh vs Bash: Shell ไหนเหนือกว่า?

Bash และ Zsh เป็น Linux shells ยอดนิยม 2 ตัว คู่มือนี้สำรวจข้อดีข้อเสียเพื่อช่วยตัดสินใจว่าควรใช้ตัวไหน

Shell คืออะไร?

Shell คือ command-line user interface ที่คุณใช้โต้ตอบกับคอมพิวเตอร์

มันให้ text input และ output ที่ทำให้คุณสั่งงานและรับข้อมูลจากระบบคอมพิวเตอร์ได้

Shell ยังครอบคลุม utilities อื่นๆ เช่น scripting สำหรับ automation และเครื่องมือความสะดวกอย่าง autocomplete ทำให้การนำทาง filesystem เร็วขึ้น

Bash และ Zsh ทั้งคู่คือ Shells พวกมันเรียกว่า ‘shells’ เพราะมันอยู่นอก core ของระบบปฏิบัติการ คือ kernel.

BASH คืออะไร?

Bash (ย่อมาจาก “Bourne Again SHell“) เปิดตัวเมื่อช่วงปลายทศวรรษ 1980s แทน Bourne Shell ที่เปิดตัวทศวรรษ 1970s

Bourne shell เองถูกสร้างขึ้นเพื่อแทน Thompson shell ซึ่งเป็น Unix shell ตัวแรก ที่เก่ากว่า 1971

Bash มุ่งให้ shell ที่ฟรีสมบูรณ์ และเข้ากันได้กับ shell scripts ที่มีอยู่ ได้รับความนิยมอย่างรวดเร็วเป็น default shell บน Linux operating systems และต่อมาบน Apple OS X series

ฟีเจอร์เด่นของ Bash:

  • Command-line completion (กด tab เพื่อ auto-fill file paths แทนการพิมพ์)
  • คำนวณได้โดยไม่พึ่ง external software
  • Redirect output ของคำสั่งได้ง่าย
  • ใช้ regular expressions ในคำสั่ง
  • รัน scripts ตอน startup เพื่อปรับแต่ง environment

ZSH คืออะไร?

Zsh (“Z Shell”) เป็น extended version ของ Bourne shell พร้อมการปรับปรุงและฟีเจอร์มาจาก Bash shell

Zsh รองรับ plugins และ themes และฟีเจอร์ขยายส่วนใหญ่ถือว่าเป็นการปรับปรุงใหญ่จาก Bash

ตัวชี้วัดที่ใหญ่ที่สุดของความนิยม Zsh ที่เพิ่มขึ้น – Apple ทำให้มันเป็น default ใน MacOS Operating System การตัดสินใจที่น่าจะไม่ได้ทำแบบสุ่ม

การปรับปรุงเด่นจาก Bash ใน Zsh:

  • Plugins และ themes!
    • คุณปรับแต่ง Zsh จริงๆ ด้วย overlays, color schemes – ตัดเย็บ shell ให้ให้ข้อมูลที่คุณต้องการมากที่สุด
    • oh my zsh! เป็น plugin framework สำหรับ Zsh ที่ทำงานกับ plugins จำนวนมากสำหรับทุกอย่างเกือบหมด
  • คำสั่งนำทาง filesystem ที่ดีขึ้น – พิมพ์แค่ชื่อไดเรกทอรี หรือตัวอักษรแรกของแต่ละไดเรกทอรีใน path ยาว Zsh จะ auto-fill ด้วย best guess
    • มันจะพาคุณไป directory ใกล้เคียงที่สุดหากคุณพิมพ์ path ผิด – มันค่อนข้าง forgiving
  • รองรับ floating-point numbers!
  • คำสั่ง zmv ทำให้จัดการไฟล์จำนวนมากง่ายขึ้น
  • File specification โดยไม่ต้องพึ่ง external software
  • Named directories – ตั้ง shortcuts เช่น ~webdir แทนที่จะต้องพิมพ์ path ยาวหรือสร้าง soft links

ZSH vs. BASH

สคริปต์เป็นอย่างไร?

เนื่องจากความนิยมมากและนานของ Bash shell scripts บ่อยครั้งถูกเรียกทั่วไปว่า Bash Scripts

ในขณะที่ scripts ที่เขียนสำหรับ shell หนึ่งไม่รับประกันว่าจะรันบนอีกตัว – ขอขอบคุณที่ Zsh ควรจะรัน Bash scripts ที่มีอยู่ส่วนใหญ่โดยไม่ต้องแก้ไขมาก – แต่อาจจะต้องอัปเดตเพื่อใช้ฟีเจอร์ที่ดีกว่าใน Zsh

หากคุณจะใช้ Bash scripts ต่อไป ตรวจสอบว่าคุณใส่:

#!/bin/bash

…บรรทัดแรกของสคริปต์ที่เขียนสำหรับ Bash – เพื่อให้ระบบรู้ว่า execute ด้วย Bash แม้ shell ที่คุณใช้โต้ตอบจะเป็น Zsh เป็น default

ควรใช้ตัวไหน?

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

สำหรับ Linux tips เพิ่มเติม คลิกลิงก์นี้!