Cygwinでデフォルトのシェルをbashからzshに変更しようとしています。
chsh
はcygwinでは使用できませんでは、デフォルトのシェルを他にどのように変更できますか?
答えは、Cygwinの起動方法によって異なります。
Cygwin.batでCygwinを起動する場合は、/Cygwin.bat
の最後の行を変更します(通常はC:\cygwin\
またはC:\cygwin64\
)。
minttyでCygwinを起動する場合は、シェルをパラメーターとして追加します:mintty /usr/bin/zsh -
mintty.exe
を直接実行するか、スタートメニューまたはデスクトップ(mintty.exeへのショートカット)からCygwinターミナルを実行する場合、Windowsのシェル環境変数を/usr/bin/zsh
に設定できます。
Windows 7の場合:
残りは自明です。
Stack Overflow の私の回答からコピー:
Cygwinが推奨するpasswdファイルを作成する代わりに /1、 /etc/nsswitch.conf を編集できます。次の行を追加または編集します。
db_Shell:/usr/bin/fish
この方法の欠点は、複数のユーザーがいる場合、この変更がすべてのユーザーに影響することです。アップ/アップの側面は、それが完全に単純であることです。唯一の問題は、Cygwinを再起動する必要があることです。
この変更後にdomkpasswdを使用すると、ログオンが許可されているすべてのユーザーに新しいデフォルトのシェルが使用されます。
1 mkpasswdのドキュメントには次のように書かれています:
本当に必要でない限り、このコマンドを使用してローカルの/ etc/passwdファイルを生成しないでください。詳細については、Cygwinのユーザーガイドを参照してください。
ユーザーズガイド では、ユーザーが/ etc/passwdファイルと/ etc/groupファイルを再生成する必要があるという言及以外に、確かな理由を見つけることができませんとグループが変化する、それは十分な理由だと思います。このプロセスは、初心者には多少エラーが発生しやすいと言えます。
これはハックです。これを~/.bash_profile
の最初の行に入力してください:
exec zsh