Csh से bash को डिफ़ॉल्ट शेल के रूप में कैसे बदलें


34

मेरे पास cshमेरा डिफ़ॉल्ट शेल है, जैसा कि मैंने दिखाया है echo $SHELL। मैं bashअपने डिफ़ॉल्ट शेल के रूप में स्विच करना चाहता हूं। मैंने बिना किसी लाभ के निम्नलिखित तरीकों की कोशिश की:

  1. chshमेरे साथ :

    chsh: can only change local entries; use ypchsh instead.
  2. ypchshमेरे साथ :

    ypchsh: yppasswdd not running on NIS master host ("dcsun2").

मेरे पास केवल .chsrcमेरी होम डायरेक्टरी है और मुझे कोई भी .profileफाइल नहीं मिल रही है /etc। मैं अपना डिफ़ॉल्ट शेल कैसे बदल सकता हूं bash?


4
यह जानना उपयोगी हो सकता है कि आप किस प्रकार के यूनिक्स हैं।
enzotib

जवाबों:


43
  1. सुनिश्चित करें कि आप bashस्थापित हो गए हैं।

  2. का स्थान जानें bash:

    which bash

    या

    whereis bash

    नीचे, मैं मानूंगा कि स्थान है /bin/bash

    क) यदि आपके पास प्रशासनिक अधिकार हैं, तो बस रूट के रूप में चलाएं:

    usermod -s /bin/bash YOUR_USERNAME

    ( YOUR_USERNAMEअपने उपयोगकर्ता नाम के साथ प्रतिस्थापित करना)।

    ख) यदि आपके पास प्रशंसा नहीं है। अधिकार, आप अभी भी bash --loginलॉगिन पर चला सकते हैं , अपने या अपने होम डायरेक्टरी के अंत में नीचे की लाइन डालकर :.cshrc.profile

    setenv SHELL /bin/bash
    exec /bin/bash --login

2 बी। जाँच करें कि bashक्या /etc/shellsसही मार्ग से संलग्न है।
मैनेटवर्क

@ मैनटवर्क 2 ए के लिए प्रासंगिक होगा , न कि 2 बी के लिए। और केवल एक अजीब / टूटी हुई प्रणाली की स्थापना में उपयोगी यह निर्धारित करने के लिए कि समाधान क्यों काम नहीं किया।
rozcietrzewiacz

1
1. शेल = / बिन / बैश एक कमांड देता है जिसे त्रुटि नहीं मिली। 2. आपका समाधान मुझे संकेत के रूप में एक बास खोल देता है। लेकिन यह मेरा लॉगिन शेल नहीं बदलता है। फ़िर भी सहायता के लिए धन्यवाद।
सुमोद

1
यहाँ मैं इसे हल करने के लिए क्या किया है। 1. निष्पादित / बिन / bash - .gin in .shrc फ़ाइल 2. सेट SHELL = / bin / bash और फिर / etc / प्रोफ़ाइल फ़ाइल में SHELL निर्यात करें। धन्यवाद।
सुमोद

2
आह, सॉरी - मेरा मतलब था पहली लाइन होना export SHELL=/bin/bash। वास्तव में इससे बेहतर तरीका है - अपडेट देखें।
रोज़ज़ेट्रिएवेज़ज़

13

अपने सिस्टम व्यवस्थापक से संपर्क करें। उसने चीजों को गलत तरीके से सेट किया है। अगर आप अपने सिस्टम एडमिनिस्ट्रेटर हैं तो आपने चीजों को गलत तरीके से सेट किया है।

त्रुटि संदेश बहुत सीधे आगे दिखता है। आपके पास yppasswddcsun2 पर नहीं चल रहा है। यह होना चाहिए।

लेकिन त्वरित Google खोज करना इस परिणाम के साथ आता है जो इंगित करता है कि yppasswdक्लाइंट और सर्वर दोनों पर चलने पर आपको यह त्रुटि मिलेगी । इस मामले में इसे क्लाइंट पर बंद कर दें।


यदि आप अपने लॉगिन शेल के रूप में csh से चिपके रहते हैं, तो आप लॉग इन करने के बाद भी इसे इनवॉइस बैश कर सकते हैं। निम्नलिखित कमांड्स को अपने में रखें ~/.login( बिना चॅश या एडमिनिस्ट्रेटर के निजीकृत डिफ़ॉल्ट शेल को बदलते हुए देखें ):

sleep 2
if (-x /usr/local/bin/bash) then
  exec /usr/local/bin/bash -l
endif

/usr/local/bin/bashयदि आवश्यक हो तो उचित मार्ग से बदलें । यदि सब कुछ काम करता है, तो हटाएं sleep 2(जो उस समय में देरी करता है जिसके दौरान आप Ctrl+Ccsh प्रॉम्प्ट पर ड्रॉप करने के लिए दबा सकते हैं , अगर कुछ गलत हो जाता है)।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.