シバン(#!)とは?Linuxスクリプトでの正しい使い方を徹底解説
Linuxの最大の魅力のひとつは、タスクの自動化や簡素化を目的としたスクリプトを手軽に作成できる点です。システム管理者が大量のログファイルを処理する場面や、研究業務でCSVやTXTファイルを扱う場面などで、その威力を発揮します。ただし、スクリプトを書く前に必ず理解しておきたい特別な文字列があります。それが「シバン(Shebang)」、すなわち #! です。本記事では、シバンに関する基本的な疑問にお答えしながら、Linuxでの具体的な使い方を分かりやすく解説します。
シバンとは何か?
シバン(#!)は、どのインタープリタを使ってコードを実行するかをシステムに指示するための文字列です。インタープリタとは、ターミナルに入力されたコマンドを読み取り、実際に処理を行うプログラムのことです。多くの方には「Bash」として馴染みがあるでしょうが、Zsh、Ksh、Fishなどを選択することもできます。
インタープリタは、ls や xargs のようなコマンドを受け取り、それをどう処理すべきかを判断するバイナリプログラムです。フルパスは通常 /bin/bash のようになっています。このパスの意味がよく分からない場合は、Linuxの仮想ディレクトリ構造に関するガイドを参照してみてください。
#! はテキストファイルの先頭に記述することで、その下に続くコードに適したインタープリタを読み込ませる役割を果たします。まずは、次の画像のようなスクリプトを書いてみましょう。
そして、次の画像のように実行します。
これでも問題なく動作しますが、毎回このやり方を繰り返すのは、いずれ面倒に感じるはずです。もっとスマートな方法が、次の画像のようにシバンを活用するやり方です。
そうすれば、次のようにシンプルに実行できます。
シバンはなぜ生まれたのか?
シバンを記述する作業自体は一手間ですが、./(ドットスラッシュ)だけでスクリプトを実行できるようになると、長期的には大きな時短につながります。スクリプト自身が「どのインタープリタにコマンドを渡すべきか」を判断してくれるため、利用者がそれを覚えておく必要がないのです。特に、cronジョブとして定期実行を設定する場合や、別のスクリプトの中からスクリプトを呼び出す場合には絶大な効果を発揮します。
Bash、Zsh、Pythonのどれでファイルの中身を解釈させたい場合でも、スクリプトの1行目に宣言しておくだけで済みます。これにより、システム管理が格段にシンプルになり、ミスも減らせます。
シバンの使い方
使い方は非常にシンプルです。スクリプトファイルの1行目に、#! に続けて使用したいインタープリタへの絶対パスを記述するだけです。代表的な例をいくつか紹介します。
#!/bin/bash #!/bin/zsh #!/usr/bin/env python3
1行目を記述したら、その下から処理内容となるコードを書き進めます。書き終えたらファイルを保存し、以下のコマンドのいずれかを実行して実行権限を付与しましょう。
chmod 755 スクリプト名 chmod a+x スクリプト名
どちらのコマンドでも同じ結果が得られます。あとは、次のようにスクリプトを実行するだけです。
./スクリプト名
以上で完了です。思ったより簡単だったのではないでしょうか。
このシバンの使い方ガイドが参考になった方は、「No space left on device」エラーの解消方法や、破損したUSBメモリの修復方法など、当サイトのその他のLinuxハウツー記事もぜひチェックしてみてください。
-
LinuxにMicrosoft Defenderをインストールして使う方法【RPM系・Debian系対応】
エンタープライズ環境以外の多くのLinuxユーザーは、Linux上でMicrosoft製ツールを使うことにピンとこないかもしれません。しかし、企業内でLinuxを運用している人なら、その価値を十分に理解しているはずです。Active Directoryをはじめとする職場の標準となったMicrosoftエコシステムとの統合は、デスクトップLinuxにとって大きなメリットであり、お気に入りのディストリビューションがビジネス現場でも実用的なOSへと変わります。そして企業において最も重要な要素のひとつがセキュリティです。本記事では、LinuxにMicrosoft Defenderをインストールして使用
-
Linuxに脆弱性スキャナーOpenVAS(GVM)をインストールして初回スキャンを実行する方法
Linuxの大きな魅力のひとつは、豊富なオープンソースツールを自由に利用できる点にあります。ただし、それらが必ずしも初期状態でインストールされているとは限りません。本記事では、オープンソースの脆弱性スキャニング・管理アプリケーションであるOpenVASをインストールし、初めての脆弱性スキャンを実行するまでの手順を詳しく解説します。まず最初に、ベースとなるLinuxディストリビューションを選びましょう。本記事ではUbuntuを使用します。なお、Kali Linuxなどの一部のディストリビューションには、あらかじめインストールされている場合もあります。さらに、どのバージョンのOpenVASを使うか