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


21

ターミナルの設定で「Shells open with」を設定できることは知っていますが、システム全体でこれを設定する方法があるかどうか興味があります(一部のUnixで/ etc / passwdを更新するのに似ています)。

回答:


24

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

chsh -s bash

Appleは、たとえばLinuxで見られるものchshと比較して、Mac OS Xで少し変わっていchshます。chsh Mac OS Xマニュアルページで彼らの記事を読むことができます。


そして、ここで、OSX固有のユーティリティでは複雑なものであると考えました。ありがとう。
ナル

@ジョン-うまく学んだ:)
アキラ

ええ、私は前回も答えを知っていました、私はちょうどそれにbeatられました!:(
ジョンT

19

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

編集ティムスミスは、あなたが経由でルートとして/etc/shells実行する場合、制限を回避できることを指摘している に記載されていなくても、たとえば動作します。私は編集することを好むが、最終的に、それは次のいずれかを使用だあなたが編集することはできませんので、いずれかの方法で、通常のユーザーとして。おそらく、1つのうち6つ、他の6つです。chshsudosudo chsh -s /usr/local/bin/my_shell $USERmy_shell/etc/shells/etc/shellssudo/etc/shells


変更/etc/shellsする必要がないのに、なぜ変更するのですか?正気のために、私はシステムファイルを同じに保つことを好みます。
ma11hew28

@MattDiPasquale「正気」とはどういう意味かわかりません。/etc/shells認識されたシェルを定義するシステム上のファイルです。認識されたシェルのリストにシェルを追加したいので、そのファイルを変更します。私にはかなり理にかなっているようです。
テレマコス

良い代替。方法は、何らかの理由でchshが動作しません。私はこれを得た ; chsh: bash: non-standard shell
RyBolt

@RyBolt正しい:理由はおそらく私が答えで言及したことでしょう。にchshリストされていないシェルを使用しようとしている場合、単独で使用することはできません/etc/shells
テレマコス

@Telemachus、デフォルトのMac OSXビルドに付属していた元のbashシェルに変更しようとしていました。たぶんそれは/etc/shells私には奇妙に思えません。
-RyBolt

10

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

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

注目すべきは、この場所は、ターミナルに不安がある場合に、ホームディレクトリ、UUID、ユーザーID、グループID、および短縮名を変更できる場所です。ここにも同様の質問があります


5

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

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

これを回避するには:

sudo chsh -s zsh $(whoami)

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

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

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