Bash VS Zsh: ความแตกต่างและการเปรียบเทียบ

Bash Vs Zsh Differences



ทุบตี เชลล์เป็นเชลล์เริ่มต้นสำหรับ Linux และเปิดตัวแทนที่ Bourne Shell งานอัตโนมัติและโซลูชันการเขียนโปรแกรมจำนวนมากสามารถทำได้โดย ทุบตี อย่างง่ายดาย. มีเชลล์อื่น ๆ มากมายใน Linux สำหรับการทำงานประเภทเดียวกันเช่น ทุบตี . ซีเชลล์ หรือ Zsh เป็นหนึ่งในนั้นที่คิดค้นขึ้นหลังจาก ทุบตี . มันมีคุณสมบัติมากมายเช่น Bash แต่คุณสมบัติบางอย่างของ Zsh ทำให้ดีขึ้นและปรับปรุงได้ดีกว่า Bash เช่น การแก้ไขการสะกด การทำงานอัตโนมัติของซีดี ธีมที่ดีขึ้น และการสนับสนุนปลั๊กอิน ฯลฯ ผู้ใช้ Linux ไม่จำเป็นต้องติดตั้ง Bash shell เพราะมันถูกติดตั้งโดยค่าเริ่มต้นพร้อมการกระจาย Linux ไม่ได้ติดตั้ง Zsh หรือ Z shell ในระบบโดยค่าเริ่มต้น ผู้ใช้จำเป็นต้องติดตั้งเชลล์นี้เพื่อใช้งาน คุณลักษณะบางอย่างเป็นเรื่องปกติสำหรับ ทุบตี และ Zsh แต่มีความแตกต่างที่สำคัญระหว่างเชลล์เหล่านี้ซึ่งอธิบายไว้ในบทความนี้พร้อมคำอธิบายที่เหมาะสม

โดยใช้ ' ซีดี ' สั่งการ

คำสั่ง 'cd' ใช้ในทั้ง Bash และ Zsh shell เพื่อเปลี่ยนไดเร็กทอรีปัจจุบัน คุณลักษณะที่ไดเรกทอรีถูกค้นหาซ้ำ ๆ เพื่อค้นหาไฟล์และโฟลเดอร์เรียกว่า การขยายเส้นทางแบบเรียกซ้ำ ซึ่งรองรับโดย zsh เท่านั้น การใช้คำสั่ง 'cd' ใน bash และ zsh shell จะแสดงที่นี่







ทุบตี

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



$ซีดี รหัส/python



Zsh

สามารถค้นหาไดเร็กทอรีและไฟล์ได้อย่างง่ายดายในเชลล์นี้ หากคุณพิมพ์ cd + space + c + tab ใน zsh shell จากนั้นจะค้นหาชื่อไฟล์หรือโฟลเดอร์ที่ขึ้นต้นด้วย 'ค ’ และจะแสดงชื่อไฟล์หรือโฟลเดอร์ที่พบก่อน





% ซีดี

ตัวอย่างเช่น if รหัส พบโฟลเดอร์และจะแสดง หากคุณพิมพ์อีกครั้ง '/NS' จากนั้นจะแสดงไฟล์และชื่อโฟลเดอร์ที่ขึ้นต้นด้วย ' NS '.

% ซีดีNS



แก้ไขตัวสะกด

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

ทุบตี

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

$ซีดีMugic

คุณต้องเปิดใช้งานเครื่องตรวจตัวสะกดเพื่อแก้ไขปัญหาประเภทนี้ เปิด ~/.bashrc ไฟล์ในโปรแกรมแก้ไขใด ๆ เพื่อเพิ่มบรรทัดเพื่อเปิดใช้งานการตรวจตัวสะกด ที่นี่ นาโน ตัวแก้ไขใช้สำหรับแก้ไขไฟล์

$นาโน~/.bashrc

เพิ่มบรรทัดต่อไปนี้ที่ท้ายไฟล์ บันทึกและปิดไฟล์

ร้านค้า -NScdspell

ตอนนี้ เรียกใช้คำสั่งต่อไปนี้เพื่อยืนยันการเปลี่ยนแปลงอย่างถาวร

$แหล่งที่มา~/.bashrc

หากคุณเรียกใช้ด้านบน ' ซีดี' คำสั่งที่มีการสะกดผิดจากเทอร์มินัลจากนั้นจะแก้ไขชื่อโฟลเดอร์โดยอัตโนมัติ

$ซีดีMugic

Zsh

