Ubuntu में chsh से डिफॉल्ट शेल कैसे बदलें: पूरी गाइड

परिचय: लॉगिन शेल और chsh कमांड

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

एक्टिव शेल और सिस्टम में उपलब्ध शेल की जांच

वर्तमान टर्मिनल सेशन में सक्रिय शेल का पता लगाने के लिए एनवायरनमेंट वेरिएबल को प्रिंट करते हुए echo $SHELL कमांड रन करें।
कमांड के आउटपुट से यह स्पष्ट हो जाता है कि मौजूदा यूजर के लिए सिस्टम का डिफॉल्ट लॉगिन शेल /bin/bash पर सेट है।

echo $SHELL आउटपुट

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

cat /etc/shells का परिणाम

नया शेल (Zsh) इंस्टॉल करना और उसकी डायरेक्टरी पाथ की पुष्टि

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

Zsh पैकेज इंस्टॉलेशन

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

which zsh कमांड द्वारा पाथ वेरिफिकेशन

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

/etc/shells में Zsh की उपस्थिति की पुष्टि

chsh कमांड के जरिए यूजर का डिफॉल्ट शेल बदलना

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

id -un से यूजरनेम की जांच

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

chsh द्वारा Zsh लागू करना

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

/etc/passwd में नए शेल की पुष्टि

बैकएंड प्रोसेस और पूर्ववत स्थिति (Bash) में रोलबैक

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

chsh से Bash पर पुनर्स्थापना

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

/etc/passwd में रीसेट की पुष्टि

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