मैं मछली को डिफ़ॉल्ट शेल के रूप में कैसे सेट करूं?


110

क्या उबंटू नेटबुक रीमिक्स में डिफ़ॉल्ट शेल के रूप में मछली सेट करने का एक तरीका है? मैं अपने .bashrc में मछली चलाने के लिए डालता हूं, जो ठीक काम करता है, लेकिन उबंटू इसे मछली को बैश के अंदर चलाने के रूप में पहचानता है, जिसका अर्थ है कि जब मैं खोल को बंद करने की कोशिश करता हूं तो यह मुझे चेतावनी देता है कि एक कार्य अभी भी चल रहा है।

यह एक नए एप्लिकेशन के रूप में पॉप अप नहीं होता है, इसलिए मैं इसे सामान्य ऐप की तरह अपने बार में पिन नहीं कर सकता।


जवाबों:


151

आप चलकर मछली को अपने डिफ़ॉल्ट शेल के रूप में सेट कर सकते हैं

chsh -s `which fish`

किसी अन्य उपयोगकर्ता के लिए ऐसा करने के लिए, केवल कमांड के अंत में उपयोगकर्ता नाम जोड़ें, और उपयोग करें sudo

फिर लॉग आउट करें और वापस अंदर जाएं।

(इसे वापस सेट करने के लिए bash, आपको इस तरह से मछली सिंटैक्स का उपयोग करने की आवश्यकता है chsh -s (which bash))


3
यह मेरे लिए काम नहीं करता है। यह एक त्रुटि नहीं देता है, लेकिन यह सिर्फ काम नहीं करता है, भले ही मैं सिर्फ एक नया टैब खोलूं। कोई विचार?
3

16
आपको लॉग आउट और बैक-इन करना पड़ सकता है - मैंने इसे एक साफ वर्चुअल मशीन पर आज़माया और यह काम कर गया।
अंजिच

1
आप इसे वापस कैसे सेट करते हैं?
knutole

7
गलती से इस कमांड को न चलाएं sudoया इसके बजाय आप रूट शेल को बदल देंगे।
स्टीफन निदिज़ेल्स्की

2
या chsh -s (which fish)अंदर की मछली से।
13

30
usermod -s /usr/bin/fish username

हालांकि जड़ के रूप में चलाया जाना चाहिए।

यह निर्दिष्ट उपयोगकर्ता के लिए शेल को स्थायी रूप से बदल देगा।


1
मुझे पता है कि यह उबंटू नहीं है, लेकिन मैं टिप्पणी करना चाहता था: मैं सेंटोस पर था, और मुझे Authentication Failedएक गैर-रूट उपयोगकर्ता के साथ शेल को बदलने की कोशिश करने में त्रुटि हो रही थी और बड़े पैमाने पर खोज करने और इसे पता लगाने की कोशिश करने के बाद, यह एकमात्र चीज थी वह काम किया। धन्यवाद!
CWSpear

हाँ यह सबसे यूनिक्स स्वादों पर काम करेगा जिसमें एक शेल के लिए खरपतवार और मछली है, या जो भी स्वाद आप चाहते हैं उसके लिए शेल को बदल दें
स्वीटफा

मैंने ऐसा किया और अब टर्मिनल शुरू नहीं हुआ है। मुझे "इस टर्मिनल के लिए बच्चे की प्रक्रिया बनाने में त्रुटि हुई", "बाल प्रक्रिया को निष्पादित करने में विफल" / usr / bin / fish "(इनपुट / आउटपुट त्रुटि)"। मैं इसे पूर्ववत कैसे कर सकता हूं?
पोटकाटो

एक ही कमांड को रूट के रूप में जारी करें लेकिन शेल के रूप में मछली के बजाय बैश का उपयोग करें।
मीठा 10

21

मैंने बस fishअपने अंत के लिए लाइन जोड़ी .bashrc


1
यह सबसे सरल और सबसे अच्छा समाधान है, IMO;)
बेन मार्टन

9
क्षमा करें, लेकिन यह कुशल नहीं है। :) यह आपके मछली के गोले को लोड करेगा लेकिन आपकी बैश रनिंग के ऊपर।
एम। जुनैद सलात

1
बैश को कुशल होने की आवश्यकता क्यों है? @ M.JunaidSalaat
codenamejames

पहली नज़र से यह एक गंदे हैक की तरह लगता है, लेकिन मछली के साथ मेरे पीसी का उपयोग करने के कुछ समय बाद, मैं इसे हल करने के लिए वापस आया। कुछ प्रोग्राम यह मानते हैं कि आप बैश का उपयोग कर रहे हैं और मछली पर बैश सिंटैक्स का उपयोग करने के कारण दुर्घटनाग्रस्त हो जाएंगे। अब तक मुझे i3wm और matlab में ऐसी समस्याओं का सामना करना पड़ा।
नहेल

@ कॉडेनमेजम्स: यह नहीं है कि बैश को कुशल होने की जरूरत है, या यह कि कुछ मिलीसेकंड मायने रखते हैं, लेकिन यह कुछ भी नहीं खोने का मामला है, तो यह सही क्यों नहीं है? खासकर यहां जहां हम दूसरे लोगों को सलाह दे रहे हैं। हमें बेहतर पता होना चाहिए
सूजन

13

मैं मानता हूं chshकि सही उत्तर है। हालाँकि:

यदि आप चलाते हैं chshऔर त्रुटि मिलती है

/usr/local/bin/fish: non-standard shell

बस मछली द्विआधारी स्थान को जोड़ने के लिए /etc/shells

यहां मिला ।


यह macOS Mojave पर करना आवश्यक है।
डोडेकर्क्ट

2

में /etc/shells, जोड़ें /usr/local/bin/fish:

# List of acceptable shells for chpass(1).
# Ftpd will not allow users to connect who are not using
# one of these shells.

/bin/bash
/bin/csh
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh
/usr/local/bin/fish

तब chsh -s /usr/local/bin/fish

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