परिचय: लॉगिन शेल और chsh कमांड
लिनक्स ऑपरेटिंग सिस्टम में प्रत्येक यूजर अकाउंट के लिए एक डिफॉल्ट लॉगिन शेल निर्धारित होता है। इस ट्यूटोरियल में हम जानेंगे कि chsh (Change Shell) कमांड किस प्रकार काम करती है और आंतरिक रूप से इसका तालमेल /etc/shells एवं /etc/passwd फाइलों के साथ कैसे बैठता है। टर्मिनल स्क्रीनशॉट की मदद से पूरी प्रक्रिया को चरणबद्ध तरीके से स्पष्ट किया गया है।
एक्टिव शेल और सिस्टम में उपलब्ध शेल की जांच
वर्तमान टर्मिनल सेशन में सक्रिय शेल का पता लगाने के लिए एनवायरनमेंट वेरिएबल को प्रिंट करते हुए echo $SHELL कमांड रन करें।
कमांड के आउटपुट से यह स्पष्ट हो जाता है कि मौजूदा यूजर के लिए सिस्टम का डिफॉल्ट लॉगिन शेल /bin/bash पर सेट है।

सिस्टम में वे कौन-से स्वीकृत और सुरक्षित शेल विकल्प मौजूद हैं जिन्हें असाइन किया जा सकता है, यह देखने के लिए cat /etc/shells कमांड चलाएं।
इस फाइल में दर्ज लिस्ट यह निर्धारित करती है कि यूजर किन वैध पाथ (जैसे /bin/sh या /bin/bash) को अपने लॉगिन शेल के रूप में चुन सकता है।

नया शेल (Zsh) इंस्टॉल करना और उसकी डायरेक्टरी पाथ की पुष्टि
शेल बदलने की प्रक्रिया को व्यावहारिक रूप से समझने के लिए एक आधुनिक शेल zsh को पैकेज मैनेजर से लोड करते हैं; इसके लिए sudo apt-get update -qq && sudo apt-get install -y zsh निष्पादित करें।

सॉफ्टवेयर इंस्टॉल हो जाने के बाद, उसके एग्जीक्यूटेबल बाइनरी पाथ की पुष्टि करने हेतु which zsh कमांड का उपयोग करें।
कंसोल आउटपुट यह सत्यापित करता है कि zsh बाइनरी फाइल सिस्टम में /usr/bin/zsh पर सफलतापूर्वक स्थित है।

नया शेल सिस्टम स्तर पर सुरक्षित लॉगिन के लिए अधिकृत हुआ या नहीं, यह जांचने के लिए grep -E 'bash|zsh' /etc/shells रन करें।
परिणाम से साफ दिखता है कि /bin/zsh और /usr/bin/zsh दोनों पाथ ऑथराइज्ड लिस्ट में जुड़ चुके हैं, जिसका अर्थ है कि अब यूजर बिना किसी बाधा के chsh का इस्तेमाल कर सकता है।

chsh कमांड के जरिए यूजर का डिफॉल्ट शेल बदलना
कॉन्फ़िगरेशन में बदलाव करने से पहले, वर्तमान एक्टिव यूजर का सटीक नाम सत्यापित करने के लिए id -un चलाएं।
टर्मिनल पर प्रदर्शित परिणाम से पुष्टि होती है कि यह सत्र root यूजर के तहत संचालित किया जा रहा है।

अब यूजर के प्राथमिक लॉगिन शेल को zsh पर रीडायरेक्ट करने के लिए chsh -s $(which zsh) कमांड दें।
बिना किसी त्रुटि के प्रॉम्प्ट का लौटना यह दर्शाता है कि लक्षित बाइनरी पाथ (/usr/bin/zsh) सिस्टम कॉन्फ़िगरेशन में लागू कर दिया गया है।

सिस्टम डेटाबेस में इस बदलाव की पुष्टि करने हेतु grep "^$(whoami):" /etc/passwd चलाकर यूजर की एंट्री देखें।
रिकॉर्ड की आखिरी फील्ड में अब /usr/bin/zsh दिखाई देता है, जिससे यह सिद्ध होता है कि यूजर का डिफॉल्ट शेल सफलतापूर्वक अपडेट हो चुका है।

बैकएंड प्रोसेस और पूर्ववत स्थिति (Bash) में रोलबैक
परीक्षण पूरा होने के उपरांत यदि वातावरण को दोबारा मूल स्थिति में लाना हो, तो chsh -s /bin/bash निष्पादित करके पुनः बैश शेल सेट करें।
कमांड बिना किसी एरर के समाप्त होती है, जिसका सीधा मतलब है कि लॉगिन शेल को सफलतापूर्वक /bin/bash पर रीसेट कर दिया गया है।

अंतिम सत्यापन के रूप में पुनः grep "^$(whoami):" /etc/passwd चलाएं ताकि यह सुनिश्चित हो सके कि क्रेडेंशियल फाइल में सही एंट्री दर्ज है।
अंतिम फील्ड में दोबारा /bin/bash परिलक्षित होना यह पुख्ता करता है कि यूजर का एनवायरनमेंट अपनी पूर्व और सुरक्षित स्थिति में बहाल हो चुका है।

इस गाइड में हमने Ubuntu वातावरण में chsh के माध्यम से शेल बदलने के व्यावहारिक चरणों और इसके बैकएंड मैकेनिज्म को समझा। अपनी पसंद और वर्कफ़्लो के अनुसार उपयुक्त शेल चुनकर आप अपने लिनक्स टर्मिनल अनुभव को अधिक सुगम और उत्पादक बना सकते हैं।