PATHやその他の環境変数とは何か、どのように設定したり使用したりすることができますか?

community-faq environment-variables path

Questions about

  • 環境変数を設定します
  • the PATH

は、ここでは非常によくあることで、ほとんどの場合、お互いに似たような回答になっています。将来的にはこれに適したQ/Aがあるといいですね

そこで質問なのですが、実行ファイルPATHのような環境変数とは何か、主要なOSではどのように変更して使うことができるのでしょうか?

良い答えは、環境変数、特にPATHがOSにとってどのような意味を持つのかの簡単な説明と、それに応じて設定したり読んだりする方法の簡単なガイドラインを含むことでしょう

  367  slhck  2011-05-16


ベストアンサー

環境変数とは?

環境変数は、オペレーティングシステムやユーザーセッションなど、現在の環境に関連する値を保持します

Path

最もよく知られているものの一つは、Windows、Linux、Mac OS XではPATHと呼ばれています。これは、コマンドラインでファイルへの全パスを知らずに入力しなくても起動できる、マシン上の実行プログラム*が置かれているディレクトリを指定します。(Windowsではスタートメニューの実行ダイアログやWin+R)

Linux と Mac OS X では、通常、現在のユーザに関連するすべての binsbin ディレクトリを保持しています。Windows では、少なくとも C:\WindowsC:\Windows\system32 ディレクトリが含まれています – コマンドラインや実行ダイアログから calc.exenotepad.exe を実行できますが、firefox.exe は実行できません。(Firefox は C:\Program Files\Mozilla Firefox にあります。Firefox を含める方法については、こちら を参照してください)

例えば、Windowsのコマンドラインでcalc.exeは省略可能)と入力すると、Windowsの電卓が起動します

%PATHEXT%を編集することで、.exe以外の拡張子にも対応することができます

Other

他の変数は、どのような種類のターミナルが使われているか(Linux/Mac OS XではTERM)、WindowsではWindowsフォルダの場所(例えば、%WINDIR%C:\Windows)をプログラムに伝えるかもしれません

新しい環境変数を作成します

Windows、Linux、Unixでは、新しい環境変数を作成することができ、その値は起動時にすべてのプログラムで利用可能になります

複数のマシンにインストールまたはデプロイされ、これらのマシンに固有の値を参照する必要があるスクリプトやプログラムを書くときに使用することができます。プログラム固有の設定を使用しても同様の効果が得られますが、複数のプログラムが同じ値にアクセスする必要がある場合は、環境変数を使用した方が簡単です

 

Windows
GUI

  1. Control Panel » System » Advanced » Environment Variablesを開く

  2. 実行ダイアログ(Win+R)にcontrol sysdm.cpl,,3と入力し、Environment Variablesをクリックします。 ユーザ変数を編集するには、以下のように入力します

    %windir%\System32\rundll32.exe sysdm.cpl,EditEnvironmentVariables
    

    を実行ダイアログで選択してください

  3. (マイ)コンピュータを右クリックしてプロパティをクリックするか、単にWin+Breakを押します

    • XPでAdvanced » Environment Variablesをクリックします
    • Vista+でAdvanced system settings » Environment Variablesをクリックします
  4. 他にも、スタートメニュー/画面の検索ボックスに「環境変数」と入力するなど、同じ場所にたどり着く方法はたくさんあります

Windowsの環境変数は、ユーザ固有の値とマシン/システム固有の値に分かれています。それらの値を表示したり編集したりすることができます。起動時の現在の値は、すべてのプログラムで利用可能です

また、Rapid Environment Editorもあり、システム設定の奥深くまで行かなくてもWindowsの環境変数を設定したり変更したりすることができます。パス環境を非常に便利に編集できるWindows用のもう一つのオープンソースプログラムは、パスエディタです

Command Line
Format

Windows の環境変数は、名前の周りにパーセント記号 (%) を付けて表示されます

%name%

echo

環境変数の値をcmd.exeに表示するには、echo %name%と入力します

C:\>echo %USERPROFILE%
C:\Users\Daniel

