Ctrl + Dでセッションが切断されるのを防ぐ方法は?

Ctrl + Dでセッションが切断されるのを防ぐ方法は?

私は頻繁にSSHを介してCentos 5マシンに接続します。何らかの方法で対応するキーがマップされ、現在のcontrol+dシェルを終了します。他のユーザーにsudoすると、古いユーザーに戻ります。 sudo がないと接続が切断されます。これが起こらないようにするにはどうすればよいですか? PythonインタプリタをキャンセルするためにCtrl + Dを頻繁に使用しますが、時々誤って複数回押すことがあります。

答え1

IGNOREEOF次のコマンドを使用して環境変数を探していますbash

IGNOREEOF

EOF文字を唯一の入力として受け取るときの対話型シェルの動作を制御します。設定されている場合、この値は、bashが終了する前に入力行の最初の文字として入力する必要がある連続EOF文字の数です。変数が存在するが数値がない場合、または値がない場合、デフォルトは10です。存在しない場合、EOFはシェル入力の終わりを示します。

したがって、実際に皮を離れる前に42回export IGNOREEOF=42押す必要があります。Ctrl+D

POSIXset設定もあります-o ignoreeof。したがって、シェルのドキュメントを参照して、シェルにこの機能があるかどうかを確認し、正しい意味を確認してください。

答え2

本当に気に入らない場合は、ターミナルコントロールから文字をCtrl-d削除できます。eof

stty eof undef

その後、Cntl-d他の制御文字が使用されます。

答え3

tcshset ignoreeofまたはset ignoreeof=<any value not 1>動作

答え4

間違い

Ctrl+Dデバッグ中に意図したものをもう一度使用すると、タブ全体が閉じるという同様の問題がありました。


環境変数の使用に関するアドバイス

一時(現在のセッションにのみ適用されます):

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

これが役に立つことを願って楽しい一日を過ごしてください!

関連情報