在Windows 7上将cygwin更新为1.7.28。
以前启动X时,xterm会以bash打开。由于某种原因,它现在开放sh? 我需要进行哪些配置更改才能使bash再次成为默认shell? 不知道为什么会发生这种变化。
打开xterm的快捷方式与初始安装时的快捷方式相同。
C:\cygwin\bin\run.exe /usr/bin/bash.exe -l -c /usr/bin/startxwin.exe
但它仍然以默认shell设置为sh开始。 我不明白改变了什么。
我的passwd文件和以前一样。
看来一切都按标准快捷方式开始,但是X和xterm初创公司并没有采购/ etc / profile
答案 0 :(得分:4)
我已经有了/ etc / shells(从???升级到1.7.29),可能是新的升级,但仍然无法正常工作(xterm运行sh而不是bash)。更改了bash的权限以进行修复。
700改为755
chmod 755 /bin/bash
答案 1 :(得分:3)
xterm似乎需要/ etc / shells文件才能工作。添加包含以下内容的/ etc / shells文件:
# /etc/shells: valid login shells
/bin/csh
/bin/sh
/bin/bash
/bin/tcsh
/usr/bin/csh
/usr/bin/sh
/usr/bin/bash
/usr/bin/tcsh
克里斯
答案 2 :(得分:1)
运行以下命令将bash设置为默认shell。
set shell=C:/cygwin/bin/bash
注意路径C:/cygwin/bin/bash
可能会有所不同。
答案 3 :(得分:0)
(删除了关于/etc/passwd
的答案)
我在我的cygwin上尝试了你的命令并得到了相同的行为,即xterm加载了/bin/sh
。
但是,如果我只是直接运行startxwin.exe,我会得到一个载有/bin/bash
的xterm。
Dunno如果这适合你,但是,值得一试。
答案 4 :(得分:0)
我在启动sh时遇到了同样的问题,但是在遇到/ etc / shells问题之后管理了一个不同的解决方法
我还想摆脱startxwin.exe创建的默认white / bin / sh xterm。
事实证明,startxwin.exe来源是 .startxwinrc ,所以我做到了这一点:
# Launch prettier xterms with bash
. ./.profile
# Exit the cruddy white xterm launched by startxwin
exit
上面的点空间语法相当于" source"在bash中,但更独立于shell。