set

変数を作成/設定するには、set varname=valueを使用します

C:\>set FunnyCatPictures=C:\Users\Daniel\Pictures\Funny Cat Pictures

C:\>set FunnyCatPicturesTwo=%USERPROFILE%\Pictures\Funny Cat Pictures 2

変数を追加/追加するには、set varname=value;%varname%を使用します

C:\>set Penguins=C:\Linux

C:\>set Penguins=C:\Windows;%Penguins%

C:\>echo %Penguins%
C:\Windows;C:\Linux

このようにして設定された環境変数は、設定されたコマンドプロンプトのプロセスの間(残りの期間)利用可能であり、変数が設定された後に起動されたプロセスでも利用可能です

setx

変数を永続的に作成/設定するには、setx varname "value"を使用します

C:\>setx FunnyCatPictures "C:\Users\Daniel\Pictures\Funny Cat Pictures"

[Restart CMD]

C:\>echo %FunnyCatPictures%
C:\Users\Daniel\Pictures\Funny Cat Pictures

setとは異なり、等号はなく、値にスペースが含まれている場合は引用符で囲む必要があります。変数はスペースを含む文字列に展開される可能性があることに注意してください(例えば、%PATH%C:\Program Filesになります)

Vista より前のバージョンの Windows には、手動で setx を追加する必要があります。 Windows XP Service Pack 2 サポートツール

Windows環境変数の一覧です

ここは、Windowsに組み込まれているデフォルトの環境変数のリストです。いくつかの例があります。%WINDIR%, %SystemRoot%, %USERPROFILE%, および %APPDATA% です。Windows のほとんどの名前と同様に、これらの名前は大文字小文字を区別しません

 

Unix の派生製品 (FreeBSD, GNU / Linux, OS X)

Linux の環境変数は、$HOME や $HOSTNAME のように、ドル記号 ($) を先頭に付けます。よく知られている標準的な変数の多くは大文字で綴られています。変数名は大文字小文字を区別します。つまり、$User と $USER はシェルの観点からは全く無関係であることを意味します

Unix 派生版では、システム全体の変数をシェルスクリプトで定義していますが、 ホームフォルダにあるスクリプトでは、ユーザ固有の値が与えられることがあります (例えば、/etc/profile, $HOME/.bash_profile)。ホームフォルダ内の .profile ファイルは、ユーザー変数を定義するための一般的な場所です

Setting variables

これらのファイルは通常のシェルスクリプトであり、環境変数の宣言だけではありません。環境変数を設定するには、exportを使ってください。現在定義されている環境変数をターミナルに表示するには、envを実行してください

exportコマンドは、変数を定義するための標準的な方法です。構文は非常に直感的です。この2行では結果は同じですが、POSIX以前のボーンシェルへの移植性が必要な場合には、最初の選択肢が好ましいです

var=value; export var
export var=value

C シェルとその子孫は全く異なる構文を使用しています

このトピックについては、Linux ドキュメンテーションプロジェクトの Path HOWTO を参照してください

おそらく一般的な信念に反して、OS XはLinuxよりも「Unix」です。すでに述べたファイルに加えて、$PATHはこれらのファイルで変更することができます

  • /etc/pathsには、/bin/usr/sbinのように、パスに追加されたすべてのデフォルトのディレクトリが含まれています
  • /etc/paths.d の任意のファイル – インストーラが提供する実行ファイルを、システム全体やユーザ固有の設定ファイルに触れることなくシェルから利用できるようにするために、一般的に使用されています。これらのファイルは、単に一行に一つのパスを含んでいます

 

External Links:

XP の環境変数 Windows XP Service Pack 2 サポートツール (setxを含む) Windows Vista と Windows 7 の環境変数 実行ダイアログボックスに実行ファイルを追加する Mac OSX Tips – 環境変数の設定 TLDP.パスの使い方

356  Daniel Beck  2011-05-16


この投稿はダニエルよりも技術的な観点からの投稿ですが、概念の説明が少ないです


Wikipediaの記事も参考になります

Linux とほとんどの BSD

