web-dev-qa-db-ja.com

セッションを適切に閉じるショートカット(終了を入力しない)でシェルを終了する

私は毎日使用する多数のsshセッションにProxyJumpコマンドを使用しています。また、これらのセッションでユーザーを頻繁に切り替えており、exitを3〜4回続けて入力するのはそれほど面白くありません。

newline + ~ + .がsshセッションを終了することを知っていますが、exitのように友好的に終了するかどうかを確認する必要がありますが、方法現在のシェルのすべてのセッションを1つのコマンドまたはショートカットで終了して、私の場合はexitを3〜4回入力すると1回限りになりますか?

12
tsujp

Ctrl-D 多くの場合、シェルを終了します。 exitと入力するよりも速い Enter。すべてを終了する単一のコマンドではありませんが、 Ctrl そして打つ D 数回は簡単かつ高速です。これがあなたのユースケースにとってどれほど価値があるかはわかりません。

詳細に議論 ここ

29
0xSheepdog

入力~.実際にはdoesすべての「ネストされた」接続を最後まで閉じるトリック。

すべてのシェルがSIGHUPを優雅な死として処理するように構成されている限り、それは友好的な出口でそうします。 Bashはデフォルトでそうします。たとえば、セットアップの友好的な出口を簡単に確認できます。より深いセッションの.bash_historyファイルが~.の後に適切に更新されるかどうか、または終了時に.bash_historyを更新しないようにbash-esを設定した場合、EXITイベントにtrapを設定できます(または~/.bash_logout)で、どこかに何かを書き込み、後でそれが実行されたかどうかを確認するコマンドを使用します。

さらに、「現在のシェルのすべてのセッションを終了する」という意味がわかりません。各対話型bashは1つのセッションにすぎず、入力するコマンドは常に、ProxyJumpチェーンの最も深いシェルのみに送信されます。 「現在のシェルのバックグラウンドジョブ」を意味している場合、bashは~.でsshデーモンがSIGHUPを受信すると、すべてのジョブにSIGHUPを送信します。 SIGHUP。

5
LL3