Macでデフォルトのシェルを設定するにはどうすればよいですか?


190

端末を起動するたびに魚を入力し直すのは好きではありません。私が欲しいfishデフォルトでオンに。Macでフィッシュシェルをデフォルトのシェルとして設定するにはどうすればよいですか?

回答:


31

これらは、MacOS Sierra 10.12.5(16F73)と、おそらく他のいくつかの最新および今後のバージョンのMacOSに適用されます。

  1. chshデフォルトのシェルを変更するには不十分です。端末が開いているときにCommand+ キーを押して,、[シェルで開く]オプションを[デフォルトのログインシェル]に変更してください。

  2. bashの場合は、実行echo $BASH_VERSIONして、目的のバージョンのbash を実行していることを確認してください。bash --version正しい情報を提供しません。


3
この回答は受け入れられたものであるため、おそらく別の回答の補遺となるのではなく、補遺を含める完全な回答にすることができます。
Jason R. Coombs

これは現在ドキュメントで回答されいます。
reergymerej 2018

@ JasonR.Coombs完了。
Tushar Vazirani '11

1
アップデート:私たちは、今ではデフォルトのシェルを設定することができますPreferencesTerminal.app。Pankajによるこの回答を参照してください。
バジルブルク

設定のキーボードショートカットについては触れました。
Tushar Vazirani

241

1. sudo nano / etc / shells enter image description here

2.シェルのリストに/ usr / local / bin / fishを追加します enter image description here

3. chsh -s / usr / local / bin / fish


2
そしてShell open with: Default login shell、Terminal.appの設定を変更する必要があります
Tikhonov Alexander

77

chshを使用してユーザーのシェルを変更できます。

たとえば、次のコードを実行して、シェルをZshに変更します。

chsh -s /bin/zsh

マンページとLorinによって説明されているように、OSでシェルが認識されていない場合は、既知のリストに追加する必要があります/etc/shells


13
試して得たchsh: /usr/local/bin/fish: non-standard shell ソリューションは、以下の@ lorin-hochstein回答で説明されているように/ etc / shellsに追加することでした
lmsurprenant 2013年

dbright @ PowerMac:〜$ chsh -s / Users / dbright / sys / bin / bash dbrightのシェルを変更します。dbrightのパスワード:chsh:/ Users / dbright / sys / bin / bash:非標準のシェルdbright @ PowerMac:〜$ ls -l / etc / shells -rw-r--r-- 1ルートホイール179 Sep 23 2007 / etc / shells
明るく

ええと、私は最近、(とは-sいえ)シンプルなユーザーとして機能するchshを試しました。すぐに再試行します。
Aif

73

ターミナルから:

  1. Fishを/etc/shellsに追加します。これには管理者パスワードが必要です。

    sudo echo /usr/local/bin/fish >> /etc/shells
    
  2. Fishを次のコマンドでデフォルトのシェルにしますchsh

    chsh -s /usr/local/bin/fish
    

システム環境設定から:

  1. ユーザーとグループ→現在のユーザーをCtrlキーを押しながらクリック→詳細オプション...

  2. ログインシェルを /usr/local/bin/fish

    ログインシェル

  3. [OK]を押してログアウトし、再度ログインします


8
ステップ1を少し調整する必要がありましたsudo sh -c 'echo /usr/local/bin/fish >> /etc/shells'
。-–パープルトニック

同じことを@purpletonicで行うもう1つの方法echo /usr/local/bin/fish | sudo tee -a /etc/shells
mroach

20

これを行う別の方法を次に示します。

MacPortsでインストールしたとすると、次のように実行できます。

sudo port install fish

シェルはにあり/opt/local/bin/fishます。

これが有効なシェルであることをOSXに伝える必要があります。これを行うには、このパスを/etc/shellsファイルの最後に追加します。

これが完了したら、システム環境設定->アカウントに移動してシェルを変更できます。ロックをクリックして変更を許可します。アカウントを右クリックして、[詳細オプション]を選択します。[ログインシェル]フィールドに、魚へのパスを追加します。


ありがとう!これはうまく機能し、どこでも魚を私のデフォルトの端末にしました。他の回答の1つと同じようにターミナルで変更すると、ウィンドウを閉じるたびにターミナルでプロンプトが表示され、chshが機能しませんでした。
jasongregori

12

