私はWindows 7 Ultimateを購入して使用していますが、これを使用してアプリケーションを開発したいと思っています。(すべてのOSと同様に)欠点の1つは、Bashスクリプトを実行できないことです。WindowsでソフトウェアをインストールしてBashスクリプトを実行する方法はありますか?100%動作しなくても問題ありませんが、最も一般的な機能が利用できる限り、それはすばらしいはずです。
私はWindows 7 Ultimateを購入して使用していますが、これを使用してアプリケーションを開発したいと思っています。(すべてのOSと同様に)欠点の1つは、Bashスクリプトを実行できないことです。WindowsでソフトウェアをインストールしてBashスクリプトを実行する方法はありますか?100%動作しなくても問題ありませんが、最も一般的な機能が利用できる限り、それはすばらしいはずです。
回答:
Cygwinをインストールします。これには、他の多くのGNUおよびUnixユーティリティの中にBashが含まれています(これがないと、bashが非常に役立つとは考えられません)。
別のオプションは、bashとawkなどのより重要なユーティリティの小規模なセットを含むMinGWのMSYSです。個人的には、Cygwinを選択しました。これには、PerlやPythonなど、私がなくては生きていけないような重いツールが含まれているからです。
更新:この回答に興味があり、MS-Windows 10を実行している場合、MS-Windows 10には「LinuxのWindowsサブシステム」機能があり、これを有効にすると、Ubuntuのユーザーモードイメージをインストールできます。その後、Bashを実行します。これは、Bashスクリプトのデバッグと実行のためにUbuntuとの100%の互換性を提供しますが、このセットアップはWindowsから完全にスタンドアロンであり、DashFS機能によるファイルへの制限付きアクセスを除いて、Bashスクリプトを使用してWindows機能(プロセスやAPIなど)と対話することはできません。
mingw32
基本的にMSYSを含むディレクトリが表示されます。したがって、WindowsのGitはMinGWで、Git(MSYSインストーラーではオプション)と「より優れた」インストーラーが含まれています
私が見つけることができる最高のオプションはGit Windowsです。インストールして右クリックし、「Git Bash Here」をクリックすると、bashウィンドウが開きます。
Linuxのコマンドは動作します...
「sh」、「vi」、「ssh」、「curl」などのコマンドを試しました
もう少しネイティブなものを探している場合は、getGnuWin32を使用して、移植されたすべてのUNIXコマンドラインツールをインストールできます。これに加えてwinBashを使用すると、ほとんどのUNIX環境で作業できます。より良いターミナルエミュレーターとしてconsole2を追加してください。
Cygwinは全体としてより優れたツールキットですが、ウィンドウとの分割が原因で、驚きの問題に直面しています。これらのソリューションはどれもネイティブLinuxシステムほど優れていません。
virtualboxを使用して、選択したディストリビューションでLinux VMを作成することを検討してください。ホストosとフォルダーを共有するように設定すると、真のLinux開発環境を使用して、Windowsと共有できます。これらのEOLマーカーに注意してください。毎回取得します。
最適なオプションは?Windows 10. Native Bashのサポート!
cbwin
...
常にCygwinをインストールして、WindowsでUnixシェルを実行できます。CygwinをWindow XPで広範囲に使用しました。
git-extentions(https://code.google.com/p/gitextensions/)をインストールした後、コマンドプロンプトから.shファイルを実行できます。(./script.shは不要です。bat/ cmdファイルのように実行してください)または、MinGW Git bashシェルを使用して、「フル」bash環境で実行することもできます。
私はCygwinの大ファンではないので(確かに本当に強力だと思います)、Windowsでbashスクリプトを実行すると、完璧にインストールする必要はありません。
bash
powershellインスタンスから試し、失敗し、git-extensionsをインストールして再試行しましたが、うまくいきました。
ネイティブで実行するには、Cygwinを使用する必要があります(Windowsを使用しないと、私はこれを使用できません)。つまり、すぐに、Cygwinの場合は+1になります。それ以外のものは文明化されません。
しかし、言われているように、私は最近、ユーティリティの組み合わせを使用して、BashスクリプトをWindowsに簡単に移植して、Linux以外の同僚がGNUユーティリティでより適切に処理される複雑なタスクを簡単に実行できるようにしました。
通常、一方のペインで元のスクリプトを開き、もう一方のペインでBatchファイルを書き込むことにより、非常に短時間でBashスクリプトをBatchに移植できます。私が使用するツールは次のとおりです。
UnxUtilsは通常はインストールする必要があるのに対し、UnxUtilsはそのまま使用できるスタンドアロンバイナリであるのに対し、[間違っている場合は誰かが修正してください] GnuWin utilsをインストールする必要があるため、GnuWin32よりもUnxUtilsを好みます。
ただし、CoreUtilsには、cURLなどの一般的な* NIXユーティリティは含まれていません。cURLはWindowsでも使用できます(curl.haxx.se/download.html)。
私はプロジェクト用のフォルダーを作成し、常にSET PATH =を設定します。基本的なCMDシェルコマンド以外のコマンド(および、Batchスクリプトが期待どおりに機能するためにプロジェクトフォルダーで必要な特定のUnxUtils)が参照されないように、.batファイル内。
次に、必要なCoreUtils .exeファイルをプロジェクトフォルダーにコピーし、「。\ curl.exe -s google.com」などの.batファイルでそれらを参照します。
Bat2Exeプログラムは、魔法が起こる場所です。バッチファイルが完成し、正常にテストされたら、Bat2Exe.exeを起動し、プロジェクトフォルダへのパスを指定します。次に、Bat2Exeは、その特定のフォルダー内のすべてのファイルを含むWindowsバイナリを作成し、最初の.batを使用して、メインの実行可能ファイルとして使用します。生成される最終的な.exeファイルのアイコンとして使用する.icoファイルを含めることもできます。
これらの種類のプログラムをいくつか試しましたが、生成されたバイナリの多くはマルウェアとしてフラグが付けられていますが、参照したBat2Exeバージョンは完全に機能し、生成された.exeファイルは完全にクリーンにスキャンされます。
結果として得られる実行可能ファイルは、通常使用する多くのツールの機能を利用できることを除いて、通常のバッチファイルと同じように、ダブルクリックするか、コマンドラインからパラメーターなどを使用してインタラクティブに実行できます。バッシュで。
これはかなり長くなっていることに気づきましたが、少し余談があるかもしれませんが、PortaBashyと呼ぶバッチスクリプトも作成しました。これは、ポータブルCygwinインストールを含むネットワーク共有から同僚が起動できるようにします。次に、%PATH%変数を通常の* NIX形式(/ usr / bin:/ usr / sbin:/ bin:/ sbin)などに設定し、Bashシェル自体を起動するか、より強力でかなりMinTTY端末エミュレータ。
あなたがやろうとしていることを達成するための方法は常に数多くあります。それは仕事に適したツールを組み合わせるだけの問題であり、多くの場合、それは個人的な好みに帰着します。
これを行うためのもう1つの理論的な可能性があります。WindowsのプロフェッショナルバージョンにはPOSIXサポートが組み込まれているため、bashはWindows向けにネイティブにコンパイルされている可能性があります。
残念ですが、コンパイルされたものがまだ見つかりません...