什么是 Linux 中的登录 Shell?

系统 Linux
您可能听说过登录 shell 和非登录 shell 之间的区别。虽然一开始可能不那么明显,但两种 shell 类型之间存在一些差异。

当用户登录到他们的帐户时,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迷
相关推荐

2009-10-23 13:24:20

linux Shell

2023-03-01 09:49:23

2020-12-15 09:08:40

LinuxShell

2012-01-18 10:46:33

ibmdw

2009-09-29 10:45:17

UnixLinuxshell

2020-11-10 22:57:32

LinuxGUICLI

2020-11-10 11:29:36

LinuxGUICLI

2018-03-16 14:04:45

Linux大内存页虚拟内存管理

2019-04-28 10:30:30

Linux操作系统Namespace

2022-08-30 08:52:04

shell脚本Linux

2013-12-19 16:43:02

2012-01-18 09:46:32

Shell

2021-07-06 06:12:43

Shell语法变量

2024-10-28 09:38:15

2022-11-01 15:38:22

LinuxShell

2022-11-14 15:07:09

Linux管道

2020-04-17 08:34:39

Linux管道

2017-04-13 11:46:11

Linux VPS虚拟专属服务器

2011-09-28 11:14:35

Zshellzshbash shell

2009-12-25 09:55:18

LinuxShell编程Shell基本语法
点赞
收藏

51CTO技术栈公众号