当用户登录他们的帐户时,Linux会启动一个登录shell。那么什么是登录shell,您如何知道您是否在运行登录shell?您可能每天都使用Linuxshell,但是您如何使用它在很大程度上决定了它的行为。您可能听说过登录shell和非登录shell之间的区别。虽然一开始可能并不明显,但这两种外壳类型之间存在一些差异。以下是您需要了解的有关Linux登录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)提供的特殊功能。