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

การเลือก Linux Shell ที่เหมาะสม:Bash, Zsh และ Fish – อธิบายคุณสมบัติและคุณประโยชน์

การเลือก Linux Shell ที่เหมาะสม:Bash, Zsh และ Fish – อธิบายคุณสมบัติและคุณประโยชน์

เมื่อคุณเปิดเทอร์มินัลขึ้นมา อาจเป็นไปได้ว่าเทอร์มินัลจะใช้ Bash เป็นสภาพแวดล้อมเชลล์ UNIX แต่มีสภาพแวดล้อมแบบ "เชลล์" อื่นๆ อยู่

มีสภาพแวดล้อมอื่นๆ เช่น C Shell, Korn Shell, Z Shell และแม้แต่ Fish Shell สภาพแวดล้อมเชลล์ที่แตกต่างกันทั้งหมดเหล่านี้มีข้อดีและข้อเสียในตัวเอง และคุณควรพิจารณาสิ่งเหล่านี้ก่อนที่จะเลือกใช้บนระบบของคุณเอง

ในบทความนี้ ฉันจะพูดถึงเชลล์ยอดนิยมบางส่วนพร้อมกับคุณสมบัติหลักเพื่อช่วยคุณเลือกเชลล์หนึ่งตัว

เปลือกทุบตี

Bash Shell (หรือ Bourne Again Shell) เป็นเชลล์ UNIX และภาษาคำสั่ง เขียนโดย Brain Fox สำหรับโครงการ GNU เพื่อเป็นซอฟต์แวร์ทดแทนฟรีสำหรับ Bourne Shell (sh)

Bash เปิดตัวครั้งแรกในปี 1989 และสำหรับ Linux ส่วนใหญ่จะใช้เป็นสภาพแวดล้อมเชลล์เริ่มต้น distros อื่นๆ เช่น Kali Linux จะใช้ Z Shell เป็นเชลล์เริ่มต้น

Bash เป็นหนึ่งในโปรแกรมแรกๆ ที่ Linus Torvalds (ผู้สร้าง Linux) ย้ายไปยัง Linux

การเลือก Linux Shell ที่เหมาะสม:Bash, Zsh และ Fish – อธิบายคุณสมบัติและคุณประโยชน์ แหล่งที่มาของภาพ

สิ่งที่คุณไม่ควรสับสนก็คือ Bash ก็เป็นภาษาโปรแกรมเช่นกัน ดังนั้นจึงเป็น "Shell" แต่คุณสามารถตั้งโปรแกรมพฤติกรรมใน Bash ได้เช่นกัน ตัวอย่างเช่น:

#!/bin/bash
echo "Hello World"

ประเด็นสำคัญเกี่ยวกับ Bash

  • ผู้ใช้ส่วนใหญ่ใช้ Bash เนื่องจากเป็นสภาพแวดล้อมเชลล์เริ่มต้นในระบบส่วนใหญ่
  • Bash ไม่มีนิพจน์ตัวแทนแบบอินไลน์ นิพจน์ไวด์การ์ดคือเมื่อคุณต้องการค้นหารูปแบบใน Shell ของคุณ ซึ่งคล้ายกับ Regex ไวด์การ์ดหลักสามตัวคือ 03 , 15 และ 21 .
  • คุณไม่สามารถเปลี่ยนชื่อไดเรกทอรีได้โดยอัตโนมัติ
  • 31 ถือเป็นความคิดเห็นในการเขียนสคริปต์
  • มี 49 การตั้งค่า
  • Prompt มีเครื่องหมายแบ็กสแลช Escape
  • การตั้งค่าการกำหนดค่าผู้ใช้อยู่ใน 56

เดอะ ซี เชลล์

Z Shell หรือ Zsh ก็เป็นเชลล์ UNIX ที่คล้ายกับ Bash มาก คุณยังสามารถเขียนสคริปต์และใช้เชลล์เป็นตัวแปลคำสั่งได้

Zsh เป็นส่วนขยายของเชลล์เป้าหมายที่มีการปรับปรุงมากมาย Zsh เปิดตัวในปี 1990 โดย Paul Falstad และมีคุณสมบัติบางอย่างที่ Bash, Korn Shell และ C Shell แบ่งปัน

macOS ตามค่าเริ่มต้นจะใช้ Zsh Shell

การเลือก Linux Shell ที่เหมาะสม:Bash, Zsh และ Fish – อธิบายคุณสมบัติและคุณประโยชน์ แหล่งที่มาของภาพ

ประเด็นสำคัญเกี่ยวกับ Zsh

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

การเลือก Linux Shell ที่เหมาะสม:Bash, Zsh และ Fish – อธิบายคุณสมบัติและคุณประโยชน์

  • รองรับนิพจน์ไวด์การ์ดแบบอินไลน์
  • กำหนดค่าได้มากกว่า Bash
  • รองรับปลั๊กอินและธีม นี่คือรายการปลั๊กอินสำหรับ Zsh

