我在 ubuntu 服务器上工作,我没有 root 权限。默认外壳为dash
。 当我尝试更改默认外壳时,它告诉我它没有权限。
user@host:~$ chsh -s "which zsh"
You may not change the shell for 'binjie'.
权限问题无法解决,所以我每次登录时都会转向~/.profile
运行 bash。当我将echo something
添加到~/.profile
时,它被执行。但是当我exec -c bash
添加到~/.profile
时,通过SSH登录后,shell丢失了响应。单击Ctrl-C
后,连接已关闭。我很困惑。谁能帮忙?
好的,我在破折号手册中找到了解决方案:
登录 shell 首先从文件/etc/profile 和 .profile 中读取命令(如果存在(。如果环境变量 ENV 是在进入交互式 shell 时设置的,或者在登录 shell 的 .profile 中设置的,则 shell 接下来会从 ENV 中命名的文件中读取命令。因此,用户应将仅在登录时执行的命令放在 .profile 文件中,并为 ENV 文件中的每个交互式 shell 执行命令。要将 ENV 变量设置为某个文件,请将以下行放在主目录的 .profile 中
ENV=$HOME/.shinit; export ENV
替换".shinit"您想要的任何文件名。
但是仍然有人可以向我解释为什么将exec -c bash
直接添加到.profile
中不起作用?