ターミネータ端末エミュレータを使用してCTRL-Dを無効にする(ウィンドウを閉じる)

ターミネータ端末エミュレータを使用してCTRL-Dを無効にする(ウィンドウを閉じる)

私はしばしば同時に複数のSSHセッションにログインします。複数のセッションからログアウトするには、ローカルコンピュータに戻るまでCTRL+を押します。d

ただし、たまに押しすぎると端末が終了することがあります。

CTRL+d端末を閉じることができないようにする方法はありますか?

端末エミュレータとして Terminator を使用しています。

答え1

Bashでeofを無効にすることもできます。

set -o ignoreeof

答え2

IGNOREEOFBashで環境変数を使用できます。したがって、実際にシェルをシャットダウンする前に42をexport IGNOREEOF=42押す必要がありますCtrl+D

POSIXにも設定がsetあります-o ignoreeof

答え3

Ctrl-D EOF 文字は端末エミュレータではなくシェルによって解釈されます。他の答えはbash設定を扱いましたが、他のシェルは異なります。

Cシェル(tcshなど)の場合は、tcshrcファイルに以下を追加できます。

# Prevent accidental logouts completely
set ignoreeof
# Just prevent the first two, and allow the third
set ignoreeof=3

Fishシェルの場合、Ctrl-Dの動作はキーバインディングによって制御されます。デフォルト値はに設定されているため、削除のみをサポートするdelete-or-exitようにキーバインディングを設定できます。\cddelete-char

詳細については、次を参照してください。Fish Githubの問題bind(たとえば、3.0より前にはという関数に追加する必要がありfish_user_key_bindings、3.0以降には追加する必要があります~/.config/fish/config.fish。)しかし、要約すると、次のようになります。

bind \cd delete-char  # Don't exit on accidental Ctrl-D
bind \cd\cd\cd delete-or-exit  # Exit on the third one

関連情報