web-dev-qa-db-ja.com

Mac OS Xで(iTermで)ログインシェルとしてzshを実行する方法は?

Mac OS Xでzshがログインシェルとして設定されている場合、iTermによって起動されると、zshは「-zsh」(「-」がarg [0])の最初の文字。ログインシェルとして開始する必要があることを意味します。

したがって、ログインシェルをbashに設定すると、bashは$ 0でこの最初の「-」を認識し、ログインシェルとして実行しますが、zshはそうではないようですが、そうではないようです。

Zshにarg [0]の「-」を認識させるか、iTermに--loginコマンドライン引数を指定してシェルを実行させる方法はありますか?

145
Ivan Tarasov
chsh -s $(which zsh)

パスワードの入力を求められますが、設定を更新すると、そのマシンで開始する新しいiTerm/Terminalセッションはデフォルトでzshになります。

220
Damien Wilson

ITermで->設定->プロファイルタブ->一般セクションコマンドを/ bin/zsh --loginに設定

/bin/zsh --login

100
Harold Putman

Users&GroupsSystem Preferences->ユーザーを選択-> ロックをクリックして変更を行います(左下隅)->現在のユーザーを右クリック高度なオプション...-> ログインシェル:/bin/zshおよびOK

57
Arunkumar

起動時にシェルを変更するコマンドはchsh -s <path_to_Shell>です。 Mac OS Xのデフォルトシェルはbinディレクトリ内にインストールされるため、デフォルトのzshに変更する場合は、次を使用します。

chsh -s /bin/zsh

別のバージョンのzshを使用している場合、非標準のシェルメッセージを回避するために、そのバージョンを/etc/shellsに追加する必要がある場合があります。たとえば、自家製のバージョンのzshが必要な場合は、前述のファイルに/usr/local/bin/zshを追加する必要があります。これは、1つのコマンドSudo sh -c "echo '/usr/local/bin/zsh' >> /etc/shells"で実行できます。

chsh -s /usr/local/bin/zsh

または、1つのコマンドですべてを実行する場合は、zshが既にインストールされている場合、これをコピーして貼り付けてください。

Sudo sh -c "echo '/usr/local/bin/zsh' >> /etc/shells" && chsh -s /usr/local/bin/zsh
20
hasanain

アカウント設定 のシェルエントリを編集しようとしましたか?.

(アカウント設定)に移動し、ロックを解除して、詳細設定ダイアログのユーザーアカウントを右クリックします。シェルは/ bin/zshである必要があり、その呼び出しを適切に編集できます(つまり--login引数を追加します)。

19
Brian Agnew

私のために働いた解決策は、タイトルのこの投稿で概説されています: OS Xデフォルトの代わりにHomebrew zshを使用

解決策は、ターミナルで次のコマンドを実行することでした

Sudo dscl . -create /Users/$USER UserShell /usr/local/bin/zsh

次に、パスワードと出来上がりを入力する必要があります。

0
Jonny Brooks

loginユーティリティを使用して、ログインシェルを作成します。ログインするユーザーのユーザー名がAliceであり、zshが/opt/local/bin/zsh(たとえば、MacPortsを介してインストールされた最新バージョン)にインストールされていると仮定します。 iTerm 2で、[設定]、[プロファイル]に移動し、設定するプロファイルを選択して、Commandを入力します。

login -pfq Alice /opt/local/bin/zsh

オプションの詳細については、man loginを参照してください。

0
Robin Klose