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


12

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

私はnewline+ ~+ .sshセッションを終了することに気づいていますが、それが思いのままに終了するかどうかを確認exitする必要がありますが、exit3または4回入力するように単一のコマンドまたはショートカットで現在のシェルのすべてのセッションを終了するにはどうすればよいですか私の場合、一度限りのものになりますか?


2
~.SSHクライアントを切断するだけです(たとえば、ネットワークが消えたときに便利です)。通常、SSHデーモンはそれを認識し、でセッションを通知するSIGHUPため、通常のシェルを終了するのとはまったく同じではありません(ただし、シェルから応答が得られない場合に役立ちます)。
トビースパイト

回答:


29

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

ここで詳しく説明します


2
次の停車地はunix.stackexchange.com/a/182071/5132であり、その後の停車場はそこでさらに読むことです。(-:
JdeBP

2
Ctrl + Dに注意してください。bashでは、プロンプトに文字を入力した場合、CTRL + Dを押すとEnterと同じように実行されます。つまり、rmコマンドを入力せずに、実行したくない場合はCtrl + Dキーを押します。この動作はkshでは見られません。
ペシュケ

2
@Peschke Ctrl + Dを使用したことのあるすべてのシステムで、何かを入力したとしても何もしません。あなたが説明する行動を見たことがありません。
ジョンクーゲルマン

1
@JohnKugelman RHEL 7.5でbashを使用して、コメント時の動作をテストおよび確認しました。
ペシュケ

3
Peschkeはvi端末入力バインディングを使用しています。
JdeBP

5

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

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

また、「現在のシェルですべてのセッションを終了する」という意味がわかりません。各対話型bashは1つのセッションに過ぎず、入力したコマンドは常にProxyJumpチェーンの最も深いシェルにのみ移動します。「現在のシェルのバックグラウンドジョブ」を意味する場合、bashはsshデーモンによるSIGHUPの受信時にすべてのジョブにSIGHUPを送信します~.。したがって、実行中のジョブがSIGHUPに適切に反応する場合、そのような出口は完全に友好的である必要があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.