Mac OS Xでzshがログインシェルとして設定されている場合、iTermによって起動されると、zshは「-zsh」(「-」がarg [0])の最初の文字。ログインシェルとして開始する必要があることを意味します。
したがって、ログインシェルをbashに設定すると、bashは$ 0でこの最初の「-」を認識し、ログインシェルとして実行しますが、zshはそうではないようですが、そうではないようです。
Zshにarg [0]の「-」を認識させるか、iTermに--loginコマンドライン引数を指定してシェルを実行させる方法はありますか?
chsh -s $(which zsh)
パスワードの入力を求められますが、設定を更新すると、そのマシンで開始する新しいiTerm/Terminalセッションはデフォルトでzshになります。
ITermで->設定->プロファイルタブ->一般セクションコマンドを/ bin/zsh --loginに設定
Users&GroupsSystem Preferences->ユーザーを選択-> ロックをクリックして変更を行います(左下隅)->現在のユーザーを右クリック高度なオプション...-> ログインシェル:/bin/zshおよびOK
起動時にシェルを変更するコマンドは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
アカウント設定 のシェルエントリを編集しようとしましたか?.
(アカウント設定)に移動し、ロックを解除して、詳細設定ダイアログのユーザーアカウントを右クリックします。シェルは/ bin/zshである必要があり、その呼び出しを適切に編集できます(つまり--login引数を追加します)。
私のために働いた解決策は、タイトルのこの投稿で概説されています: OS Xデフォルトの代わりにHomebrew zshを使用 。
解決策は、ターミナルで次のコマンドを実行することでした
Sudo dscl . -create /Users/$USER UserShell /usr/local/bin/zsh
次に、パスワードと出来上がりを入力する必要があります。
login
ユーティリティを使用して、ログインシェルを作成します。ログインするユーザーのユーザー名がAliceであり、zshが/opt/local/bin/zsh
(たとえば、MacPortsを介してインストールされた最新バージョン)にインストールされていると仮定します。 iTerm 2で、[設定]、[プロファイル]に移動し、設定するプロファイルを選択して、Commandを入力します。
login -pfq Alice /opt/local/bin/zsh
オプションの詳細については、man login
を参照してください。