我应该如何用破折号开始猛击?



我在 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中不起作用?

最新更新