web-dev-qa-db-ja.com

Mac OS Xでシェルを設定するにはどうすればよいですか?

ターミナルの設定で「シェルで開く」を設定できることはわかっていますが、システム全体でこれを設定する方法があるかどうか知りたいです(一部のUnixで/ etc/passwdを更新するのと同様)。

21
nall

次のようにchshユーティリティを使用します。

chsh -s bash

Appleは、Mac OS Xのchshを、たとえばLinuxのchshと比べて少し変更しました。 chsh Mac OS X Man Page でそれらについて読むことができます。

24
John T

/etc/shellsにリストされているシェルへの変更のみが許可されることに注意してください。これは通常は問題ありませんが、Bash 4を(Homebrew、MacPortsから、または独自にコンパイルして)インストールする場合は、/etc/shellsに行を追加する必要があります。 (私は数週間前にこれに遭遇し、それが他の人が知るのに役立つかもしれないと考えました...)

編集Tim Smith は、chshをrootとしてSudoを介して実行すると、/etc/shellsの制限を回避できることを指摘しています。例えば。 Sudo chsh -s /usr/local/bin/my_Shell $USERmy_Shellにリストされていなくても、/etc/shellsは機能します。私は/etc/shellsを編集することを好みますが、最終的には、通常のユーザーとして/etc/shellsを編集することができないため、どちらの方法でもSudoの1つの使用法です。したがって、おそらく6の1つ、他の6ダース。

19
Telemachus

Mac OS X GUIを使用してこれを行うには:

  1. 「システム環境設定」を開きます。
  2. 「アカウント」/「ユーザーとグループ」設定ペインを開き、必要に応じて設定ペインのロックを解除します。
  3. シェルを変更するユーザーで、 control+ユーザーをクリックまたは右クリックして、[詳細オプション]を選択します。
  4. 「ログインシェル:」と表示されている場所で、これを使用するシェルに変更します。

なお、この場所は、ターミナルに不快な場合に、ホームディレクトリ、UUID、ユーザーID、グループID、ショートネームを変更できる場所です。同様の質問 ここにあります もあります。

10
Chealion

上記の回答を使用すると、エラーメッセージが表示されました。

$ chsh -s zsh
Changing Shell for myuser.
Password for myuser:
chsh: zsh: non-standard Shell

これを回避するには:

Sudo chsh -s zsh $(whoami)

サブシェルのwhoamiは、ルートではなく、ユーザーのシェルを変更することです。

あなたが自作を使用しているならもう一つ。 rootとしてコマンドを実行すると(Sudoを使用)、zshは/ bin/zshを指します。これはOSXに付属しており、古くなっている可能性があります。 homebrew経由でインストールされた最新のものを使用するには、以下を使用します。

Sudo chsh -s $(which zsh) $(whoami)
5
phil pirozhkov