![据称更改 Cygwin 中默认 shell 的好方法对我来说不起作用。为什么?](https://linux22.com/image/1570833/%E6%8D%AE%E7%A7%B0%E6%9B%B4%E6%94%B9%20Cygwin%20%E4%B8%AD%E9%BB%98%E8%AE%A4%20shell%20%E7%9A%84%E5%A5%BD%E6%96%B9%E6%B3%95%E5%AF%B9%E6%88%91%E6%9D%A5%E8%AF%B4%E4%B8%8D%E8%B5%B7%E4%BD%9C%E7%94%A8%E3%80%82%E4%B8%BA%E4%BB%80%E4%B9%88%EF%BC%9F.png)
tcsh
我正在尝试让 Cygwin (CYGWIN_NT-6.1 / 2.11.1(0.329/5/3))作为 Windows 7 上的默认 shell启动。我读到这个问题并在那里找到答案,但对薄荷方法有一些问题这个特别的答案:
如果你使用以下命令启动 Cygwin薄荷味,然后将 shell 作为参数添加。
mintty /usr/bin/zsh -
事情是这样的:
- 使用尾随破折号来调用交互式 shell(?),使窗口闪烁并再次消失(无论我是否使用
-l
) mintty /bin/tcsh
如果没有尾随破折号或-l
,则会打开 Cygwin shell 窗口,但许多内置命令会导致“致命错误 - 检测到 cygwin 基础不匹配...”。我cygwin1.dll
按照错误消息的指示搜索并找到了旧版本(在 ConEmu/wsl 中),重命名了它,但无济于事 - 我一直收到相同的错误mintty /bin/tcsh -l
给出了最佳结果,但以 Windows %USERPROFILE% 的主目录开始。这意味着它还会绕过我的.tcshrc
cygwin 主目录 (<CygwinDir>/home/<account>
),但奇怪的是,它会从那里进行处理.aliases
。同样奇怪的是,上面的点 (mintty
没有尾随破折号或-l
) 从正确的 cygwin 主目录中开始。- 我也尝试
/etc/nsswitch.conf
按照不同答案的建议进行编辑,但这并没有什么区别。 - 按照引用问题的另一个答案的建议,将 Windows SHELL 环境变量设置为
/usr/bin/tcsh
,在从桌面快捷方式启动时确实有效,但我不认为这是“正确”的做法。当我从 Windows 命令行运行 mintty 时,我收到一条失败消息"Failed to run '/usr/bin/tcsh': No such file or directory"
。
为什么这个所谓的好答案对我不起作用?有人能告诉我如何正确地做到这一点吗?此外,有人能解释尾随破折号、致命错误、nsswitch 或 SHELL var 的奥秘吗?
答案1
要从 mintty 启动 tc shell,命令是:
mintty /bin/tcsh -l
启动默认登录 shell,通常是 bash
mintty -
格式mintty /usr/bin/zsh -
错误