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

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

新規登録して質問してみよう
ただいま回答率
85.46%
Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

パス

パス(path)はファイルシステムの場所(階層)を明示したものです。

Q&A

解決済

3回答

8064閲覧

そもそも環境変数って何?pathを通すとは?

Fsho

総合スコア6

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

パス

パス(path)はファイルシステムの場所(階層)を明示したものです。

0グッド

5クリップ

投稿2020/05/02 10:55

大学でプログラミングを学んでいるものです。
最近プログラミング言語の環境開発のときによく「環境変数」とか「パスを通す」とかといった言葉をよく耳にします。そもそも環境変数とは何なのでしょうか?自分でもいろいろ調べてみましたが専門用語を使った説明が多く何を言っているのかさっぱりわかりません。そこで下記のことについてできるだけわかりやすく説明してくださると助かります。
0. 環境変数とは何か?
0. どういった場面で環境変数を利用する/利用されているのか?
0. pathを通すとは何か?

回答よろしくおねがいします。

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

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

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

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

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

meg_

2020/05/02 11:05

講師に聞いてはどうでしょうか?
Fsho

2020/05/02 11:21

今大学が閉まっているので直接は少し難しいですね。
meg_

2020/05/02 11:39

リモート授業とかないんですか?
Fsho

2020/05/02 11:48

まだ授業自体が始まってない状況です。
meg_

2020/05/02 11:57

そうなんですね。「大学でプログラミングを学んでいる」と書かれていたので、てっきり授業を受けていると思いました。 ご自身で色々調べても分からないのなら、授業が始まってから先生に聞いた方が良いかもしれません。 環境構築の際にはとりあえずチュートリアルに従えば良いでしょう。繰り返す内に頭の理解が付いてくることもあるかと思います。
guest

回答3

0

ベストアンサー

環境変数とは

変数の一種です。

変数とは

方程式に使うやつです。数学の変数にはだいたい数値が入っていますが、コンピューターサイエンスの変数にはそれ以外のデータも入り、数式以外にも使います

環境変数の特徴

  • 環境変数には文字列が入ります。

  • 環境変数は OS によって管理され、その上で動く複数のソフトが共同で使います。

  • 環境変数はコンピュータの電源を切っても初期化されません。

  • ユーザー毎に違う値が入っています。(Windows のシステム環境変数は全ユーザー共通です)

共同で使うとは

あるソフトがある環境変数に代入した値を、他のソフトが読んだり変更したりできます
ただし、即時反映されるわけではありません。ソフトウェアは起動時に環境変数を読み込み(OS によって書き込まれるのでちょっと表現は微妙)、他のソフトが書き替えたとしても、再度読み込むまでは以前のものを使います

環境変数を何に使うのか

用途は様々ですが、主にユーザーの好みの動作を記録しておいたり、特定のソフトの実行に必要な情報を保持したりします

なぜ環境変数と言うのか

ソフトウェアが動作するにあたって影響のある、ディレクトリ構成やインストールされたソフトなどの情報をひっくるめて「動作環境」と言います。環境変数を使用して、ソフトウェアに環境の情報を提供するから、また環境設定に使用するからです

PATH(パス)とは

数ある環境変数のうちの一つです。

環境変数ではないパス

パスは元々は小道という意味で、任意のファイルの位置の特定に使われます。例えば "C:\Program Files\PowerShell\7\pwsh.exe" のようにルートディレクトリ(ドライブ名:)からのパス(道)を使ってファイルを特定できます。「\」で始まるパスを絶対パスと言い、そうでないものを他のディレクトリからの相対パスと言います。「\」の前にドライブ名やコンピューター名がつくことがありますが、ルートディレクトリを考える時には、それは除いて考えます。

環境変数であるパス

環境変数 PATH には、複数のディレクトリへのパスを登録します。

環境変数パスの使い道

実行ファイルを実行するには、コマンドプロンプトから例えば "C:\Program Files\PowerShell\7\pwsh.exe" のように打ち込みます。しかし、いちいち長いパスを打ち込むのは面倒なので、実行ファイルがどこにあるかをあらかじめ PATH に登録します。それにより、pwsh.exe と打ち込むだけで "C:\Program Files\PowerShell\7\pwsh.exe" を起動することができるようになります。

パスを通すとは

環境変数 PATH に実行ファイルのあるディレクトリまでのパスを登録することです。PATH は各ディレクトリのパスをセミコロン区切りで並べます。OS はそれを順に探索して実行すべきファイルを探します。

パスの通し方

OS によって違います。
Windows 10 の場合は次を参考にしてください。

Windows 10でPath環境変数を設定/編集する:Tech TIPS - @IT

投稿2020/05/02 11:52

編集2020/05/02 12:50
Zuishin

総合スコア28662

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

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

pepperleaf

2020/05/02 12:05

ご苦労さまです。 ただ、質問者さんは、Windowみたいなので、"「/」で始まるパスを絶対パスと言い、"と書かれても困らない?
Zuishin

2020/05/02 12:06

ありがとうございます。Windows10 のタグがついていますね。書き直します。
Fsho

2020/05/02 12:28 編集

つまり環境変数というのは数値、プログラム、ファイルなどを保管しておく箱のようなものでそれぞれの箱には名前がついている。その箱の一部にpathというような名前の箱があり、そこにプログラムがかかれているファイルの場所などを入れておけば直ぐにアクセスでき効率がいい。 大雑把な解釈ですがあってますかね?
Zuishin

