Ale*_*lex 23 shell cygwin fish
我已经使用Cygwin很长一段时间了.我现在想切换到bash的鱼.每个人都说你应该使用chsh -s /usr/bin/fish,但由于某种原因,chsh对我不起作用.尝试修改我的Cygwin.bat文件也不起作用,也没有更改我的/etc/passwd文件.
我真的不明白发生了什么.有人可以帮帮我吗?
P D*_*ddy 30
而不是创建一个passwd文件,其中的Cygwin 建议对1,你可以编辑/etc/nsswitch.conf中.添加或编辑以下行:
db_shell: /usr/bin/fish
此方法的向下/向上是,如果您有多个用户,则此更改会影响所有用户.向上/向上是它很简单.唯一的问题是你必须重新启动Cygwin.
如果您不使用mkpasswd此更改后,它会使用新的默认外壳为被允许登录的所有用户.
1该mkpasswd文件说的:
除非确实需要,否则不要使用此命令生成本地/ etc/passwd文件.有关详细信息,请参阅Cygwin用户指南.
我无法在用户指南中找到任何可靠的推理,除了提及如果您的用户和组发生变化,您将不得不重新生成/etc/passwd和/etc/group文件,我认为这是一个不错的理由.我可以说新手的过程有点容易出错.
Kir*_*hou 15
我随机遇到同样的问题,现在我为你提供我的解决方案.
0-打开cygwin通过mintty.exe
1-手动构建passwd文件(mkpasswd)
$mkpasswd > /etc/passwd
Run Code Online (Sandbox Code Playgroud)
2-更改passwd文件中的默认shell
$vim /etc/passwd
user:*:1976XX:1971XX:U-user\user,S-1-5-21-XXXX:/home/user:/bin/fish
Run Code Online (Sandbox Code Playgroud)
3-重启 mintty.exe
小智 5
我不确定这个解决方案有多“正确”,但我只是添加/usr/bin/zsh; exit到文件的底部.bashrc。您可以替换/usr/bin/zsh您选择的 shell 的路径。到目前为止似乎工作得很好。
SuperUser的答案更简单.在Windows中设置SHELL环境变量.将它设置为您首选的shell(例如/bin/tcsh),新启动的shell应该使用它.
要设置环境变量: