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


21

मैं बैश संस्करण 3.x के साथ El Capitan 10.11.3 चला रहा हूं इसलिए मैंने बैश को अपडेट करने का निर्णय लिया:

brew install bash

शराब की भठ्ठी के तहत नए बैश को / usr / लोकल / सेलर / बैश में रखता है:

brew info bash

bash: stable 4.3.42 (bottled), devel 4.4-beta, HEAD
Bourne-Again SHell, a UNIX command interpreter
https://www.gnu.org/software/bash/
/usr/local/Cellar/bash/4.3.42 (59 files, 7.3M) *
Poured from bottle
From: https://github.com/Homebrew/homebrew/blob/master/Library/Formula/bash.rb
==> Dependencies
Required: readline 
==> Caveats
In order to use this build of bash as your login shell,
it must be added to /etc/shells.

जैसा कि आप का उल्लेख देख सकते हैं कि मुझे /etc/shellsनए बैश का उपयोग करने के लिए अपडेट करने की आवश्यकता है । लेकिन वर्तमान शेल को बंद / फिर से खोलने के बाद bash --versionमुझे बताता है कि अब मैं पहले से ही 4.3.42 का उपयोग कर रहा हूं, इसलिए मुझे आश्चर्य है कि हुड के तहत क्या हुआ कि नया संस्करण स्वचालित रूप से उपयोग किया जाता है?


आपने वर्तमान शेल को कैसे बंद / फिर से खोल दिया?
14:15 बजे user151019

@ मर्क टर्मिनल आइकन पर राइट क्लिक करें -> छोड़ें, टर्मिनल आइकन पर बाएं क्लिक
माइक

जवाबों:


8

आप अपने शेल को बदलने के लिए chsh कमांड का उपयोग कर सकते हैं। आपके मामले में, काढ़ा उत्पन्न बैश के साथ, आपको इसे सेट करना चाहिए /usr/local/bin/bash। इसमें भी आपको लगाना चाहिए /etc/shells

जैसा कि आपका प्रश्न echo $BASH_VERSIONआपको वर्तमान शेल का संस्करण बताएगा । bash --versionआपको अपने पहले बैश के संस्करण को बताता है $PATH। तो जिस तरह से आप संस्करण को देख रहे थे वह आपको उस संस्करण को नहीं बता रहा था जिसे आप चला रहे थे।


ठीक है मुझे लगता है कि मैं समझता हूं। लेकिन इसका मतलब यह नहीं है कि काढ़ा मेरे रास्ते को एक पुट / usr / लोकल / बैश में बदल देता है? या PATH में / usr / स्थानीय / बैश डिफ़ॉल्ट है?
माइक

ओके sudo stat -x /etc/pathsमुझे बताता है कि यह काढ़ा द्वारा संशोधित नहीं किया गया था (आपको वैसे भी सुडो की आवश्यकता होगी)। तो यह डिफ़ॉल्ट होना चाहिए। और मुझे लगता है कि आप सही हैं, आपके कदम करने के बाद $ BASH_VERSION अब 4.3.42 वापस करता है। धन्यवाद Merm!
माइक

26
brew install bash
sudo nano /etc/shells

# add to last line
/usr/local/bin/bash

# save and quit via kntrl + x

अब, आपको कुछ इस तरह देखने की जरूरत है:

cat /etc/shells

# 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/bash  # we added this!

अब अपना डिफ़ॉल्ट शेल सेट करें:

chsh -s /usr/local/bin/bash $USER # this will set for the current user.

अब टर्मिनल से बाहर निकलें और इसे फिर से खोलें! जांचें कि क्या सब ठीक है?

echo $BASH_VERSION # 4.3.42(1)-release

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