ตัวตรวจสอบการสะกดไม่ได้เปิดใช้งานโดยค่าเริ่มต้นใน zsh shell ด้วย ดังนั้น หากคุณเรียกใช้คำสั่ง 'echo' เช่นคำสั่งต่อไปนี้ที่มีข้อผิดพลาดในการสะกดคำ จะแสดงข้อความแสดงข้อผิดพลาด

%ehco'สวัสดีชาวโลก'

เปิด ~/.zshrc ในตัวแก้ไขใด ๆ และเพิ่มบรรทัดต่อไปนี้ที่ส่วนท้ายของไฟล์ บรรทัดแรกจะเปิดใช้งานตัวตรวจสอบการสะกดใน Zsh ค่าตัวเลือกเริ่มต้นของตัวตรวจการสะกดคือ [เนีย] ที่บ่งบอกว่า ไม่ ใช่ ยกเลิกและแก้ไข . บรรทัดที่สองจะเปลี่ยนค่าเริ่มต้นเพื่อทำให้ตัวเลือกเข้าใจผู้ใช้มากขึ้น ที่นี่, นาโน editor ใช้สำหรับแก้ไขไฟล์

% นาโน~/.zshrc
ตั้งค่าถูกต้อง
ส่งออก SPROMPT='ถูกต้อง %R ถึง %r? [ใช่ ไม่ ยกเลิก แก้ไข] '

บันทึกและออกจากไฟล์และเรียกใช้คำสั่งต่อไปนี้เพื่ออัปเดตการเปลี่ยนแปลง

% แหล่งที่มา~/.zshrc

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

%ehco'สวัสดีชาวโลก'

หากคุณต้องการให้ผลลัพธ์มีประสิทธิภาพมากขึ้นโดยใช้สี ให้รันคำสั่งต่อไปนี้จาก zsh shell เพื่อเปิดใช้งานสี

%ออโต้โหลด U สี&&สี

หลังจากนั้นให้เพิ่มบรรทัดต่อไปนี้ใน ~/.zshrc ไฟล์เหมือนเมื่อก่อน

ส่งออก SPROMPT='ถูกต้อง$fg[สีแดง]%R$reset_colorถึง$fg[สีเขียว]%r$reset_color?
[ใช่ ไม่ ยกเลิก แก้ไข] '

ตอนนี้ รันคำสั่งใดๆ ที่มีข้อผิดพลาดในการสะกดคำ และตรวจสอบผลลัพธ์ ในที่นี้ คำแสดงข้อผิดพลาดจะแสดงเป็นสีแดง และคำที่ถูกต้องจะแสดงเป็นสีเขียว

%ehco'สวัสดีชาวโลก'

การใช้ธีม

รูปลักษณ์ของพรอมต์ของเชลล์สามารถเปลี่ยนแปลงได้โดยใช้ธีมและปลั๊กอินที่แตกต่างกัน ทั้ง bash และ zsh shells มีธีมหลายประเภทสำหรับเปลี่ยนรูปลักษณ์ของเชลล์ วิธีการใช้ชุดรูปแบบใน bash และ zsh shell จะแสดงในส่วนถัดไปของบทความนี้

ทุบตี

คุณต้องติดตั้ง git เพื่อติดตั้งธีมทุบตี รันคำสั่งต่อไปนี้เพื่อติดตั้งแพ็คเกจ git

$sudo apt-get install ไป

หลังจากติดตั้ง ไป ให้รันคำสั่งต่อไปนี้เพื่อสร้างโคลนของ ทุบตี แม่แบบ

$git โคลน --ความลึก=1https://github.com/ทุบตี/bash-it.git ~/.bash_it

เรียกใช้คำสั่งต่อไปนี้เพื่อติดตั้ง ทุบตี แม่แบบหลังจากโคลนมัน กด ' และ ’ เมื่อมันจะขอสำรองข้อมูลของ ~/.bash_profile หรือ ~/.bashrc และผนวก ทุบตีมัน แม่แบบที่ส่วนท้ายของไฟล์

ผลลัพธ์ต่อไปนี้จะปรากฏขึ้นหลังจากเสร็จสิ้นกระบวนการติดตั้ง

ตอนนี้ถ้าคุณเปิด ~/.bashrc ไฟล์โดยใช้โปรแกรมแก้ไขใด ๆ ไฟล์จะมีเนื้อหาดังต่อไปนี้ 'bobby' ถูกตั้งค่าเป็นธีมเริ่มต้นสำหรับเทมเพลต bash-it

รันคำสั่งต่อไปนี้เพื่อยืนยันการอัพเดตของเชลล์

