例如,当我通过 SSH 连接到服务器然后sudo bash
再做su <user>
一些工作时,我想要一种快速方法将所有 shell 退出回本地终端。
进去
当我必须做一些工作时服务器作为吉姆。
local > ssh me@server
server:me > sudo bash
server:root > su jim
server:jim > // do stuff as jim
出去
当我的工作完成但我不想让 shell 保持登录状态时。
server:jim > exit
server:root > exit
server:me > exit
local > // after 3 commands
首选出路
我想这样做。
server:jim > exitall // for example
local > // after one command
答案1
如果您愿意采用主动(相对于追溯)解决方案,请考虑使用exec
您想要绕过的中间步骤:
进入(修改):
local > ssh me@server
server:me > exec sudo bash
server:root > exec su jim
server:jim > // do stuff as jim
出去
server:jim > exit
local > // after 1 command
使用exec
列出的命令替换当前的 shell;因此,当您exit
退出 jim 的 shell 时,您的 root shell 也会退出,这会导致 shellsudo bash
退出,让您回到开始的地方。
答案2
我发现最快的方法是根据需要多次使用 Ctrl + D,这将终止每个 bash 会话