मैं OSX में उपयोगकर्ताओं को डिफ़ॉल्ट शेल कैसे बदलूं?


33

उपयोगकर्ताओं के डिफ़ॉल्ट शेल को बदलने का सही OSX तरीका क्या है? जब मैंने इसके लिए googled किया, तो मुझे NetInfo Manager नामक एप्लिकेशन के कई संदर्भ मिले, लेकिन मैं इसे अपने सिस्टम पर नहीं पा सका। एक कमांड लाइन संस्करण के संदर्भ भी थे जिन्हें niutil कहा जाता था जो मुझे या तो नहीं मिला।


जवाबों:


52

<= 10.4 के लिए - netinfo प्रबंधक, / उपयोगकर्ता / जो भी / शेल

के लिए> = 10.5

  1. सिस्टम प्राथमिकताएं -> खातों पर जाएं
  2. वरीयता फलक को अनलॉक करने के लिए लॉक आइकन पर क्लिक करें
  3. उपयोगकर्ता पर राइट-क्लिक (या नियंत्रण-क्लिक) और "उन्नत विकल्प" चुनें
  4. लॉगिन शेल फ़ील्ड संपादित करें

5
वाह, OS XI का उपयोग करने के 8 वर्षों के बाद उपयोगकर्ताओं के Prefs में नियंत्रण पर क्लिक करने के बारे में पता नहीं था: मुझे लगता है कि यह 10.5 में जोड़ा गया था, हालांकि आपने बताया था। +1
jkp

1
नियंत्रण-क्लिक स्तब्ध है!
Eonil

1
PATH से मेरे खाते के शेल को स्थानांतरित करने के बाद लाइफसेवर ... कमांड लाइन के माध्यम से ठीक करने के लिए टर्मिनल शुरू नहीं कर सका!
डेविमरॉन

2
यह एल Capitan पर अब और काम नहीं करता है?
मार्कस जे

सच है, यह इस तरह की बात है, 7 साल नीचे लाइन और चीजें बदल गई हैं - क्यों न खुद कुछ शोध करें, जोड़ें और जवाब दें और यह उत्थान होगा, कि कैसे काम करता है, बस थोड़ा सा जवाब देने से बेहतर है
चॉपर 3

33
sudo chsh -s /path/to/shell username

जहां शेल वह है जो आप उस उपयोगकर्ता के लिए चाहते हैं। sudoयदि आपको usernameपासवर्ड पता है तो इसकी आवश्यकता नहीं है ।

man chsh

अधिक उदाहरणों के लिए।


र के लिए रूट के लिए भी काम करता है, जो नियंत्रण कक्ष में दिखाई नहीं देता है। मुझे लगता है?
क्रिस एफ कैरोल

4
तुम भी बस चला सकते हैं chshऔर खोल क्षेत्र बदल सकते हैं । यदि आपको कोई त्रुटि की तरह मिलता है chsh: /usr/local/bin/bash: non-standard shell, जोड़ने /usr/local/bin/bashके लिए /etc/shells
लारी

3
शायद 10.9 में कुछ बदल गया है, लेकिन यह कमांड अब एक उपयोग संदेश फेंकता है। ऐसा लगता है कि सही वाक्यविन्यास अब हैchsh -s /path/to/shell username
मैटमैमैटिक्स

9

नेटइन्फो को डायरेक्ट्री सर्विसेज (डीएससीएल) द्वारा प्रतिस्थापित किया गया है और मैक ओएस एक्स के लिए 10.3 बश होने के बाद से इसे डिफ़ॉल्ट शेल नोट किया जा सकता है। उससे पहले यह tcsh था।

यदि आपको कमांड लाइन से ऐसा करने की आवश्यकता है (उदाहरण के लिए एआरडी या एसएसएच के माध्यम से दूर से धक्का देने के लिए) तो आप चला सकते हैं:

sudo dscl localhost -change /Local/Default/Users/USERNAME shell OLD_SHELL NEW_SHELL
#In Use:
sudo dscl localhost -change /Local/Default/Users/chealion shell /bin/bash /bin/zsh

यदि आप वर्तमान शेल के बारे में सुनिश्चित नहीं हैं, तो आप चला सकते हैं:

sudo dscl localhost -read /Local/Default/Users/USERNAME shell

यदि उपयोगकर्ता एक स्थानीय उपयोगकर्ता नहीं है, तो मार्ग बस बदल जाएगा और यदि आवश्यक हो तो आप localhostअपने ओपन डायरेक्टरी सर्वर के नाम में बदल जाएंगे । (यह मानते हुए कि यह 10.5 चलता है)।

जानकारी को .plists (xml) में संग्रहीत किया जाता है /private/var/db/dslocal/- हालाँकि आप हाथ से प्लिस्ट फ़ाइलों को संपादित नहीं करना चाहते हैं।


7

10.10 के लिए:

नहीं shellलेकिन UserShell:

sudo dscl localhost -change /Local/Default/Users/USERNAME UserShell /bin/bash /bin/ksh
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.