为什么 exit 和 logout 同时存在?

为什么 exit 和 logout 同时存在?

至少在 Ubuntu 中,在普通 shell 中,运行logout会显示一条消息,告诉我我不在登录 shell 中。但据我所知,在登录 shell 中,logout会执行相同的操作。那么,为什么它们都存在,为什么还不够?exitexit

答案1

我猜你指的是终端仿真器提到“普通 shell”时。您的登录 shell 在您的图形桌面启动时启动。您的终端仿真器向您展示的不是登录 shell 的交互式 shell。因此,您无法在那里注销。

当你通过 TTY 登录,您将进入交互式登录 shell。logout将会注销您。exit将终止该 shell,但是由于它是登录 shell,因此也会注销您。

尝试以下操作:打开另一个 shell,例如dashsh。您将进入交互式 shell。尝试logout:您将看到与交互式 shell 中相同的消息:您不在登录 shell 中,因此无法注销。

您只能使用 退出该 shell exit,然后返回到登录 shell,您可以在其中logout显式地使用 或exit,这也会隐式地将您注销。

相关内容