Windowsエラー
 Computer >> コンピューター >  >> トラブルシューティング >> Windowsエラー

WindowsでSHファイルを実行する4つの方法|Cygwin・WSL・Git Bashを使いこなそう

SHファイル(Bashシェルスクリプト)は、Linux環境向けにBashスクリプト言語で記述されたファイルです。通常コマンドラインから実行できる命令が含まれており、ターミナルから呼び出して実行したり、ダブルクリックで開いたりできます。しかし、Windowsは標準ではSHファイルを認識せず、そのままでは実行できません。

本記事では、Windows環境でSHファイルを実行するための代表的な4つの方法を、手順付きで詳しく解説します。ご自身の環境やスキルレベルに合った方法を選んでください。

SHファイルとは?

SHファイル(スクリプトファイルとも呼ばれます)は、Bashアプリケーションが読み込んで使用するスクリプトです。ファイル内の命令はすべてBash言語で記述されており、主にプログラム開発者が利用しています。プログラムを実行するためのコマンド群が含まれるため、非常に重要なファイルといえます。

ただし、これらのファイルは基本的にLinux向けに作られているため、Windows上で実行するには専用のソフトウェアや実行環境が必要になります。以下に紹介する方法を活用しましょう。

方法1:Cygwinを使ってSHファイルを実行する

Cygwinは、Unixライクなオープンソースのコマンドライン環境です。Linux風のインターフェース上で、UnixやLinux向けアプリケーションをWindows OS上でコンパイル・実行できるようにします。Cygwinを利用すれば、SHファイルを簡単に実行できます。

  1. Cygwinの公式サイトにアクセスし、32bit版または64bit版のセットアップファイルをダウンロードします。
  2. ダウンロードしたセットアップファイルを開き、画面の指示に従ってインストールを進めます。インストール中にいくつかのオプションが表示されるので、好みに応じて選択してください。
  3. インストール完了後、デスクトップ上のショートカットをダブルクリックしてCygwin64 Terminalを起動します。
  4. 以下のコマンドで、SHファイルが保存されているディレクトリへ移動します:
    cd C:/Users/ユーザー名/Desktop

    続いて、次のコマンドを入力してSHファイルを実行します:

    sh sample.sh

方法2:Windows 10の「Windows Subsystem for Linux(WSL)」機能を使う

Windows Subsystem for Linux(通称WSL)は、Windows 10がインストールされたPC上でLinuxのコマンドラインを実行できるようにする機能です。2016年にWindows 10へ初めて搭載されました。Linux側にWindowsソフトを動かすWineがあるのと同様に、Windows側にはLinuxソフトを動かすWSLが用意されているというわけです。

この機能は有効化までの手順が多いため、大きく3つのステップに分けて説明します。

ステップ1:Windows Subsystem for Linuxを有効化する

  1. Windowsキーを押しながらRキーを押して「ファイル名を指定して実行」を開き、「appwiz.cpl」と入力してEnterキーを押します。
  2. 左側にある「Windowsの機能の有効化または無効化」をクリックします。
  3. 一覧を一番下までスクロールし、「Windows Subsystem for Linux」にチェックを入れて「OK」をクリックしてインストールします。
  4. 完了したら次のステップへ進みます。

ステップ2:Linuxディストリビューションをインストールする

ディストリビューションのインストール方法は3通りあります。環境によってうまく動作しない場合もあるため、すべての方法を紹介します。

  1. Windowsキー+Rで「ファイル名を指定して実行」を開き、「ms-windows-store:」と入力してEnterキーを押し、Microsoft Storeを起動します。
  2. ストア内で「Ubuntu」を検索し、該当するアプリを選択してダウンロードします。
  3. 2つ目の方法は、PowerShellで以下のコマンドを実行してディストリビューションをダウンロードします:
    Invoke-WebRequest -Uri https://aka.ms/wsl-ubuntu-1604 -OutFile Ubuntu.appx -UseBasicParsing
  4. 3つ目の方法は、curlコマンドを使用します:
    curl.exe -L -o ubuntu-1604.appx https://aka.ms/wsl-ubuntu-1604

    注意:Windows 10のビルド番号が1706未満の場合は、curlを手動でダウンロードし、curl.exeが存在するディレクトリへ移動してから実行してください。ビルド1706以降であればcurlは標準搭載されていますが、管理者としてコマンドプロンプトを実行する必要があります。

  5. ディストリビューションのダウンロードが完了すると自動的にインストールが始まります。利用規約に同意し、新しいユーザー名パスワードを設定すれば完了です。

