至少在 Ubuntu 中,在普通 shell 中,运行logout
会显示一条消息,告诉我我不在登录 shell 中。但据我所知,在登录 shell 中,logout
会执行相同的操作。那么,为什么它们都存在,为什么还不够?exit
exit
答案1
我猜你指的是终端仿真器提到“普通 shell”时。您的登录 shell 在您的图形桌面启动时启动。您的终端仿真器向您展示的不是登录 shell 的交互式 shell。因此,您无法在那里注销。
当你通过 TTY 登录,您将进入交互式登录 shell。logout
将会注销您。exit
将终止该 shell,但是由于它是登录 shell,因此也会注销您。
尝试以下操作:打开另一个 shell,例如dash
或sh
。您将进入交互式 shell。尝试logout
:您将看到与交互式 shell 中相同的消息:您不在登录 shell 中,因此无法注销。
您只能使用 退出该 shell exit
,然后返回到登录 shell,您可以在其中logout
显式地使用 或exit
,这也会隐式地将您注销。