ITPub博客

首页 > 应用开发 > > 究竟什么是 Linux 中的登录 Shell?

究竟什么是 Linux 中的登录 Shell?

作者:dapan 时间:2023-02-28 15:01:43 0 删除 编辑

当用户登录到他们的帐户时,Linux 会启动一个登录 shell。那么什么是登录 shell,你怎么知道你是否正在运行呢?
您可能每天都在使用 Linux shell,但是您如何使用它在很大程度上决定了它的行为。您可能听说过登录 shell 和非登录 shell 之间的区别。虽然一开始可能不那么明显,但两种 shell 类型之间存在一些差异。
这是您需要了解的有关 Linux 上登录 shell 的所有信息。

什么是登录 Shell?

登录 shell 就是这样:当你直接登录到 Linux 机器时启动的 shell。当您从虚拟控制台或通过 SSH 登录系统时,启动的 shell 是登录 shell。
相比之下,如果您启动终端窗口,则该 shell 会话通常不是登录 shell。当您通过在命令行中键入 shell 的名称来启动子 shell 时也是如此。这个 shell 只是一个交互式 shell。
两者之间的主要区别在于 shelll 的行为。shell 通常只会在启动时读取某些文件。只有在作为登录 shell 调用时,Bash 才会读取您的主目录中的/etc/profile、.bash_profile、.bash_login和.profile 文件。

如何判断您是否正在使用登录 Shell

很容易看出您是否正在运行登录 shell。如果您从桌面终端应用程序启动了您的 shell,那么您很可能不会,除非您在另一个终端环境中,例如 WSL 或 macOS 终端。
您可以使用此命令检查您是否正在运行登录 shell;
echo $0
如果您使用的是登录 Shell ,您将看到 shell 的名称前面有一个连字符 ( - )。如果没有,您只会看到 shell 的名称。

在 Linux 上设置登录 Shell

要设置您的登录 shell,请使用 chsh 命令。您可以将登录 shell 设置为/etc/shells中列出的任何 shell 的路径。
要将任何 shell 作为登录 shell 启动,通常可以使用命令行选项。例如,要将 Bash 作为登录 shell 启动:
bash --login
如果您使用的是 Linux 桌面,您通常可以指定在打开终端窗口时运行哪个命令。如果你想让你的 shell 作为登录 shell 运行,你可以把那个选项放在那里。

现在您了解登录 Shell

您现在应该了解什么是登录 shell。直接从控制台或从终端窗口启动您的 shell 将确定它的行为方式。
如果您是 Linux 新手,您可能想知道哪个 shell 好。您可以坚持使用默认的 Bash,也可以探索其他 shell(如 Fish 或 Zsh)提供的特殊功能。


来自:Linux迷
链接:https://www.linuxmi.com/linux-login-shell.html


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/758/viewspace-3136903/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2020-08-07

  • 博文量
    4504
  • 访问量
    87012