นอกจากนี้ยังมีเฟรมเวิร์กที่สร้างขึ้นรอบ ๆ Z Shell หนึ่งในสิ่งที่ได้รับความนิยมมากที่สุดคือ Oh My Zsh ซึ่งเป็นเฟรมเวิร์กโอเพ่นซอร์สที่ขับเคลื่อนโดยชุมชนสำหรับจัดการการกำหนดค่า Zsh (ฉันใช้ Oh My Zsh 😄)

การเลือก Linux Shell ที่เหมาะสม:Bash, Zsh และ Fish – อธิบายคุณสมบัติและคุณประโยชน์ แหล่งที่มาของภาพ

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

เปลือกปลา

Fish เป็นสภาพแวดล้อมเชลล์ UNIX ที่เน้นการโต้ตอบและการใช้งาน ต่างจาก Zsh ตรงที่ Fish ตั้งเป้าที่จะให้การโต้ตอบกับผู้ใช้เป็นค่าเริ่มต้น แทนที่จะเชื่อใจผู้ใช้ให้นำการกำหนดค่าของตนเองไปใช้

มันถูกสร้างขึ้นโดย Axel Liljencrantz ในปี 2548 ปลาถือเป็น "เปลือกหอยที่แปลกใหม่" เนื่องจากมันไม่เป็นไปตามมาตรฐานเปลือกหอย POSIX [[ที่มา](https://en.wikipedia.org/wiki/Fish_(Unix_shell)]

การเลือก Linux Shell ที่เหมาะสม:Bash, Zsh และ Fish – อธิบายคุณสมบัติและคุณประโยชน์ แหล่งที่มาของภาพ

ประเด็นสำคัญเกี่ยวกับปลา

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

การเลือก Linux Shell ที่เหมาะสม:Bash, Zsh และ Fish – อธิบายคุณสมบัติและคุณประโยชน์ แหล่งที่มาของภาพ

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

หากคุณเพียงสร้างสคริปต์โดยใช้คำสั่งพื้นฐาน เช่น 88 , 91 , 107 , 111 และอื่นๆ คุณจะไม่สังเกตเห็นความแตกต่างใดๆ ในภาษาสคริปต์ของ Fish และ Bash

ความแตกต่างที่ใหญ่ที่สุดประการหนึ่งคือเมื่อคุณพยายามจับเอาต์พุตจากคำสั่ง ใน Bash คุณอาจคุ้นเคยกับสิ่งนี้:

todays_date=$(date)
echo "Todays date is $todays_date"

การเลือก Linux Shell ที่เหมาะสม:Bash, Zsh และ Fish – อธิบายคุณสมบัติและคุณประโยชน์

Todays Date is Tue Dec 13 15:29:28 CST 2022

ในขณะที่ Fish การจับเอาต์พุตจะทำงานแตกต่างออกไป สิ่งที่เทียบเท่ากับ Fish ในการเขียนสคริปต์จะมีลักษณะดังนี้:

set date (date)
echo "Todays Date $date"

การเลือก Linux Shell ที่เหมาะสม:Bash, Zsh และ Fish – อธิบายคุณสมบัติและคุณประโยชน์

todays date is Tue Dec 13 21:35:03 UTC 2022

บทสรุป

Bash, Z Shell และ Fish Shell ต่างก็มีข้อดีและมีความคล้ายคลึงกัน คุณสามารถใช้แต่ละอย่างได้อย่างมีประสิทธิภาพในสภาพแวดล้อมการทำงานของคุณตอนนี้เมื่อคุณรู้จักพวกเขามากขึ้นแล้ว

หากคุณต้องการสิ่งที่กำหนดค่าได้มากขึ้น คุณสามารถใช้ Zsh (หรือแม้แต่ติดตั้ง Oh My Zsh) หากคุณต้องการประสบการณ์เทอร์มินัลแบบโต้ตอบมากขึ้นโดยไม่ต้องมีการกำหนดค่ามากนัก คุณสามารถใช้ Fish Shell ได้ หากคุณต้องการความรู้สึกคลาสสิก คุณสามารถเก็บ Bash ไว้ได้

ทั้งหมดนี้ขึ้นอยู่กับความชอบของคุณในฐานะนักพัฒนา ดังนั้นเพียงแค่เลือกเชลล์ที่เหมาะกับคุณที่สุด

หวังว่านี่จะช่วยคุณได้! ขอบคุณสำหรับการอ่าน 🐚🐚🐚

เรียนรู้การเขียนโค้ดฟรี หลักสูตรโอเพ่นซอร์สของ freeCodeCamp ช่วยให้ผู้คนมากกว่า 40,000 คนได้งานในตำแหน่งนักพัฒนา เริ่มต้น