私は定期的にcentos 5ボックスにsshします。どういうわけか、それらのキーはcontrol+d
は、現在のシェルからログアウトします。私が別の用途にSudoされた場合は、以前のユーザーに戻ります。私がSudoされていない場合、それは私を切断するだけです。これを防ぐにはどうすればよいですか?私は定期的にcontrol + dを使用してpythonインタープリターをキャンセルしますが、誤って複数回押してしまうことがあります。
IGNOREEOF
を使用する場合、bash
環境変数を探しています。
IGNOREEOF
EOF文字を唯一の入力として受け取ったときの対話型シェルのアクションを制御します。設定されている場合、値は、連続するEOF文字の数です。 bashが終了する前に、入力行の最初の文字として入力します。変数が存在するが数値がない場合、または値がない場合、デフォルト値は10です。存在しない場合、EOFシェルへの入力の終わりを示します。
そう export IGNOREEOF=42
と押す必要があります Ctrl+D シェルが実際に終了する前に42回。
POSIX set
には-o ignoreeof
設定も。したがって、シェルのドキュメントを参照して、シェルにこれがあるかどうか(あるはず)を確認し、正確なセマンティクスを確認してください。
tcsh set ignoreeof
またはset ignoreeof=<any value not 1>
機能
本当に嫌いなら Ctrl-d、次に、ターミナルコントロールのeof
文字を削除できます。
stty eof undef
この後、 Cntl-d 他の制御文字になります。
バグ
私が使用した場合、同様の問題がありました Ctrl+D デバッグし、意図的にタブ全体を閉じたときよりも1回多く使用しました。
環境変数を使用した提案
一時的(現在のセッションのみ):
export IGNOREEOF=20
または
set ignoreeof=20
設定したら、印刷して設定されているかどうかを確認できます。
printenv
設定を解除することもできます。
unset ignoreeof
永久:
たとえばsublimeを使用して、環境変数を開き、編集して設定します
subl ~/.bashrc
またはsubl ~/.bash_profile
と追加export IGNOREEOF=15
ファイルの最後に、環境変数を永続的に設定します。これを自動的に行うには、コンソールでこれを試すことができます:
echo "export IGNOREEOF=20" >> ~/.bash_profile
次のようにechoを使用して現在の値を確認することもできます。
echo $IGNOREEOF
値を正しく設定した場合は、値が端末に出力されます。値が設定されていない場合は、空の行が出力されるだけです。
要約
これを試して:
export IGNOREEOF=20 && echo "export IGNOREEOF=20" >> ~/.bash_profile
これがお役に立てば幸いです。