$ SHLVL ચલ તમને કહેવામાં આવે છે કે તમે કેટલા શેલો ઊંડા છો. જો તમે આ દ્વારા મૂંઝવણમાં હોવ તો તે શરૂઆતથી શરૂ થવાનું છે.
શેલ શું છે?
શેલ આદેશો લે છે અને તેમને અન્ડરલાઇંગ ઑપરેટિંગ સિસ્ટમ પર પ્રદાન કરે છે. મોટા ભાગના લીનક્સ સિસ્ટમો પર શેલ પ્રોગ્રામને બેશ (ધી બોર્ન અગેઇન્ડ શેલ) કહેવામાં આવે છે પરંતુ સી શેલ (ટીસીએસ) અને કોર્ન શેલ (કેએસએસ) સહિત અન્ય ઉપલબ્ધ છે.
Linux શેલ ઍક્સેસ કેવી રીતે કરવો
સામાન્ય રીતે વપરાશકર્તા તરીકે તમે શેલ પ્રોગ્રામ સાથે ટર્મિનલ ઇમ્યુલેશન પ્રોગ્રામ જેવા કે XTerm, konsole અથવા gnome-terminal નો ઉપયોગ કરીને વાતચીત કરો છો.
જો તમે વિન્ડો વ્યવસ્થાપક જેમ કે ઓપનબોક્સ અથવા ડેસ્કટોપ એન્વાર્યમેન્ટ જેમ કે જીનોમ કે કેડીઇ ચલાવતા હોવ તો તમને ટર્મિનલ ઇમ્યુલેટર મળશે મેનુ અથવા ડૅશમાંથી. ઘણી સિસ્ટમો પર શૉર્ટકટ CTRL ALT અને T એ ટર્મિનલ વિન્ડો પણ ખોલશે.
વૈકલ્પિક રીતે તમે અન્ય ટીટી (ટેલીટાઇપ્રેટર) પર જઈ શકો છો જે આદેશ વાક્ય શેલ માટે સીધો વપરાશ પૂરો પાડે છે. તમે CTRL ALT અને F1 અથવા CTRL ALT અને F2 વગેરેને દબાવી શકો છો.
શેલ સ્તર શું છે
જ્યારે તમે શેલમાં આદેશ ચલાવો છો ત્યારે તે શેલ સ્તર તરીકે ઓળખાતી કંઈક પર ચાલે છે. શેલની અંદર તમે અન્ય શેલ ખોલી શકો છો જે તેને એક સબશેલ અથવા શેલ બનાવે છે જે તેને ખોલી હતી.
તેથી માબાપ શેલ કદાચ સ્તર 1 શેલ તરીકે ગણવામાં આવશે અને બાળક શેલ સ્તર 2 શેલ હશે.
શેલ સ્તર દર્શાવવા માટે કેવી રીતે
તે લેખના શીર્ષક પર આધારિત કોઈ આશ્ચર્ય નહીં આવે, જે રીતે તમે જે શેલ સ્તર ચલાવી રહ્યા છો તે કહી શકો છો $ SHLVL ચલ ઉપયોગ કરીને.
શેલ સ્તર જોવા માટે કે જે તમે હાલમાં નીચેના પ્રકારમાં ચલાવી રહ્યા છો:
પડઘો $ SHLVL
રસપ્રદ રીતે જો તમે ઉપરના આદેશને ટર્મિનલ વિન્ડોમાં ચલાવો છો તો તમને આશ્ચર્ય થશે કે પરિણામ પાછું 2 છે.
જો તમે tty વાપરીને તે જ આદેશ ચલાવો તો પરિણામ 1 છે.
આ કેમ તમે પૂછશો? વેલ ડેસ્કટોપ એન્વાયર્નમેન્ટ જે તમે ચલાવી રહ્યા છો તે શેલની ટોચ પર ચાલી રહી છે. તે શેલ લેવલ 1 હશે. કોઈ પણ ટર્મિનલ વિંડો કે જે તમે તે ડેસ્કટોપ પર્યાવરણમાંથી ખોલો છો તે શેલનો બાળક હોવો જોઈએ કે જે ડેસ્કટોપ પર્યાવરણને ખોલે છે અને તેથી શેલ સ્તર 2 કરતાં અન્ય કોઈપણ સંખ્યાથી શરૂ કરી શકતું નથી.
આ tty ડેસ્કટોપ પર્યાવરણને ચલાવતું નથી અને તેથી ફક્ત એક સ્તર 1 શેલ છે
Subshells કેવી રીતે બનાવો
શેલો અને સબશેલ્સની ખ્યાલ ચકાસવાનો સૌથી સરળ રીત નીચે પ્રમાણે છે. ટર્મિનલ વિંડો ખોલો અને નીચેનો ટાઇપ કરો:
પડઘો $ SHLVL
જેમ આપણે ટર્મિનલ વિન્ડોમાં જાણીએ છીએ તેમ લઘુત્તમ શેલ સ્તર 2 છે.
હવે ટર્મિનલ વિન્ડોમાં નીચેનાને લખો:
એસ.એચ
તેના પોતાના પર sh આદેશ અરસપરસ શેલ ચાલે છે જેનો અર્થ છે કે તમે શેલ અથવા સબશેલની અંદર શેલનો ઉપયોગ કરી રહ્યા છો.
જો તમે હવે ફરીથી આ લખો છો:
પડઘો $ SHLVL
તમે જોશો કે શેલ સ્તર 3 થી સુયોજિત છે. સબશેલમાંથી sh આદેશ ચલાવવાથી સબશેલ્ડનું સબશેલ ખોલશે અને તેથી શેલ સ્તર સ્તર 4 પર હશે.
શેલ સ્તર શા માટે મહત્વપૂર્ણ છે?
શેલ સ્તર મહત્વપૂર્ણ છે જ્યારે તમારી સ્ક્રિપ્ટોમાં ચલોના અવકાશ વિશે વિચારી રહ્યા હોય.
ચાલો કંઈક સરળ સાથે શરૂ કરીએ:
કૂતરો = મૈસી
ઇકો $ કૂતરો
જો તમે શેલમાં ઉપરોક્ત આદેશ ચલાવો તો શબ્દ મૈઝી ટર્મિનલ વિન્ડોમાં પ્રદર્શિત થશે.
નીચેના ટાઇપ કરીને નવા શેલને ખોલો:
એસ.એચ
જો તમે આ આદેશ ચલાવો છો તો તમે જોશો કે કંઇ વાસ્તવમાં પાછો ફર્યો નથી.
ઇકો $ કૂતરો
તે એટલા માટે છે કે $ કૂતરો ચલ ફક્ત શેલ સ્તર 2 પર ઉપલબ્ધ છે. જો તમે સબશેલમાંથી બહાર નીકળવા માટે બહાર નીકળો લખો અને $ echo ચલાવો ત્યારે ફરીથી શબ્દ મેઝી ફરી પ્રદર્શિત થશે
શેલની અંદર વૈશ્વિક ચલોની વર્તણૂક વિશે તે વિચારવા યોગ્ય છે.
નવી ટર્મિનલ વિંડોમાં બંધ કરો અને નીચેનો ટાઇપ કરો:
નિકાસ ડોગ = મૈસી
ઇકો $ કૂતરો
તમે આશા રાખશો કે શબ્દ મૈસી પ્રદર્શિત થાય છે. હવે એક સબશેલ ખોલો અને ફરીથી ઇકો $ કૂતરો લખો. આ સમયે તમે જોશો કે મૈઝી શબ્દ પ્રદર્શિત થાય છે છતાં પણ તમે સબશેલમાં છો.
આના માટેનું કારણ એ છે કે નિકાસ કમાન્ડ $ કૂતરો ચલ વૈશ્વિક બનાવે છે. Subshell ની અંદર $ કૂતરો ચલ બદલવાથી જો તમે નિકાસ આદેશનો ઉપયોગ કરો છો તો તેના પિતૃ શેલો પર કોઈ અસર થતી નથી.
આસ્થાપૂર્વક આ પરથી તમે જોઈ શકો છો કે જે સ્ક્રીપ્ટ લખતી વખતે તમે કામ કરી રહ્યા છો તે શેલ સ્તરને કેટલીક મહત્વ છે.
મેં જે ઉદાહરણો આપ્યાં છે તે ખૂબ જ સરળ છે પણ એક શેલ સ્ક્રિપ્ટ માટે અન્ય શેલ સ્ક્રીપ્ટને કૉલ કરવા માટે ખૂબ જ સામાન્ય છે જે બદલામાં અન્ય શેલ સ્ક્રિપ્ટને જુએ છે જે બધા હવે જુદા જુદા સ્તરોએ ચાલી રહ્યું છે. શેલ સ્તર જાણવાનું ખૂબ મહત્વનું છે.