हर बार जब मैं टर्मिनल शुरू करता हूं तो मुझे मछली को दोबारा बनाना पसंद नहीं है। मैं fish
डिफ़ॉल्ट रूप से चाहता हूं । मैं मैक पर अपने डिफ़ॉल्ट शेल के रूप में फिश शेल कैसे सेट कर सकता हूं?
हर बार जब मैं टर्मिनल शुरू करता हूं तो मुझे मछली को दोबारा बनाना पसंद नहीं है। मैं fish
डिफ़ॉल्ट रूप से चाहता हूं । मैं मैक पर अपने डिफ़ॉल्ट शेल के रूप में फिश शेल कैसे सेट कर सकता हूं?
जवाबों:
ये MacOS Sierra 10.12.5 (16F73) और शायद MacOS के कुछ अन्य हालिया और आगामी संस्करणों पर लागू होते हैं।
chsh
डिफ़ॉल्ट शेल को बदलने के लिए पर्याप्त नहीं है। सुनिश्चित करें कि आप अपने टर्मिनल को खोलते समय Command+ दबाते ,हैं और 'गोले खुले' विकल्प को 'डिफ़ॉल्ट लॉगिन शेल' में बदलें।
बैश के मामले में, सुनिश्चित करें कि आप echo $BASH_VERSION
पुष्टि करने के लिए निष्पादित करते हैं कि आप बैश के इच्छित संस्करण को चला रहे हैं। bash --version
आपको सही जानकारी नहीं देता है।
Preferences
की Terminal.app । पंकज का यह जवाब देखिए ।
1. सुडो नैनो / आदि / गोले
2. गोले की सूची में usr / usr / स्थानीय / बिन / मछली जोड़ें
3. chsh -s / usr / स्थानीय / बिन / मछली
Shell open with: Default login shell
आप उपयोगकर्ता के शेल को बदलने के लिए chsh का उपयोग कर सकते हैं ।
उदाहरण के लिए, Zsh में अपने शेल को बदलने के लिए, निम्न कोड चलाएँ
chsh -s /bin/zsh
मैनपेज में वर्णित है, और Lorin द्वारा, अगर खोल ओएस द्वारा ज्ञात नहीं है, तो आप अपने ज्ञात सूची में जोड़ने के लिए है: /etc/shells
।
chsh: /usr/local/bin/fish: non-standard shell
समाधान मिला कि इसे / etc / गोले में जोड़ने के लिए नीचे दिए गए @ lorin-hochstein उत्तर द्वारा वर्णित किया गया था
-s
हालांकि बिना ) के रूप में काम करता है । मैं जल्द ही फिर से कोशिश करूँगा।
टर्मिनल से:
मछली जोड़ें /etc/shells
, जिसमें एक प्रशासनिक पासवर्ड की आवश्यकता होगी:
sudo echo /usr/local/bin/fish >> /etc/shells
मछली को अपना डिफ़ॉल्ट शेल बनाएं chsh
:
chsh -s /usr/local/bin/fish
सिस्टम प्राथमिकता से:
उपयोगकर्ता और समूह → ctrl - वर्तमान उपयोगकर्ता → उन्नत विकल्प पर क्लिक करें ...
लॉगिन शेल को बदलें /usr/local/bin/fish
ओके दबाएं, लॉग आउट करें और फिर से
sudo sh -c 'echo /usr/local/bin/fish >> /etc/shells'
echo /usr/local/bin/fish | sudo tee -a /etc/shells
यहाँ यह करने का एक और तरीका है:
यह मानते हुए कि आपने इसे MacPorts के साथ संस्थापित किया है, जिसे करके किया जा सकता है:
sudo port install fish
आपके खोल में स्थित होगा /opt/local/bin/fish
।
आपको OSX को यह बताने की आवश्यकता है कि यह एक वैध शेल है। ऐसा करने के लिए, /etc/shells
फ़ाइल के अंत में यह पथ जोड़ें ।
एक बार जब आप ऐसा कर लेते हैं, तो आप सिस्टम प्राथमिकता -> खातों में जाकर शेल को बदल सकते हैं। परिवर्तनों को अनुमति देने के लिए लॉक पर क्लिक करें। खाते पर राइट-क्लिक करें, और "उन्नत विकल्प ..." चुनें। "लॉगिन शेल" फ़ील्ड में, मछली का मार्ग जोड़ें।
केवल एक चीज जो मेरे लिए काम करती थी वह इन सभी तरीकों का एक संयोजन थी।
पहले मुझे /etc/shells
फ़ाइल में मछली जोड़ना पड़ा
फिर मैं भागा chsh -s /usr/local/bin/fish
अंत में, मैंने टाइप किया Command+ ,और /usr/local/bin/fish
वहां डिफ़ॉल्ट पथ में जोड़ा गया
जब मैंने तीनों चीजें की थीं, तब ही मछली नई टर्मिनल खिड़कियों के लिए डिफ़ॉल्ट रूप में पॉपिंग शुरू कर दी थी।
Preferences
> General
> Shells open with:
>/bin/fish
/usr/local/bin/fish
।यह स्क्रीनशॉट देखें जहां zsh
डिफ़ॉल्ट के रूप में सेट किया जा रहा है।
मैं macOS सिएरा का उपयोग कर रहा हूं । MacOS Mojave में भी काम करता है ।
MacOS Mojave पर मुझे निम्नलिखित कार्य करने थे (उदाहरण के लिए zsh का उपयोग करते हुए):
brew install zsh
sudo sh -c "echo $(which zsh) >> /etc/shells"
chsh -s $(which zsh)
zsh
। पहले से ही MacOS Mojave पर मौजूद है। Mojave पर बंडल, और कैटालिना में डिफ़ॉल्ट।
आधुनिक मैकओएस (मोजावे पर परीक्षण) पर बैश का नवीनतम संस्करण कैसे प्राप्त करें।
brew install bash
which bash | sudo tee -a /etc/shells
chsh -s $(which bash)
फिर आप विम स्टाइल टैब पूरा करने के लिए तैयार हैं जो केवल bash> = 4 पर उपलब्ध है (वर्तमान संस्करण brew
5.0.2 में है
# If there are multiple matches for completion, Tab should cycle through them
bind 'TAB':menu-complete
# Display a list of the matching files
bind "set show-all-if-ambiguous on"
# Perform partial completion on the first Tab press,
# only start cycling full results on the second Tab press
bind "set menu-complete-display-prefix on"
chsh
कार्यक्रम आप अपने डिफ़ॉल्ट खोल बदल देंगे। यह निष्पादन योग्य के लिए पूर्ण पथ चाहेगा, इसलिए यदि आपका शेल है, fish
तो यह चाहेगा कि आप टाइप करने पर दिए गए आउटपुट प्रदान कर सकें which fish
।
आपको " Shell:
" से शुरू होने वाली रेखा दिखाई देगी । यदि आपने इसे कभी संपादित नहीं किया है, तो यह सबसे अधिक संभावना है " Shell: /bin/bash
"। उस /bin/bash
पथ को अपने इच्छित शेल से बदलें ।
मैक ओएसएक्स (सिएरा) की ताजा स्थापना पर मेरे लिए यह काम:
sudo chown $(whoami) /etc/shells
sudo echo /usr/local/bin/fish >> /etc/shells
chsh -s /usr/local/bin/fish
sudo chown root /etc/shells
heimdall:~ leeg$ dscl
Entering interactive mode... (type "help" for commands)
> cd /Local/Default/Users/
/Local/Default/Users > read <<YOUR_USER>>
[...]
UserShell: /bin/bash
/Local/Default/Users >
बस उस मान को बदलें (राइट कमांड के साथ dscl
)।
मैक पर अपने डिफ़ॉल्ट शेल को बदलने के लिए निम्नलिखित चलाएँ:
chsh -s <name-of-shell>
आपके द्वारा चुने जा सकने वाले गोले की सूची इस प्रकार है:
इसलिए यदि आप / bin / zsh शेल से बदलना चाहते हैं, तो आपकी कमांड इस तरह दिखाई देगी:
chsh -s /bin/zsh
आप चलाकर अपने सिस्टम पर सभी उपलब्ध गोले देख सकते हैं:
cat /etc/shells