質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
bash

bash(Bourne-again-Shell)は sh(Bourne Shell)のインプリメンテーションに様々な機能が追加されたシェルです。LinuxやMac OS XではBashはデフォルトで導入されています。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

Q&A

解決済

2回答

2727閲覧

Windows subsystem for linux で windowsのプログラムを動かす

Yhaya

総合スコア439

bash

bash(Bourne-again-Shell)は sh(Bourne Shell)のインプリメンテーションに様々な機能が追加されたシェルです。LinuxやMac OS XではBashはデフォルトで導入されています。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

0グッド

0クリップ

投稿2018/04/14 13:51

やりたいこと

最近、Windows機に"Windows subsystem for linux"を入れました。linuxですとさまざまなアプリ(Google ChromeやThunderbird)をbashの画面からコマンドを打つだけで実行できたと思うのですが、WSLでも同様なことができるのでしょうか?

つまり、WSLのbashから$ thunderbirdなどと打ってwindwows内に存在するthunderbirdを起動することなどはできますでしょうか?

よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

デフォルトでは、Windows環境でPATHが通っていればできます。なお、PATHが通っているとは、環境変数PATHにそのアプリまでのフォルダーのパスが記載されていると言うこととです。

コマンドプロンプトではnotepad.exeと打つとメモ帳が起動します。それと同じく、WSLのbashでもnotepad.exeと打つとメモ帳が起動します。ただ、逆に言うと、PATHが取っていなければ動きません。つまり、コマンドプロンプトでthunderbird.exeと打ってThunderbirdが起動できるような状態でなければ、bashでも起動しません。

なお、コマンドプロンプトではnotepadと拡張子".exe"を省略することができますが、bashでは省略せずに、".exe"を含めて書かなくてはいけません。コマンドプロンプトには実行ファイルの拡張子を補完する機能(拡張子PATHEXTで設定されている)がありますが、bashにはないからです。

通常、ThunderbirdなどのアプリはインストールしてもPATHを通しません。スタートメニューやデスクトップにあるショートカットを使うというのがWindowsの文化であり、コマンドプロンプト等から起動するという習慣がないからです。PATHがなければ、Windowsは実行すべきexeファイルがどこにあるのかというのを知ることができません。ですので、thunderbird.exeと打っても実行すべきexeファイルがどこにあるのかわからないのです。もし、そのようなアプリをコマンドで起動したい場合は、環境変数PATHを手動で追加する必要があります。

まとめますと

  • コマンドプロンプトから起動できるなら、bashでも起動できる。
  • コマンドプロンプトから起動できないなら、bashでも起動できない。
  • コマンドプロンプトで起動できるかどうかは、PATHが通っているか、つまり、環境変数PATHにパスが存在するかどうかによって決まる。
  • bashでは拡張子を省略せずに".exe"(バッチなどであれば".bat"等)を含めたファイル名を書く必要がある。(コマンドプロンプトでは省略可能)

なお、bash上で独自にthunderbirdへPATHを通すようにすればbashだけ起動することができます。また、特定のレジストリ値を設定することで、コマンドプロンプトで設定されるWindowsの環境PATHをbashで引き継がないようにすることもでき、その場合は、bash上でPATHを設定しないと、Windows関係のコマンドは一切使えません。

投稿2018/04/14 14:19

編集2018/04/14 14:51
raccy

総合スコア21735

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Yhaya

2018/04/14 14:36

コマンドプロンプトでnotepadは通りますがbashでは通りません。何か問題があるのでしょうか?
Yhaya

2018/04/14 14:41

また、コマンドプロンプトでpythonと打つとpython3.6.4が起動しますがbashで同じことをしますと2系が起動します。使っているpathが違う気がしているのですがどうなのでしょうか?
raccy

2018/04/14 14:50

すいません。`nodepad`ではなく`notepad.exe`と拡張子を省略せずに入力する必要がありました。回答を書き換えてきます。 pythonについては、WSLにあるpythonが使われていると思われます。両方が存在する場合、`echo $PATH`で表示された順番にファイルを探していき、最初に見つかったものを実行します。WSL上(/binや/usr/bin)の方がWindows上(/mnt/c/...)よりも優先されるため、WSLにコマンドがあれば、WSLのコマンドが実行されます。
Yhaya

2018/04/14 23:38

なるほど、わかりやすい説明ありがとうございました
guest

0

/mnt/c

がWindowsのCドライブを指すパスになっているので
この先の絶対パスを指定してやれば、
全てアプリケーションを実行できるはずです。

投稿2018/04/14 14:47

s4i

総合スコア139

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問