ステップ3:新規インストールしたディストリビューションの初期化とSHファイルの実行

  1. 新しくインストールしたディストリビューションは、パッケージカタログが空、もしくは最小構成になっています。まず以下のコマンドでパッケージを更新・アップグレードしましょう:
    sudo apt update && sudo apt upgrade
  2. 準備ができたら、以下のコマンドでSHファイルの場所へ移動します:
    cd /mnt

    このコマンドでWindowsのドライブがマウントされます。目的の場所へ移動します:

    cd c/Users/ユーザー名/Desktop/

    注意:サンプルファイルがデスクトップにあったため、ここではデスクトップへ移動しています。ご自身のファイルの場所に合わせて変更してください。

  3. 以下のコマンドを入力してSHファイルを実行します:
    sh sample.sh

方法3:Git Bashを使ってSHファイルを実行する

Gitは無料かつオープンソースの分散型バージョン管理システムで、あらゆるOSで利用可能です。LinuxやmacOSでは標準でコマンドラインツールとしてインストールされていますが、Windowsでも公式サイトからダウンロードできます。

  1. 公式サイトにアクセスし、お使いのOSに対応したGitをダウンロードします。
  2. ダウンロードしたセットアップファイルを開いてGitをインストールします。インストール中に表示されるオプションは、必要なものだけチェックを入れて進めてください。
  3. Windowsキーを押しながらSキーを押して検索ボックスを開き、「Git Bash」と入力してEnterキーを押します。
  4. 以下のコマンドで、ファイルが保存されているフォルダへ移動します:
    cd desktop

    注意:「desktop」はファイルが置かれているフォルダ名に置き換えてください。

  5. SHファイル実行用のコマンドを入力します:
    sh sample.sh

方法4:スクリプトファイルをバッチファイルに変換する

この方法は、スクリプトやバッチファイルのコマンドに精通している方向けであり、一般のユーザーにはおすすめできません。SHファイルの形式と拡張子を変更してバッチファイル(.bat)に変換するアプローチですが、両者の書式の違いを理解していないと正しく変換できないためです。以下に、サンプルコードを変換する基本の手順を示します。

  1. SHファイルを右クリックし、「プログラムから開く > メモ帳」を選択します。
  2. コード先頭のシバン(shebang)行(#!/bin/bashなど)を削除します。

    注意:コメントの記法は異なり、バッチファイルでは「::」を使用します。

  3. ファイル」メニューから「上書き保存」を選択して変更を保存します。
  4. SHファイルを左クリックで選択し、F2キーを押して名前を変更します(右クリックメニューから「名前の変更」でも可)。拡張子を.shから.batに変更し、確認ダイアログで「はい」をクリックします。
  5. Windowsキー+Sで検索ボックスを開き、「cmd」と入力してEnterキーを押します。
  6. cdコマンドでファイルのある場所へ移動します:
    cd desktop

    注意:「desktop」はアクセスしたいフォルダ名に読み替えてください。

  7. 拡張子付きのファイル名を入力して実行します:
    sample.bat

    ただし、シェルスクリプトで有効だった構文がバッチファイルでは動作しない場合があります。例えば、echoのon/off設定がないとテキストが二重に出力されるなどの違いが現れます。変換後は必ず動作確認を行いましょう。

まとめ

WindowsでSHファイルを実行するには、Cygwin、WSL、Git BashといったLinux互換環境を導入するのが一般的です。手軽さを重視するならGit Bash、本格的なLinux環境が必要ならWSLがおすすめです。また、スクリプトの内容を十分に理解できる上級者であれば、バッチファイルへの変換という選択肢もあります。用途に合わせて最適な方法を選びましょう。

  1. Windows 10でシステムファイルを修復する方法|DISM・SFCコマンドの手順を解説

    Windowsのシステムファイルは、Windowsアップデートの未完了、不適切なシャットダウン、ウイルスやマルウェアの攻撃など、さまざまな原因で破損することがあります。さらに、システムクラッシュやハードディスクの不良セクタもファイル破損につながり、放置すると深刻なトラブルに発展する恐れがあります。本記事では、Windows 10でシステムファイルを修復する方法と、DISMおよびSFC /scannowという2つの公式修復ツールの使い方を、初心者にもわかりやすく解説します。 Windows 10 PCでシステムファイルを修復するには PC内に破損したシステムファイルや設定ファイルがあると、さ

  2. Windows 10で最近使ったファイルを開く2つの方法【初心者向け解説】

    Windowsは世界規模で膨大なユーザーベースを誇り、多くの大企業が日々の業務を円滑に進めるためにWindowsを活用しています。豊富な機能ラインナップによって高い評価を受けており、MS Officeでのファイル管理、写真や動画の閲覧、さらにはアプリの開発まで、あらゆる作業をWindows 10上で行うことができます。 さらに、Windowsはユーザーの操作履歴を記録しており、最近開いたファイルの一覧を自動的に保持しています。この履歴を活用すれば、うっかり閉じてしまったドキュメントへ素早く再アクセスできたり、最近編集したWord文書を簡単に見つけたりすることが可能です。Windows 7で最近