私にとってうまくいった唯一のことは、これらすべての方法の組み合わせでした。

  1. まず、魚を/etc/shellsファイルに追加する必要がありました

  2. それから私は走った chsh -s /usr/local/bin/fish

  3. 最後に、「Command+」,と入力/usr/local/bin/fishして、デフォルトパスに追加しました

私が3つのことすべてを実行した後でのみ、新しいターミナルウィンドウのデフォルトとしてfishがポップアップし始めました。



8

Terminal.app > Preferences> General> Shells open with:>/bin/fish

  1. ターミナルを開いてcommand+ を押す,(カンマ)。これにより、設定ウィンドウが開きます。
  2. 最初のタブは「一般」です。
  3. 「シェルを開く」設定を見つけて、シェルへの完全なパスを必要とする2番目のオプションを選択します。
  4. 魚のコマンドへのリンクを貼り付けます/usr/local/bin/fish。通常はです。

zshデフォルトとして設定されているこのスクリーンショットを参照してください。

Terminal.app設定に<code> / bin / zsh </ code>を入力するスクリーンショット

私はmacOS Sierraを使用してます。macOS Mojaveでも動作します。


2
やっと!非sudoユーザーのために機能するソリューション!
EBEアイザック

7

macOS Mojaveでは、次のことを行う必要がありました(例としてzshを使用)。

brew install zsh
sudo sh -c "echo $(which zsh) >> /etc/shells"
chsh -s $(which zsh)

注:この正確な方法を使用して、bashの最新バージョンを取得することもできます。stackoverflow.com/a/55011144/117471私は自分でほぼ同じコードを思いつきました。
Bruno Bronosky

1
インストールする必要はありませんzsh。macOS Mojaveにすでに存在します。モハベにバンドルされ、カタリナではデフォルト。
バジルブルク

5

最新のmacOS(Mojaveでテスト済み)で最新バージョンのbashを取得する方法。

brew install bash
which bash | sudo tee -a /etc/shells
chsh -s $(which bash)

これで、bash> = 4でのみ使用できるvimスタイルのタブ補完取得する準備ができました(現在のバージョン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"

4

chshプログラムは、あなたのデフォルトのシェルを変更できます。それは実行可能ファイルへのフルパスを必要とするので、もしあなたのシェルがそうなら、あなたfishがタイプしwhich fishたときに与えられた出力を提供することをあなたは望んでいるでしょう。

Shell:」で始まる行が表示されます。編集したことがない場合は、おそらく「Shell: /bin/bash」と表示されます。その/bin/bashパスを目的のシェルへのパスに置き換えます。


4

ターミナルで、Command+ を使用してターミナルの設定を開き,ます。

[設定]タブで、テーマの1つを選択し、右側のシェルタブを選択します。

autostartコマンドを設定できfishます。


4

mac osx(sierra)の新規インストールでのこの作業:

  1. 現在のユーザーをシェルの所有者として定義する
sudo chown $(whoami) /etc/shells
  1. / etc / shellsに魚を追加する
sudo echo /usr/local/bin/fish >> /etc/shells
  1. chshでFishをデフォルトのシェルにする
chsh -s /usr/local/bin/fish
  1. シェルの所有者としてルートを再定義します
sudo chown root /etc/shells

2
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 >

その値を変更するだけです(のwriteコマンドを使用dscl)。


私が読んleegを実行したときに、私はこのエラーを取得:<dscl_cmd> DSエラー:-14136(eDSRecordNotFound)
レオ・レオポルド・ヘルツ준 영

1
はい。leegがあるからだ私のユーザー名あなたは、ありません:P

0

他の方法で問題が発生した場合は、Mac Mojaveで作業しましたが、通常は動作するはずです。

which fish

出力パスを「システム環境設定>ユーザーとグループ>右クリックユーザー、詳細オプション」に追加します。結果を「ログインシェル」に貼り付けます。


0

Macでデフォルトのシェルを変更するには、以下を実行します。

chsh -s <name-of-shell>

選択できるシェルのリストは次のとおりです。

  1. / bin / bash
  2. / bin / csh
  3. / bin / dash
  4. / bin / ksh
  5. / bin / sh
  6. / bin / tcsh
  7. / bin / zsh

したがって、から/ bin / zshシェルに変更する場合、コマンドは次のようになります。

chsh -s /bin/zsh

次のコマンドを実行すると、システムで使用可能なすべてのシェルを確認できます。

cat /etc/shells
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.