【初心者向け】.shファイルをLinuxで実行する方法

”Linuxをインストールして、ソフトをダウンロードしたんですけど、どうやって実行すればいいですか?「○○.sh」ってファイルなんですけど。”

こういう質問、たまにありますよね。そこで、Linux初心者向けの記事として「.shファイルを実行する方法」をまとめます。

Windowsならダウンロードした「○○.exe」をダブルクリックするだけで実行できます。Linuxの場合、「Ubuntu Software」などのソフトウェア追加アプリ、あるいは「apt」や「yum」、「dnf」といったコマンドでダウンロードとインストールを一度に行うのが普通です。

でも、Linux向けのちょっとしたプログラムや、「apt」などでインストールできないソフトウェアのインストールプログラムが「○○.sh」といった名前で配布されていることもあります。こういった場合、ダウンロードした後はどうすればよいのでしょうか?

実行する前に確認しましょう

「○○.sh」は「シェルスクリプト」と呼ばれるものです。通常、「端末」を開いて実行します。ただし、実行前に確認しないといけないことがあります。ダウンロードしたシェルスクリプトは信頼できるものですか? 広く使われているオープンソースソフトウェアの公式ページからダウンロードしたものや購入したものなら、まず問題はないでしょう。どこかの掲示板やフォーラムからダウンロードしたものなら、実行するかどうかは慎重に判断しないといけません。とくに、rootユーザーとして実行する場合(後述)はシステムを破壊する可能性もあります。よく分からないなら、実行しないほうがいいでしょう。

「端末」を開いて実行する

では、メニューから「端末」を開きましょう。UbuntuやFedoraなら、画面左上のアイコンもしくは「アクティビティ」をクリックして、「term」を検索するのが簡単です。メインメニューに検索の機能が無い環境なら、メニュー内のどこかにあるはずです。

端末を開くと、「$ 」で終わるプロンプトが表示されますね。ブラウザでダウンロードしたなら、「ダウンロード」フォルダにあるかもしれませんね。あるいは、既にアプリでどこか別の場所に展開してあるかもしれません。いずれにせよ、目的の「○○.sh」があるフォルダに「cd」コマンドで移動しましょう。「ダウンロード」フォルダに移動するなら、「cd ダウンロード」ですね。

移動したら、以下のいずれかで実行します。ここでは、例として「script-name.sh」を実行することにします。

方法1: スクリプトに実行権限をつけてから実行する

chmod +x script-name.sh
./script-name.sh

方法2: shコマンドで実行する

sh script-name.sh

方法3: bashコマンドで実行する

bash script-name.sh

ほとんどの場合、どれでも同じように実行されます。まれに、方法2では正常に実行できず、方法3で行う必要がある場合もあります。

rootユーザーとして実行する

アプリケーションのインストールスクリプトなどの場合、上記の方法ではエラーがでてしまうことがあるでしょう。これは、システムの内部の変更にroot権限が必要だからです。こういった場合、以下のように実行します。

sudo bash script-name.sh

UbuntuやLinux Mintでは、デフォルトでsudoが使えるので問題なく実行できるでしょう。FedoraやCentOSでsudoが使えない場合、「su」コマンドでrootシェルに入って実行することもできますが、以下のページを参考にsudoを設定することをおすすめします。