Bash VS Zsh: Mga Pagkakaiba at Paghahambing

Bash Vs Zsh Differences



Bash Ang shell ay ang default na shell para sa Linux at inilabas ito sa kapalit ng Bourne Shell. Maraming mga awtomatikong gawain at solusyon sa programa ang maaaring magawa ng Bash madali Maraming iba pang mga shell na magagamit sa Linux para sa paggawa ng parehong uri ng mga gawa tulad Bash . Z shell o Zsh ay isa sa mga ito na naimbento pagkatapos Bash . Mayroon itong maraming mga tampok tulad ng Bash ngunit ang ilang mga tampok ng Zsh gawin itong mas mahusay at napabuti kaysa sa Bash, tulad ng pagwawasto ng spelling, pag-aautomat ng cd, mas mahusay na tema, at suporta sa plugin, atbp. Hindi kailangan ng mga gumagamit ng Linux na i-install ang Bash shell dahil naka-install ito bilang default sa pamamahagi ng Linux. Ang Zsh o Z shell ay hindi naka-install sa system bilang default. Kailangang mai-install ng mga gumagamit ang shell na ito upang magamit ito. Ang ilang mga tampok ay karaniwan para sa Bash at Zsh ngunit may ilang mga pangunahing pagkakaiba sa pagitan ng mga shell na kung saan ay inilarawan sa artikulong ito na may tamang paliwanag.

Gamit ‘ CD ’Utos

Ginagamit ang command na 'cd' sa parehong Bash at Zsh shell upang baguhin ang kasalukuyang direktoryo. Ang tampok na kung saan ang mga direktoryo ay recursively hinanap upang malaman ang mga file at folder ay tinatawag recursive path ng paglawak na sinusuportahan lamang ng zsh. Ang paggamit ng 'cd' na utos sa bash at zsh shell ay ipinakita dito.







Bash

Kailangan mong i-type ang buong landas ng direktoryo sa bash upang baguhin ang direktoryo at ang recursive path ng pagpapalawak ay hindi suportado ng bash.



$CD code/ sawa



Zsh

Ang direktoryo at file ay maaaring madaling hanapin sa shell na ito. Kung magtype ka cd + space + c + tab sa zsh shell, hahanapin nito ang anumang file o pangalan ng folder na nagsimula sa 'C ’At ipapakita nito ang pangalan ng file o folder na unang matatagpuan.





% CDc

Halimbawa, kung ang code ang folder ay matatagpuan at ito ay ipapakita. Kung nag-type ka ulit ‘/ P’ pagkatapos ay ipapakita nito ang mga file at ang pangalan ng folder ay nagsisimula sa ' p '.

% CDp



Pagwawasto sa Spelling

Ang spell checker ay isang kapaki-pakinabang na tampok para sa anumang shell. Madaling maitama ng mga gumagamit ang error sa pag-type sa pamamagitan ng tampok na ito. Ang tampok na ito ay suportado ng pareho Bash at Zsh. Ngunit ang pagwawasto sa pagbaybay ay maaaring gawin nang mas mahusay sa Zsh kabibi Ang paggamit ng tampok na ito ay ipinapakita para sa parehong mga shell sa ibaba.

Bash

Ipagpalagay, nais mong pumunta sa direktoryo na ‘ Musika ’Ngunit nag-type ka ng‘ Mugic ' nang hindi sinasadya, kung gayon ang bash shell ay hindi makakakita ng error sa pagbaybay bilang default at magpapakita ito ng isang mensahe ng error: Walang ganoong file o direktoryo .

$CDMugic

Kailangan mong paganahin ang spell checker upang itama ang ganitong uri ng problema. Buksan ~ / .bashrc file sa anumang editor para sa pagdaragdag ng linya upang paganahin ang spell checker. Narito, ang nano Ginamit ang editor upang mai-edit ang file.

$nano~/.bashrc

Idagdag ang sumusunod na linya sa dulo ng file, i-save at isara ang file.

mga tindahan -scdspell

Ngayon, Patakbuhin ang sumusunod na utos upang kumpirmahing permanente ang pagbabago.

$pinagmulan~/.bashrc

Kung pinatakbo mo ang nasa itaas ‘ CD ' utos na may error sa spelling mula sa terminal, pagkatapos ay awtomatiko nitong itatama ang pangalan ng folder.

