Mac OS Xのログインシェルをbashからzshに変更する方法は?


90

Mac OS Xのログインシェルをからに変更しようとしbashていzshます。Mac OS X Leopardでも可能だと思いますが、OS X Lionの場合は方法がわかりません。Loginシェルをbashから別のものに変更できることを本当に願っています。どこを探すべきか正確にはわかりません。


シェルをzshに変更した後、zshを手動で起動する必要がありました。ログアウトしても解決しませんでした。次に、zshを最上位のログインシェルに変更しました。ログアウトして、そこにありました。

1
それ以外の場合は、.bashrcをいつでも変更してzshを見つけて実行することができます。 if [ -x /usr/local/bin/zsh ] ; then exec /usr/local/bin/zsh fi。ヒント、シェルスタートアップスクリプトを変更するときは、必ずシェルを実行し続け、別のウィンドウで新しいシェルを起動してください。壊れた場合でも、簡単に修正できます。
ダンプリッツ

回答:


101

次のコマンドでユーザーシェルを変更できます。

chsh -s /bin/zsh

注:非標準シェル用に変更するには、そのパスが/etc/shellsファイルに追加されていることを確認してください。


4
Homebrewでzshの新しいバージョンをインストールしました/usr/local/bin/zsh。残念ながら、chshはこれを許可していませんchsh: /usr/local/bin/zsh: non-standard shell。ダニエルベックの答えは、この場合に適したソリューションです。
adam_0

43
非標準のシェルで問題が発生している場合は、追加/usr/local/bin/zsh/etc/shellsて問題を解決できるはずです。
マイクマイヤーズ

13
自作のzshインストール情報では、実際に/ etc / shellsに追加することを推奨しています ==> Caveats To use this build of Zsh as your login shell, add it to /etc/shells.
ジョージ

時々動作しません。@フランクの答えは、しかし、それを保証
oliverbarnes

1
@Awesome_girlデフォルトで/etc/shellsは、root(スーパーユーザー)が所有し、書き込みのみが可能です。たとえば、を使用sudo vi /etc/shellsしてsudos uper u ser doviエディタを実行し、編集します/etc/shells。システムでテストしたところ、システム整合性保護によって保護されていないことを確認したため、フープをジャンプしてSIPを無効にすることなくルートとして編集できるはずです。
Spiff

54

おもしろいことに、質問でリンクしたのと同じ方法が、Sierra(10.12)を介してOS X Lion でも機能します。唯一の違いは、設定ペインの名前が「アカウント」ではなく「ユーザーとグループ」になっていることです。

  1. 「システム環境設定」→「ユーザーとグループ」を開きます。
  2. ロックアイコンがすでにロック解除されていない限り、ロックアイコンをクリックして自分自身を認証します。
  3. ユーザー名のリストでユーザーをコンテキストクリックします(クリックしControlながらキーを押すか、右利きの2ボタンマウスを右クリックします)。
  4. コンテキストメニューで、[詳細オプション...]を選択します。
  5. 表示されるシートで「ログインシェル」を選択します。

[詳細オプション]画面の上部にあるメモには、変更を有効にするために再起動する必要があると書かれていますが、実際にはログアウトして再度ログインする必要があります。

ここに画像の説明を入力してください


1
これがMountain Lionで動作すること、および自分でインストールする(またはHomebrewをインストールする)可能性のある「非標準シェル」で動作することを確認しました。
adam_0

2
10.10 Yosemiteでまだ動作していることを確認しました。
ecnepsnai 14

4
ユーザー名を右クリックして、「高度なオプション」を含むメニューを表示します。見つけるのに数分かかりました。
pdwalker 14

1
答えを得る前に、誰かにすべての情報を収集させるためにオフサイトに行くように強制するのはなぜですか?したがって、他の誰かが答えがここではなくここにあるという同じ仮定をした場合のコメント。
pdwalker 14

1
@jvriesem実際、そうです。私の推測では、手順2スキップです
ダニエル・ベック

11

または:

sudo dscl . change /users/$USER UserShell /bin/bash $(which zsh)

3
これが質問に答える理由を説明できますか?
-ChrisF

これを実行するようにしてください brew install zsh
mmell 14年

3
また、homebrewを介してインストールされたzshのパスが異なることに注意してください。私はそれを次のように行います。sudo dscl . change /users/$USER UserShell /bin/bash $(which zsh)
metakermit

1
警告:これにより、最初にzshのパスを確認せずにコピー/貼り付けすると、シェルが破損します。代わりにmetakermitが言ったことをしてください。
基数16

1

macOS Sierraで同様の問題が発生する場合、次のコマンドで問題なくシェルを変更できます。

chpass -s /usr/local/bin/zsh

1
これにより別の回答が複製され、新しいコンテンツは追加されません。実際に何か貢献できるものがない限り、回答を投稿しないでください。「chfnとchshはchpassの同義語です。」
デビッドポスティル
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.