通过输入echo $0
,我知道我正在使用tcsh
Ubuntu 13.04 终端。但是无论使用chsh -s /bin/bash
还是直接输入bash
都无法将 bash 作为我的当前 shell。有趣的是,如果我输入sh
,那么我的 shell 将是sh
。最后我发现了一件更有趣的事情:每次我输入 后bash
,我输入ps
以查看变化,我发现我得到了两行:一个是新的 bash PID,另一个是新的 tcsh PID,这意味着每次我尝试使用 bash shell 后,系统都会立即自动将我的 shell 更改回 tcsh。我该如何解决这个问题?请帮帮我!谢谢!
答案1
通过使用echo $0
,您将获得正在运行的进程的名称、在命令行上调用的文件的名称、当前正在执行的命令的名称(参见特殊 shell 变量)。返回你当前所在 shell 的正确命令是:
echo $SHELL
这可能就是你困惑的地方。没错,更改默认 shell 的正确命令是:
chsh
最好不要使用任何参数来观察究竟发生了什么。
答案2
首先键入cat /etc/shells
以查看可用 shell 的列表,然后使用chsh
它来交互和更改 shell。如果您想从脚本中使用它,请使用chsh --shell SHELLNAME
。
我还建议您阅读/etc/login.defs
以了解您可以自定义的内容,这很有趣也很有用。祝
您有美好的一天。