我了解交互式 shell 和非交互式 shell 之间的基本区别。但是,登录 shell 与非登录 shell 的确切区别是什么?
你能举例说明非登录交互式shell 的使用吗?
我在这个线程中看到了以下片段:How to change from csh to bash as default shell
sleep 2
if (-x /usr/local/bin/bash) then
exec /bin/sh -c '. ~/.profile; exec /usr/local/bin/bash'
endif
Run Code Online (Sandbox Code Playgroud)
我的理解是,如果您将此代码段放入~/.login
其中,它将bash
在您登录时调用。
我有一个类似的情况,我想使用一个类似的片段来调用zsh
一个与我登录时使用的默认版本不同的版本。我遇到这个麻烦的部分原因是因为我无法选择zsh
中允许的选项中我想要的版本,但chsh
我没有管理员权限。
有了这个:
exec
上面的代码片段中需要两个命令?他们在做什么?另外,为什么上面的代码片段使用sh
和 bash
(用户应该用 登录csh
)鉴于场景:
如果用户从本地登录到远程,希望使用未安装在远程上的 shell与远程交互,用户如何单独完成此操作?
让我们假设我是用户(没有权限),我需要通过编辑文件将我的 shell 作为默认设置更改为 /bin/bash。因此,我可以在哪里找到特定用户的文件,我可以在其中编辑默认 shell 并在不涉及管理员的情况下永久设置它。
而且,是否有任何命令可以更改我自己的 shell,我可以直接在文件中进行编辑。
我试图找到一些东西,但只有在您具有 root 访问权限时才告诉命令和文件。
谢谢你。