$แหล่งที่มา~/.bashrc

ข้อความแจ้งต่อไปนี้จะปรากฏในเทอร์มินัลหลังจากติดตั้งเทมเพลตอย่างถูกต้อง ตอนนี้ปิดเทอร์มินัล คุณจะเห็นพรอมต์ bash เดียวกันทุกครั้งที่คุณเปิดเทอร์มินัล

มีธีมมากมายสำหรับ ทุบตีมัน เทมเพลต bash prompt ที่แสดงในรูปแบบต่างๆ หนึ่งในนั้นคือ ' อิจฉา' ธีม. หากคุณต้องการตั้งค่าธีมนี้ ให้เปิดไฟล์ ~/.bashrc โดยใช้ตัวแก้ไขใดๆ และเปลี่ยน ' BASH_IT_THEME ' ค่าเป็น ' อิจฉา '.

อีกครั้งเรียกใช้ ' แหล่งที่มา ’ คำสั่งเพื่อยืนยันการอัพเดทอย่างถาวร ผลลัพธ์ต่อไปนี้จะปรากฏขึ้นหลังจากตั้งค่าธีม 'อิจฉา'

Zsh

เช่นเดียวกับ bash zsh shell มีหลายธีม หนึ่งในธีม zsh คือ oh-my-zsh . รันคำสั่งต่อไปนี้เพื่อติดตั้งธีมนี้สำหรับ zsh shell

% NS -ค '$(curl -fsSL
https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh) '

หลังจากติดตั้งธีมแล้วให้กด ' และ' เพื่อทำให้เชลล์เริ่มต้นเป็น zsh

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

ตอนนี้ หากคุณเปิดไฟล์ ~/.zshrc คุณจะเห็นรายการสำหรับ oh-my-zsh แม่แบบ 'ร็อบบี้รัสเซล' ถูกตั้งค่าเป็นธีมเริ่มต้นสำหรับเทมเพลต

หากต้องการคงการเปลี่ยนแปลงไว้อย่างถาวร คุณต้องเรียกใช้คำสั่ง 'source'

% แหล่งที่มา~/.zshrc

หากคุณต้องการเปลี่ยนธีมเป็น ' ลูกศร ' จากนั้นเปิดไฟล์ ~/.zshrc ในตัวแก้ไขใด ๆ และเปลี่ยนค่าของ ' ZSH_THEME ' ถึง 'ลูกศร '.

คุณต้องเรียกใช้คำสั่ง 'source' อีกครั้งเพื่ออัปเดตการเปลี่ยนแปลงอย่างถาวรสำหรับ zsh shell สัญลักษณ์ลูกศรต่อไปนี้จะปรากฏขึ้นหลังจากตั้งค่าชุดรูปแบบนี้

% แหล่งที่มา~/.zshrc

หากคุณปิดเทอร์มินัลแล้วเปิดเปลือก zsh อีกครั้ง ผลลัพธ์ต่อไปนี้จะปรากฏขึ้น

การใช้การขยายไวด์การ์ด

การขยายไวด์การ์ดสามารถใช้ในการทุบตีในรูปแบบต่างๆ โดยไม่ต้องตั้งค่าใดๆ แต่การขยายสัญลักษณ์แทนไม่ได้เปิดใช้งานใน zsh shell โดยค่าเริ่มต้น วิธีการใช้การขยายสัญลักษณ์ตัวแทนใน bash และ zsh จะแสดงในส่วนนี้ของบทความนี้

ทุบตี

สมมติว่า คุณต้องค้นหาไฟล์ทั้งหมดที่มีนามสกุล 'บันทึก' ของตำแหน่งปัจจุบันโดยใช้คำสั่ง 'echo' ที่นี่ค่า ' *.บันทึก' ถูกกำหนดให้กับตัวแปร ไฟล์ ที่ใช้ในคำสั่ง 'echo' เพื่อแสดงรายการไฟล์บันทึกทั้งหมด

$ลส
$ไฟล์='*.บันทึก'
$โยนออก $ไฟล์

Zsh

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

% ลส
% ไฟล์='*.บันทึก'
% โยนออก $ไฟล์

รันคำสั่งต่อไปนี้เพื่อเปิดใช้งานการขยายไวด์การ์ดสำหรับ zsh

% ชุด -หรือGLOB_SUBST

ตอนนี้ ถ้าคุณเรียกใช้คำสั่งก่อนหน้านี้ รายการของล็อกไฟล์จะแสดงขึ้น

บทสรุป

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