一个用户帐户的 shell 在 passwd 文件中定义为 bash。我想将此用户帐户的 shell 更改为 tcsh 以用于非交互式作业(如 ssh ),但将交互式 shell 保留为 bash。有什么方法可以在系统上进行配置吗?
答案1
如果您希望登录 shell 使用一个 shell,而非登录 shell 使用另一个 shell,您可以通过将用户的默认 shell(在 /etc/passwd 中)定义为要用作非登录 shell(在您的情况下为 tcsh)的 shell,然后在打开登录 shell 时切换到不同的 shell 来实现。
对于您来说,可以通过将其添加到用户主目录中名为“.profile”的文件来实现(如果该文件尚不存在,则创建它):
# Switch to bash for login shells
if [ ! -n "$BASH_VERSION" ]
then
exec /bin/bash -l
fi