Theory
એક કામ, અનેક programs
તમને હવે ખબર છે કે shell એ એ સ્તર છે જેમાં તમે commands લખો છો. અહીં એવું કંઈક છે જે ઘણા શરૂઆત કરનારાઓને આશ્ચર્ય પમાડે છે: shell એ કોઈ એક નિશ્ચિત વસ્તુ નથી. એ ફક્ત એક program છે, અને Linux તમને પસંદ કરવા માટે અનેક જુદાં shell નાં programs આપે છે.
તમે જેમના વિશે સૌથી વધુ સાંભળશો એ ત્રણ છે Bash, Zsh, અને Dash. એ બધાં એ જ મુખ્ય કામ કરે છે, એટલે કે તમારા commands વાંચીને એમને ચલાવે છે, અને ઘણું બધું સ્વરૂપ પણ વહેંચે છે, પણ એમનાં લક્ષણો અને હેતુ જુદા છે. આ પાઠ એમને સરખાવે છે જેથી તમને ખબર પડે કે તમે શું વાપરો છો, અને આ અભ્યાસક્રમ Bash કેમ વાપરે છે.
Theory
Shell શું છે, ફરી એક વાર
Shell એ command નું અર્થઘટન કરનારું છે: એ prompt દેખાડે છે, તમે લખેલો command વાંચે છે, અને એને ચલાવવાની ગોઠવણ કરે છે. એ સામાન્ય program હોવાથી, તંત્ર એક કરતાં વધુ આપી શકે છે, અને તમે એમની વચ્ચે બદલી પણ શકો છો.
અહીંનાં બધાં shells એક જ કુટુંબનાં છે (મૂળ Bourne shell માંથી ઊતરેલાં), એટલે એમનું પાયાનું સ્વરૂપ, commands ચલાવવાનું, pipes વાપરવાનું, સાદી scripts લખવાનું, મોટા ભાગે વહેંચાયેલું છે. જે જુદું છે એ છે દરેક જે વધારાનાં લક્ષણો ઉમેરે છે અને દરેકનો સૌથી સારો ઉપયોગ. તમે કયા shell માં છો એ SHELL ના variable કે prompt જોઈને તપાસી શકો છો.
At a glance
| Shell | પૂરું નામ | સ્વભાવ અને લાક્ષણિક ઉપયોગ |
|---|---|---|
| Bash | Bourne Again SHell | સામાન્ય મૂળભૂત; લક્ષણોથી ભરપૂર; વાપરવા અને scripts માટેનું ધોરણ (આ અભ્યાસક્રમ) |
| Zsh | Z Shell | Bash જેવું પણ વધુ સમૃદ્ધ વાપરવાનાં લક્ષણો સાથે: વધુ સારું completion, themes, plugins |
| Dash | Debian Almquist SHell | નાનું, ઝડપી, લઘુતમ; ફક્ત POSIX; તંત્રની scripts ઝડપથી ચલાવવા વપરાય છે, રોજ લખવા નહીં |
Formula
Bash એ તમારું મૂળભૂત છે, અને આ અભ્યાસક્રમનું shell
મોટા ભાગનાં Linux નાં તંત્રો પર, campus ના સામાન્ય lab ના server સહિત, Bash એ મૂળભૂત વાપરવાનું shell છે, અને આ અભ્યાસક્રમ દરેક command અને script માટે એ જ વાપરે છે. એ શક્તિશાળી છે, બધે મળે છે, અને એના દસ્તાવેજ પૂરેપૂરા છે.
Zsh એ લોકોની લોકપ્રિય પસંદગી છે જેમને વધુ ભભકાદાર અનુભવ જોઈએ છે (તાજેતરના macOS પર એ મૂળભૂત છે). Dash માં તમે ભાગ્યે જ સીધું લખો છો; તંત્ર એને પડદા પાછળ scripts ઝડપથી ચલાવવા વાપરે છે. આ અભ્યાસક્રમમાં શંકા હોય, ત્યારે Bash માની લો.
Practical
હું કયું shell વાપરું છું?
echo $SHELL # prints your login shell, e.g. /bin/bash
# The path names the shell program:
# /bin/bash -> Bash
# /bin/zsh -> Zsh
# /bin/dash -> Dash (often linked as /bin/sh)Quiz
કયું shell નાનું, ઝડપી, અને POSIX પર કેન્દ્રિત છે, અને રોજિંદા વપરાશને બદલે તંત્રની scripts ઝડપથી ચલાવવા સામાન્ય રીતે વપરાય છે?
- Bash, કારણ કે એ સૌથી મોટું છે
- Dash, એટલે કે Debian Almquist SHell, જે લઘુતમ ઝડપી shell છે અને scripts માટે ઘણી વાર /bin/sh તરીકે વપરાય છે
- Zsh, કારણ કે એની પાસે વાપરવાનાં સૌથી વધુ લક્ષણો છે
- એકેય નહીં; Linux નાં બધાં shells એકસરખાં છે
Show the answer
Dash, એટલે કે Debian Almquist SHell, જે લઘુતમ ઝડપી shell છે અને scripts માટે ઘણી વાર /bin/sh તરીકે વપરાય છે
Dash (Debian Almquist SHell) એ scripts ઝડપથી ચલાવવા બનેલું નાનું, ઝડપી, લઘુતમ shell છે; એ POSIX ને વળગી રહે છે અને જાણી જોઈને ભારે સગવડો છોડી દે છે, અને એટલા માટે જ તંત્રો એને શરૂઆતની અને તંત્રની scripts માટે ઘણી વાર /bin/sh તરીકે વાપરે છે. વિકલ્પ A ખોટો છે: Bash લક્ષણોથી ભરપૂર છે અને એ રોજિંદું મૂળભૂત shell છે, લઘુતમ script ચલાવનારું નહીં. વિકલ્પ C એ વર્ણનથી ઊલટો છે: Zsh જ વાપરવાનાં લક્ષણોથી ભરેલું છે (completion, themes, plugins), એટલે એ લઘુતમ પસંદગી નથી. વિકલ્પ D ખોટો છે: shells મુખ્ય સ્વરૂપ વહેંચે છે પણ કદ, ઝડપ અને લક્ષણોમાં ખરેખર જુદાં પડે છે. ઓજારને કામ સાથે મેળવો: રોજિંદા વપરાશ માટે Bash, પાતળા ઝડપી scripting માટે Dash.
Think first
જો સ્વરૂપ વહેંચાયેલું હોય, તો અનેક shells કેમ છે?
Bash, Zsh, અને Dash બધાં એ જ પાયાના commands ચલાવે છે. તો એક જ કેમ નહીં? પછી tap કરો.
Show the answer
કારણ કે જુદી પરિસ્થિતિઓમાં લક્ષણો અને પાતળાપણા વચ્ચેની જુદી આપ-લે ફળે છે. DASH ઝડપ અને સાદગી માટે છે: તંત્ર ચાલુ થાય અને સેંકડો નાની scripts ચલાવે ત્યારે નાનું, ઝડપી, ચુસ્ત પ્રમાણભૂત shell મોટા shell કરતાં વહેલું શરૂ થઈને પૂરું થાય છે, એટલે Dash ને /bin/sh તરીકે વાપરવાથી આખું તંત્ર વધુ ચપળ અને ધારી શકાય એવું બને છે. ZSH વધુ સમૃદ્ધ વાપરવાના અનુભવ માટે છે: જે લોકો આખો દિવસ terminal પર વિતાવે છે એમને એનું વધુ હોશિયાર tab-completion, જોડણીનો સુધારો, themes, અને plugins ગમે છે, અને એ સગવડો શરૂઆતની script માં નકામો બોજ હોત. BASH વચ્ચે વ્યવહારુ મૂળભૂત તરીકે બેસે છે: ખરેખરા વપરાશ અને scripting માટે પૂરતું શક્તિશાળી, લગભગ બધે ઉપલબ્ધ, અને ઊંડા દસ્તાવેજવાળું, અને એટલા માટે જ એ શીખવા માટેનું સલામત ધોરણ છે. વહેંચાયેલા Bourne કુટુંબના સ્વરૂપનો અર્થ છે કે તમારી પાયાની આવડતો એ બધામાં ચાલે છે, એટલે Bash સારી રીતે શીખવાથી તમે બીજાં માટે તૈયાર થાઓ છો. અનેક shells એ પસંદગી છે, અંધાધૂંધી નહીં: જેની ઝડપ અને લક્ષણોની સમતુલા કામને બંધબેસે એ પસંદ કરો. પહેલાં Bash શીખો; એ બધે સાથે ચાલે છે.
Summary
Key takeaways
- Shell એ command નું અર્થઘટન કરનારું છે, અને એ ફક્ત એક program છે, એટલે Linux પસંદ કરવા અનેક આપે છે.
- Bash (Bourne Again SHell) એ સામાન્ય મૂળભૂત છે: લક્ષણોથી ભરપૂર, સાર્વત્રિક, અને આ અભ્યાસક્રમ વાપરે છે એ shell.
- Zsh (Z Shell) એ Bash જેવું છે પણ વધુ સમૃદ્ધ વાપરવાનાં લક્ષણો સાથે (completion, themes, plugins); તાજેતરના macOS પર મૂળભૂત.
- Dash (Debian Almquist SHell) નાનું, ઝડપી, અને ફક્ત POSIX વાળું છે, જે તંત્રની scripts ઝડપથી ચલાવવા વપરાય છે, રોજ લખવા નહીં.
- બધાં Bourne કુટુંબનાં છે, એટલે એ મુખ્ય સ્વરૂપ વહેંચે છે; તમારી પાયાની આવડતો એમની વચ્ચે ચાલે છે.
- echo $SHELL થી તમારું shell તપાસો; રસ્તો (જેમ કે /bin/bash) program નું નામ આપે છે.
- Memory hook: રોજિંદા માટે Bash, ભભકાદાર prompt માટે Zsh, ઝડપી scripts માટે Dash.