ターミナルエミュレーターで CTRL-D によるウィンドウの閉じを無効にします)

ターミナルエミュレーターで CTRL-D によるウィンドウの閉じを無効にします)

私は、複数の SSH セッションに同時にログインすることがよくあります。複数のセッションからログアウトするには、ローカル マシンに戻るまでCTRL+を押します。d

ただし、時々押しすぎてしまい、ターミナルが終了してしまうことがあります。

CTRL+ がdターミナルを閉じられないようにする方法はありますか?

私はターミナルエミュレータとしてターミネーターを使用しています。

答え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、 のキーバインディングを に設定して、削除のみをサポートすることができ\cdますdelete-char

詳細は魚のGithubの問題(例えば、バージョン 3.0 より前では、bindという関数に を追加する必要があります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

関連情報