$CDMugic

Zsh

Ang checker ng spelling ay hindi pinagana sa pamamagitan ng default sa zsh shell din. Kaya, kung patakbuhin mo ang utos na 'echo' tulad ng sumusunod na utos na may error sa pagbaybay pagkatapos ay ipapakita nito ang mensahe ng error.

%ehco'Hello World'

Buksan ~ / .zshrc file sa anumang editor at idagdag ang mga sumusunod na linya sa dulo ng file. Paganahin ng unang linya ang spell checker sa Zsh. Ang mga default na halaga ng pagpipilian ng spell checker ay, [nyae] na nagpapahiwatig hindi, oo, i-abort at i-edit . Babaguhin ng pangalawang linya ang mga default na halaga para gawing mas nauunawaan ang mga pagpipilian para sa gumagamit. Dito, nano Ginamit ang editor sa pag-edit ng file.

% nano~/.zshrc
setopt tama
i-export SPROMPT='Tama% R hanggang% r? [Oo, Hindi, Abort, I-edit] '

I-save at lumabas sa file at patakbuhin ang sumusunod na utos upang i-update ang pagbabago.

% pinagmulan~/.zshrc

Muli patakbuhin ang nakaraang utos at suriin ang output. Ngayon, makakakuha ang gumagamit ng mga pagpipilian upang maitama ang output. Kung nagta-type ka ng y pagkatapos ang awtomatikong maitatama ang baybay.

%ehco'Hello World'

Kung nais mong gawing mas epektibo ang output sa pamamagitan ng paggamit ng mga kulay pagkatapos ay patakbuhin ang sumusunod na utos mula sa zsh shell upang paganahin ang kulay.

%awtomatikong mga kulay ng U&&mga kulay

Pagkatapos nito, idagdag ang sumusunod na linya sa ~ / .zshrc file tulad ng dati.

i-export SPROMPT='Tama$ fg[pula]% R$ reset_colorsa$ fg[berde]% r$ reset_color?
[Oo, Hindi, Abort, I-edit] '

Ngayon, patakbuhin ang anumang utos na may error sa spelling at suriin ang output. Dito, ang salitang error ay ipapakita ng pulang kulay at ang tamang salita ay ipapakita ng berdeng kulay.

%ehco'Hello World'

Paggamit ng mga tema

Ang mga hitsura ng prompt ng shell ay maaaring mabago sa pamamagitan ng paggamit ng iba't ibang mga tema at mga plugin. Ang parehong mga bash at zsh shell ay may maraming mga uri ng tema para sa pagbabago ng hitsura ng shell. Paano magagamit ang tema sa bash at zsh shell ay ipinapakita sa susunod na bahagi ng artikulong ito.

Bash

Kailangan mong i-install ang git upang mai-install ang anumang bash na tema. Patakbuhin ang sumusunod na utos upang mai-install ang git package.

$sudo apt-get install punta ka na

Matapos mai-install ang punta ka na , patakbuhin ang sumusunod na utos upang gumawa ng isang clone ng Bash-it template.

$git clone --lalim=1https://github.com/Bash-it/bash-it.git ~/.bash_it

Patakbuhin ang sumusunod na utos upang mai-install Bash-it template pagkatapos i-clone ito. Pindutin ang ‘ at ’Kailan hihilingin nito na panatilihin ang backup ng ~ / .bash_profile o ~ / .bashrc at idagdag bash-it template sa dulo ng file.

Ang sumusunod na output ay lilitaw pagkatapos makumpleto ang proseso ng pag-install.

Ngayon, kung buksan mo ang ~ / .bashrc file sa pamamagitan ng paggamit ng anumang editor ang file ay maglalaman ng sumusunod na nilalaman. Ang 'bobby' ay itinakda bilang default na tema para sa template na bash-it.

Patakbuhin ang sumusunod na utos upang kumpirmahin ang pag-update ng shell.

$pinagmulan~/.bashrc

Ang sumusunod na prompt ay lilitaw sa terminal pagkatapos ma-install nang maayos ang template. Ngayon, isara ang terminal. Makikita mo ang parehong bash prompt tuwing binubuksan mo ang terminal.