ほとんどのコマンドラインシェルでは、export (sh, bash, zsh) または setenv (csh, tcsh) コマンドを使って一時的な環境変数を設定します

  • bash や zsh で $HOME/bin から $PATH への前置詞の例

    export PATH="$HOME/bin:$PATH"
    

    (この場合、exportはすでにPATHが環境の一部になっているので不要です)

  • csh, tcsh:

    setenv PATH "$HOME/bin:$PATH"
    

永続的な環境変数は、いくつかの別々の段階で設定することができます

  • Login:

    • ログインセッションの設定。Linuxのpam_envで、通常は/etc/environmentから読み込んでいます

    • ターミナルのログイン。シェルの「プロファイル」ファイル

      • bash/etc/profileを使用し、/etc/profileの最初のものを使用します。~/.bash_profile, ~/.bash_login, ~/.profile.マニュアルページ bash(1) セクションの呼び出し

        多くの場合、ユーザのプロファイルファイルには、~/.bashrcの明示的な呼び出しも含まれています

      • zsh:マニュアルページ zsh(1) セクションの起動/シャットダウンファイル

      • cshなどのシェルを使用しています。適切なマニュアルページを参照してください

    • グラフィカルなログイン。ログインマネージャによって異なる場合があります。GDMは私のシステムでは~/.profileと読まれているようです

  • 端末のウィンドウを開く

    • bash/etc/bash.bashrc~/.bashrcを使います

Windows NTシリーズ

  • コマンドプロンプト(cmd.exe)で、そのウィンドウの環境変数を変更するには、set name=valueを使用します

    c:\bin%PATH%に追加するには、以下のようにします

    set path=%path%;c:\bin
    

    これは、そのcmd.exeプロセスと、そこから起動された新しいプロセスにのみ影響します

  • 永続的な変更を行うには、コントロールパネル→システム→詳細設定→環境変数を使用します。(docs)

    注意: ユーザ設定は通常システム設定を上書きしますが、PATH変数は特別に扱われます: システム設定とユーザ設定の両方が最終的な値にマージされます

    変更はレジストリに保存され(以下を参照)、エクスプローラ(グラフィカルシェル)で作成されたすべての新規プロセスに即座に適用されます(例えば、スタートメニューから)

  • システム全体の環境変数はレジストリHKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environmentに保持され、システム起動時に読み込まれます

    ユーザ環境はHKCU\Environmentに保持され、ユーザのログオン時に読み込まれます

  • デフォルトでは、システムはAUTOEXEC.NTファイル内のsetコマンドも探します

MS-DOS、16ビットWindows、Windows9xシリーズ

  • MS-DOSプロンプト(command.com)では、WinNTと同様にset name=valueを使用します

    同様に、setを対話的に実行しても、そのcommand.comインスタンスと、そこから起動された新しいプロセスにしか影響しません

  • 永続的な変更を行うには、C:\AUTOEXEC.BATに適切なset行を追加または編集してから再起動してください

    • Windows 9x の場合、再起動を避けるための回避策としては、MS-DOS プロンプトウィンドウを開き、適切な変数を設定し、既存のエクスプローラプロセスを閉じ(スタート→シャットダウン→Ctrl+Shift を押しながらキャンセルをクリック)、MS-DOS プロンプトウィンドウから explorer.exe を実行します

VMS

(Couldn’t resist.)

DCLには「パス」という概念はありませんが、SYS$LOGIN:LOGIN.COMには様々なシンボルやコマンドの定義を入れることができます

68  user1686  2011-05-16


bash シェル PATH のグローバル (末端ではない) 環境変数については、私は Ubuntu の VM インストールで使用されている規約に従っています – 他のシェルは異なるでしょう

警告: シェル全体の起動シーケンスは、.bashrc, .profile, などのファイルがどの順番でソースになっているのか? 新しく定義された変数やエイリアスなどを表示するために、いつ再ログインしなければならないのか?ログイン、対話型、非対話型シェルの違いは何か – 私は cron を使っていますか? とか、なぜ . ~/.bashrc を実行すると、私の愚かな PATH 変数がどんどん長くなっていくのか? とか、PATH 変数のことを考えているときに頭に浮かぶ重要な質問です

