如何让Cygwin xterm使用bash而不是sh?

时间:2014-02-20 10:46:33

标签: cygwin

在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

5 个答案:

答案 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。