ctrl-d でログアウトしないようにする方法

この記事は約3分で読めます。

LinuxやMSYSでターミナルで作業していて、うっかりctrl-d を押してしまいログアウトしてイラッとしたことありませんか?一文字削除と同じキーなのでうっかりやってしまうんですよね。そんな小さないらいらをなくすTipsを紹介します。

スポンサーリンク

シェルのオプションでctrl-dでログアウトしないようにする

シェルにはいろいろとオプションがあります。「set -o」コマンドにてその一覧と各オプションの有効無効の設定を表示できます。下記に例を示します。

$ set -o
allexport      	off
braceexpand    	on
emacs          	on
errexit        	off
errtrace       	off
functrace      	off
hashall        	on
histexpand     	on
history        	on
ignoreeof      	off
interactive-comments	on
keyword        	off
monitor        	on
noclobber      	off
noexec         	off
noglob         	off
nolog          	off
notify         	off
nounset        	off
onecmd         	off
physical       	off
pipefail       	off
posix          	off
privileged     	off
verbose        	off
vi             	off
xtrace         	off

このなかの「ignoreeof」というのがありますが、これを有効にするとEOFつまりctrl-dを無視するようになりログアウトしなくなります。これを有効にするには下記のようにします。

$ set -o ignoreeof

これでctrl-dを押しても下記のようにメッセージが出てログアウトしなくなるようになります。

 
$ シェルから脱出するには "exit" を使用してください。
スポンサーリンク

環境変数でctrl-dでログアウトしないようにする

シェルのオプション以外にもctrl-dでログアウトしないようにできます。環境変数IGNOREEOFの設定で実現できます。この変数に何回ctrl-dを無視するかを設定します。例えば下記のように設定した場合は3回はctrl-dを無視し、4回目でログアウトします。ctrl-d 1回ではログアウトしたくないけど連打したときはログアウトしたいときに便利です。毎回設定するのは不便なので.bashrcにかいておくといいかと思います。

IGNOREEOF=3
スポンサーリンク

まとめ

LinuxやMSYS2などを利用しているときに ctrl-d でログアウトuしたくないときの方法をa説明しました。何回押してもログアウトしたくないときはシェルオプションignoreeofをonに設定し、複数回だけ無視したいときは環境変数EGNOREEOFに無視したい回数を設定すればOKです。これでちいさなイラッとを解消できるはずです!

コメント