実際、私はUbuntuとcygwinのスケルトンファイルからアイデアを得て、bashのスタートアップファイルセット全体を完全に書き直したところで、ここに私のサイトのいくつかがあります

  1. PATHやその他のグローバル環境変数(つまりLD_LIBRARY_PATH)の変数を.profile;にエクスポートします
  2. ~/.profileのロジックを使用して、$HOME/.bashrcが存在する場合には、~/.profileをソースにします
  3. ~/.bashrcの実行をインタラクティブな実行テストで囲み、それ以外の場合は終了する;
  4. すべてのエイリアス、shoptの、プロンプトの設定、履歴制御、ターミナルの設定、関数の定義などを、対話モードでのみ動作するように保護されている~/.bashrcの部分に入れてください。(対話型関連の設定)を、対話型モードでのみ動作するように保護されている ~/.bashrc の部分に入れてください
  5. 他の bash スタートアップファイルを削除してください。つまり、特別な要件がない限り、~/.bash_profile & ~/.bash_login; を削除してください
  6. bashプロンプトでデフォルトの設定を更新する必要がある場合、私は~/.bashrcファイルを編集し、. ~/.bashrcでソースを作成して、現在のシェルに変更を反映させています
  7. PATHのような環境変数に変更を加える場合、~/.profile;を修正してソースにする必要があります
  8. 私は、フィンク、ポート、醸造に特化した設定の呼び出しを.profileに入れました

それがこの話題についての私の2セントです

10  Billy McCloskey  2014-01-15


Q: 環境変数とは何ですか?

A: 環境変数は、どのプログラミング言語でも変数に似ています。WindowsやUnixシステムの場合、プログラムやタスクが必要なOS情報や「環境」情報を取得できるように、様々な値を格納しています。例えば

USERPROFILE : OSファイル内のユーザディレクトリ

MAIL : OSのファイルの中で、ユーザのメールを見つけることができる場所

Q: PATH変数とは具体的に何ですか?

A: PATH変数は、コマンドが実行されたときに、RUNコマンドとプログラムからの内部呼び出しの両方で参照するディレクトリパスを設定します。これにより、プログラムが他の実行可能なプロセスを呼び出すためにインストール場所を知る必要がなくなります

これは Windows 環境システムの PATH 変数を見て、与えられた実行ファイルの各場所をテストします。このようにPATH変数に場所を追加することで、実行ファイルを直接呼び出すことができます

これによると、Wikipediaの記事

コマンドシェルでコマンドを入力したり、プログラムでシステムコールをしてプログラムを実行すると、システムはまず現在の作業ディレクトリを検索し、次にパスを検索して、左から右へと各ディレクトリを調べます


Q: PATH変数に場所を追加するには?

A: 環境変数PATH変数の変数文字列を編集して、実行ファイルの場所を含める必要があります

その方法の一つとして、こちらを説明します

  1. スタート]メニューを開き、[コンピュータ]を右クリックします。プロパティを選択します
  2. システムの詳細設定を選択します
  3. 詳細] タブで [環境変数] を選択します
  4. EDIT または NEW を選択します。(PATHの場合はEDITを選択する可能性が高い)
  5. 位置情報のパスを追加します。C:\wamp\bin\php\php5.5.12;

これで少しでも混乱が解消されるといいですね

10  user945389  2014-07-25


Windows10、管理者アカウントなし

コントロールパネル -> ユーザーアカウント -> ユーザーアカウント -> 環境変数を変更します

ユーザーアカウント」というヘッダーをクリックする必要があることに注意してください。Note you have to click on the header "User Accounts"をクリックする必要があります

ここでも、「ユーザーアカウント」というヘッダーをクリックする必要があります。Note again you have to click on the header "User Accounts" をクリックしてください

Change my environment variables

Environment Variables

2  Raf  2020-02-26


タイトルとURLをコピーしました