たとえば、サーバーにSSHで接続した後にいくつかの操作をsudo bash
実行するときに、su <user>
すべてのシェルをローカル端末に戻す簡単な方法が必要です。
入る
私が仕事をしなければならないとき仕える人〜のようにジム。
local > ssh me@server
server:me > sudo bash
server:root > su jim
server:jim > // do stuff as jim
出る
操作は完了しましたが、シェルがログイン状態を維持したくない場合。
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
現在のシェルをリストされているコマンドで置き換えます。したがって、exit
jimのシェルを終了すると、ルートシェルも終了し、シェルが終了してsudo bash
開始した場所に戻ります。
答え2
私が見つけた最も速い方法は、必要なだけCtrl + Dを使用することです。これにより、すべてのbashセッションが終了します。