私はしばしば同時に複数のSSHセッションにログインします。複数のセッションからログアウトするには、ローカルコンピュータに戻るまでCTRL+を押します。d
ただし、たまに押しすぎると端末が終了することがあります。
CTRL+d端末を閉じることができないようにする方法はありますか?
端末エミュレータとして Terminator を使用しています。
答え1
Bashでeofを無効にすることもできます。
set -o ignoreeof
答え2
IGNOREEOF
Bashで環境変数を使用できます。したがって、実際にシェルをシャットダウンする前に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
詳細については、次を参照してください。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