2020/05/02 12:30

だいたい合ってます。環境変数には文字列しか入らないし、文字数制限がありますからプログラムなどを入れるのは難しいと思いますが。
Fsho

2020/05/02 12:59

なるほど。 とても勉強になりました。ありがとうございます。
guest

0

こういう基本的なことが理解できないというのは、何が理解を妨げているのか、に合わせて説明をしないといけません。
普通に説明してもおそらく、今までの解説と同じく理解できないと思われます。

学生さんということで、教えてくれる人が居る訳なので、1対1で会話することをお勧めします。いまだとリモートでしょうけど、メールでも良いと思います。

取りあえず説明しておくと、

1.環境変数とは、プログラムの外からプログラムに情報を与える手段の一つです。他には、プログラム起動時のパラメーター、ファイルや端末からの入力など。

2.1に書いた他の方法と比較すると、環境変数は、複数のプログラムに同じような情報を与えたい場合によく使われます。わかりやすいのは言語設定。
Unix/Linuxだと、LANG=ja_JP.utf-8とすると多くのプログラムがメッセージを日本語にします。LANG=en_US.utf-8だと英語(米語)になります。
もちろん、特定のプログラムだけに影響する環境変数もあります。

3.GUIしか使ってないとぴんとこないとおもいますが、コマンドラインでプログラムを起動するには、プログラムの入ったファイル名の入力が必要です。
毎回、/usr/bin/vimとか打つのは面倒なので、vimとだけ打てば/usr/bin/vimが起動するようにする仕組みがPATHです。
ディレクトリを省略して名前だけ入力されたときに、PATHに書かれたディレクトリを順番に探して最初に見つかったvimを実行します。
PATHでファイルが検索できるようにする」ことを指して「PATHを通す」というようです。
人間が打ったファイル名だけでなくて、プログラムからプログラムを起動する際にもPATHが参照されます。つまり、多くのプログラムに共通した情報なので、環境変数が使われています。

<以下は理解しにくければ、一旦先送りでも良いです>
初心者が環境変数ではまりやすそうなこととしては、環境変数がプロセス毎の値だと言うことですね。起動中のあるプログラムXで環境変数を書き換えても、既に起動されているプログラムYの環境変数には影響しません。
プログラムXが新たに起動したプログラムZの環境変数の初期値が、その時点のXの環境変数のコピーが渡されるという風に関係します。Zの起動後はXとZの環境変数はそれぞれ別物です。

投稿2020/05/02 11:37

otn

総合スコア84798

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

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

pepperleaf

2020/05/02 11:59

> 環境変数がプロセス毎の値だと言うこと 確かに間違いは無いと思うのですが、、、Windowsの場合、システムの環境変数があるので、ちょっと違いませんか? (質問者は Windows10) あ、Unix/Linuxもあったか。ただ、Windowsの場合、アプリをインストールすると、ここに追加され、影響する事が多いです。
otn

2020/05/02 12:16

システム環境変数として設定された物でも、プロセスが起動された後は独立だと思ってましたが、違うんでしょうか?
pepperleaf

2020/05/03 03:20

プロセスが起動された後は独立ですが、Windowsの場合、システム環境変数そのまま、または、追加で使う事が多いと思いますが、違うでしょうか? (最近、それが多過ぎで閉口してますが) 最近のLinuxは確認してませんが、昔のUnixは、シンプルだった記憶。
otn

2020/05/03 03:38

補足部分では、 ・プロセス起動時の初期値は? ・プロセスが起動された後は独立 の2点を説明しています。 > システム環境変数そのまま、または、追加で使う事が多いと思いますが、違うでしょうか? は私の補足内容とは関係ないです。
pepperleaf

2020/05/03 05:05

> 補足部分では、 は、 > <以下は理解しにくければ、... の箇所でしょうか? 今、改めて読むと指摘の通りですね。 ずっとWindowsメインで使っているので、読み違えたかもです。ただ、Windows&初心者だと(書かれているように)理解が大変でしょうか。ストーリは間違えていないとは思うのですが、Windowsユーザーにはちょっと厳しい...?
guest

0

大学でプログラミングを学んでいるということですので
片手間の説明では納得されないと思いますので、少し詳しい説明となりますが、
下記の記事を参考にされるといいかと思います。

Qiita記事:Windows環境変数の超基本を理解する為のアプローチ

https://qiita.com/jeyei/items/2c385e4e0488a5fa2591

わかりやすくというのを忘れてました・・。無視してください。

簡単にいうと、プログラム言語の場所を環境変数で定義しておいて、pathを通すとは実際の
プログラム言語の実行環境(exe)の場所を設定するという意味でしょうか・・。

誰かに怒られそうなので、スルーしてください。

投稿2020/05/02 11:01

編集2020/05/02 11:05
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

退会済みユーザー

退会済みユーザー

2020/05/02 11:18

リンクはMarkdown記法を使ってください。 [リンク](http://)
退会済みユーザー

退会済みユーザー

2020/05/02 11:20

なるほど、勉強になります。ありがとうございました。 表のマークを押すのですが、表をつくれない等、勉強不足です。
退会済みユーザー

退会済みユーザー

2020/05/02 12:08 編集

すこし勘違いしたコメント書きました。 気にしないでください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問