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です。これでちいさなイラッとを解消できるはずです!
コメント