Maraming mga tema ang magagamit para sa bash-it template ang mga display bash prompt sa iba't ibang mga paraan. Ang isa sa kanila ay ‘ inggit ’ tema Kung nais mong itakda ang temang ito pagkatapos buksan ang ~ / .bashrc file sa pamamagitan ng paggamit ng anumang editor at baguhin ang ' BASH_IT_THEME 'Halaga sa' inggit '.

Muli, patakbuhin ang ' pinagmulan ’Utos na kumpirmahing permanente ang pag-update. Lilitaw ang sumusunod na output pagkatapos itakda ang tema ng 'inggit'.

Zsh

Tulad ng bash, ang zsh shell ay may maraming mga tema. Isa sa mga zsh na tema ay oh-my-zsh . Patakbuhin ang sumusunod na utos upang mai-install ang temang ito para sa zsh shell.

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

Matapos mai-install ang tema, pindutin ang ‘ at ' upang gawin ang default na shell sa zsh.

Hihilingin nito ang root password upang makumpleto ang proseso ng pag-install. Ang sumusunod na output ay lilitaw pagkatapos makumpleto ang proseso ng pag-install.

Ngayon, kung buksan mo ang ~ / .zshrc file pagkatapos ay makikita mo ang mga entry para sa oh-my-zsh template. 'Robbyrussell' ay itinakda bilang default na tema para sa template.

Upang mapanatili ang pagbabago ng permanenteng, kailangan mong patakbuhin ang utos na 'mapagkukunan'.

% pinagmulan~/.zshrc

Kung nais mong baguhin ang tema sa ' palaso ’Pagkatapos buksan ang ~ / .zshrc file sa anumang editor at baguhin ang halaga ng‘ ZSH_THEME ’To ‘Arrow '.

Kailangan mong patakbuhin muli ang utos na 'mapagkukunan' upang permanenteng i-update ang pagbabago para sa zsh shell. Ang sumusunod na simbolo ng arrow ay lilitaw pagkatapos itakda ang temang ito.

% pinagmulan~/.zshrc

Kung isara mo ang terminal at muling buksan ang zsh shell pagkatapos ay lilitaw ang sumusunod na output.

Paggamit ng Pagpapalawak ng Wildcard

Maaaring magamit ang paglawak ng wildcard sa bash sa iba't ibang paraan nang walang anumang setting. Ngunit ang pagpapalawak ng wildcard ay hindi pinagana sa zsh shell bilang default. Paano magagamit ang paglawak ng wildcard sa bash at zsh ay ipinapakita sa bahaging ito ng artikulong ito.

Bash

Ipagpalagay, kailangan mong alamin ang lahat ng mga file na may extension na 'log' ng kasalukuyang lokasyon gamit ang 'echo' na utos. Dito, ang halaga, ‘ * .log ’ ay nakatalaga sa variable, mga file ginagamit iyon sa utos na 'echo' upang ipakita ang listahan ng lahat ng mga file ng log.

$ls
$mga file='* .log'
$itinapon $ mga file

Zsh

Kung patakbuhin mo ang mga utos sa itaas sa zsh shell pagkatapos ang halaga ng $ file ay i-print sa halip na ang listahan ng file ng log dahil ang pag-unlad ng wildcard ay hindi pinagana bilang default para sa zsh shell.

% ls
% file='* .log'
% itinapon $ mga file

Patakbuhin ang sumusunod na utos upang paganahin ang paglawak ng wildcard para sa zsh.

% itakda -o kayaGLOB_SUBST

Ngayon, kung patakbuhin mo ang nakaraang mga utos pagkatapos ay makikita ang listahan ng mga log file.

Konklusyon

Ang Bash at Zsh ay lubhang kapaki-pakinabang na mga shell para sa mga gumagamit ng Linux. Ang parehong mga shell ay may ilang mga kapaki-pakinabang na tampok. Maaaring piliin ng gumagamit ang shell batay sa kinakailangang gawain. Ang ilang mahahalagang pagkakaiba sa pagitan ng dalawang mga shell ay inilarawan sa artikulong ito gamit ang wastong mga halimbawa. Sana, ang mga pagkakaiba sa pagitan ng dalawang mga shell ay malilinaw para sa mga mambabasa pagkatapos basahin ang artikulong ito