लिनक्स में डिफ़ॉल्ट शेल बदलना [बंद]


317

डिफ़ॉल्ट शेल को बदलना कैसे संभव है? envआदेश वर्तमान में कहते हैं:

SHELL=/bin/tcsh

और मैं इसे बैश में बदलना चाहता हूं।


4
यह एक अच्छा सवाल है, लेकिन यह लिनक्स क्यूए साइट के लिए अधिक उपयुक्त हो सकता है।
ब्रैडलीडनेट

6
इसे / etc / passwd में सेट करें
परिणाम

जवाबों:


414

लिनक्स कमांड का प्रयास करें chsh

विस्तृत आदेश है chsh -s /bin/bash। यह आपको अपना पासवर्ड दर्ज करने के लिए संकेत देगा। आपका डिफ़ॉल्ट लॉगिन शेल /bin/bashअब है। इस परिवर्तन को देखने के लिए आपको लॉग आउट और लॉग इन करना होगा।

निम्नलिखित को मैन पेज से उद्धृत किया गया है:

Chsh कमांड यूजर लॉगिन शेल को बदलता है। यह उपयोगकर्ताओं के प्रारंभिक लॉगिन आदेश का नाम निर्धारित करता है। एक सामान्य उपयोगकर्ता केवल अपने खाते के लिए लॉगिन शेल बदल सकता है, सुपरयूज़र किसी भी खाते के लिए लॉगिन शेल बदल सकता है

यह कमांड डिफ़ॉल्ट लॉगिन शेल को स्थायी रूप से बदल देगा।

नोट: यदि आपका उपयोगकर्ता खाता दूरस्थ है जैसे कि Kerberos प्रमाणीकरण (जैसे एंटरप्राइज़ RHEL) पर तो आप उपयोग नहीं कर पाएंगे chsh


10
chsh: can only change local entries; use ypchsh instead। तब ypchsh किसी भी नहीं है -sविकल्प
महमूद

10
@ShaktiMalik मुझे विश्वास है कि कॉन्फ़िगर फ़ाइल है /etc/passwd, लेकिन मैंने इसकी दोहरी जांच नहीं की।
समर_मोर_मोर_बहुत

30
इस परिवर्तन को देखने के लिए आपको लॉग आउट और लॉग इन करना होगा।
नील ट्राफट

22
मेरे मामले में, मेरे पास रूट एक्सेस था लेकिन वास्तविक होस्ट पर किसी भी कॉन्फ़िगरेशन के साथ गड़बड़ नहीं करना चाहता था। मैं जोड़ा exec /bin/bashकरने के लिए ~/.profileऔर यह मेरे सर्वर से कोई बदलाव किए बिना पार्टी के लिए सीधे प्रवेश करने की अनुमति। (मूल डिफ़ॉल्ट शेल बस था /bin/sh)
पॉल नेल्सन बेकर

2
@BCqrstoO इसके लिए धन्यवाद। लेकिन अगर आप exitबैश में टाइप करते हैं तो क्या होगा ? क्या आप सर्वर को सीधे लॉगआउट करेंगे या सिर्फ बैश से बाहर निकलने के लिए और sh और किसी अन्य exitको सर्वर को लॉगआउट करना होगा?
Summer_More_More_Tea

148

आप विशेष उपयोगकर्ता के लिए सीधे पासवार्ड फ़ाइल को बदल सकते हैं या नीचे दिए गए कमांड का उपयोग कर सकते हैं

chsh -s /usr/local/bin/bash username

फिर लॉग आउट करें और लॉग इन करें


8
संभवतः which bashउपरोक्त आदेश को लागू करने से पहले एक अच्छा विचार है ; आपका माइलेज स्थान के बारे में भिन्न हो सकता है। मेरे मामले में, यह पाया गया/bin/bash
मार्टिन हैबरली

मैं यह भी जोड़ सकता हूं, chshकमांड util-linuxपैकेज का हिस्सा है ; और chsh -s $(which bash) $USERऊपर के रूप में एक ही परिणाम चाहिए।

-lविकल्प भी है: "गोले की प्रिंट सूची"।
बेटलिस्टा

3
यह था chsh -s /bin/bash usernameमेरे लिए
Salvatorelab

धन्यवाद! एक अलग उपयोगकर्ता के लिए इसे बदलने की कोशिश करते समय इससे मुझे मदद मिली
टोबीस फील

18

आपके अंदर कहीं 'कंकाल' होना चाहिए /etc , शायद/etc/skeleton , या डिफ़ॉल्ट सेटिंग्स की जाँच करें, शायद /etc/defaultया कुछ और। वे स्क्रिप्ट हैं जो एक लॉगिन के दौरान सेट होने वाले मानक पर्यावरण चर को परिभाषित करते हैं।

यदि यह केवल आपके स्वयं के खाते के लिए है: (छिपी) फ़ाइल की जाँच करें ~/.profileऔर ~/.login। या उन्हें उत्पन्न करते हैं, अगर वे मौजूद नहीं हैं। इनका मूल्यांकन भी लॉगिन प्रक्रिया द्वारा किया जाता है।


5
प्लस 1 विशेष रूप से प्रश्न का उत्तर देने के लिए (डिफ़ॉल्ट शेल)। Red Hat Linux पर यह निर्दिष्ट है/etc/default/useradd
geedoubleya

@geedoubleya क्या आप निर्दिष्ट कर सकते हैं कि डिफ़ॉल्ट और लॉगिन शेल में क्या अंतर है?
बेटलिस्टा

1
Hi @Betlista डिफ़ॉल्ट शेल वह शेल होता है जिसका उपयोग नए उपयोगकर्ता लॉगिन शेल के लिए किया जाता है जब वे एक विशिष्ट शेल को तर्क के रूप में प्रदान किए जाने तक बनाए जाते हैं।
गिद्देव्य
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.