用語集に戻る
Linux初級

シバン

シバン

一言で言うと

#!/bin/bash の行。

もう少し詳しく

一言で言うと

スクリプトの先頭行に書く #! から始まる記述。OS にどのインタープリタでこのスクリプトを実行するかを伝える。#!/bin/bash のほか #!/usr/bin/env python3 なども同じ仕組みで動く。

もう少し詳しく

シバン(shebang)はスクリプトファイルの1行目に書く #! に続けてインタープリタのフルパスを指定する記述です。

カーネルによる起動の仕組み

スクリプトを実行しようとすると、Linux カーネルは最初の2バイト #! を読み取り、その後ろに書かれたパスのプログラムを起動してスクリプトを引数として渡します。シェルが処理するのではなく、カーネルが直接インタープリタを呼び出すのがポイントです。

#!/bin/bash#!/usr/bin/env bash の違い

#!/bin/bash は bash の場所を絶対パスで固定するため、bash が /bin 以外にある環境(macOS の Homebrew 環境など)では動作しないことがあります。#!/usr/bin/env bashenv コマンドを経由して PATH から bash を探すため、環境差異に強く可搬性が高い書き方です。Python スクリプトでも #!/usr/bin/env python3 が推奨される理由も同じです。

シバンがない場合の挙動

シバン行がないスクリプトを実行すると、多くの場合は呼び出し元のシェルがそのままスクリプトを解釈します。ただしこれは環境依存の動作であり、意図しないシェルで実行されてエラーになるリスクがあります。移植性を確保するためにシバンは必ず明記するのがベストプラクティスです。

実務でどう使うか

  • サーバ運用: 本番サーバーへのデプロイ・障害対応で日常的に使います

  • 開発環境構築: WSL や Docker 上の Linux でも同じ概念が登場します

  • CI/CD: GitHub Actions などのワーカーは Linux 上で動くので、CI スクリプトを書くときに必須です
  • 関連する章

    Ch54 で詳しく学べます。

    関連する用語

    この用語を学べるコース

    この用語を実際に使ってみよう

    チョットデキルなら、5分のレッスンで実際にコードを書いて学べます。

    コース一覧を見る