Open3

【Linux】ctrl-d と exit の違い

8rine238rine23

きっかけ

Linux サーバにSSHアクセスして何かしら作業した後そのアクセスを切断する際に、「ctrl-d」で抜ける人と「exit」で抜ける人がいて、これらの違いは何かあるのか気になった

8rine238rine23

まとめ

  • 「ctrl-d」を実行すると、シェルに対してEOFシグナルが送信される
  • 「exit」を実行すると、シェルに対して明示的にセッションを終了するよう指示される
  • 使い分けとしては、対話式シェルでの操作終了には ctrl-d を使い、明示的に終了ステータスを制御したい場合は exit を使う
ctrl-d exit
ふるまい EOFのシグナルをシェルに送信する シェルに対して明示的にセッションを終了するよう指示する
終了プロセス シェルはEOFシグナルを受け取ると、現在のセッションを終了
ログアウトプロセス シェルセッションが終了すると、ユーザーはログアウトされる シェルセッションが終了し、ユーザーはシステムからログアウトされる
終了ステータス 最後に実行されたコマンドの終了ステータスを返す exit に続けて指定した数値を返す
8rine238rine23

小難しい話を抜きにするなら、「Linux サーバにSSHアクセスして何かしら作業した後そのアクセスを切断する」ことに限るなら、本来想定された用途ではない ctrl-d を使うのはやめようねってこと