Questions about
- 環境変数を設定します
- the
PATH
は、ここでは非常によくあることで、ほとんどの場合、お互いに似たような回答になっています。将来的にはこれに適したQ/Aがあるといいですね
そこで質問なのですが、実行ファイルPATH
のような環境変数とは何か、主要なOSではどのように変更して使うことができるのでしょうか?
良い答えは、環境変数、特にPATH
がOSにとってどのような意味を持つのかの簡単な説明と、それに応じて設定したり読んだりする方法の簡単なガイドラインを含むことでしょう
367 slhck 2011-05-16
環境変数とは?
環境変数は、オペレーティングシステムやユーザーセッションなど、現在の環境に関連する値を保持します
Path
最もよく知られているものの一つは、Windows、Linux、Mac OS XではPATH
と呼ばれています。これは、コマンドラインでファイルへの全パスを知らずに入力しなくても起動できる、マシン上の実行プログラム*が置かれているディレクトリを指定します。(Windowsではスタートメニューの実行ダイアログや+R)
Linux と Mac OS X では、通常、現在のユーザに関連するすべての bin
と sbin
ディレクトリを保持しています。Windows では、少なくとも C:\Windows
と C:\Windows\system32
ディレクトリが含まれています – コマンドラインや実行ダイアログから calc.exe
や notepad.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
Control Panel » System » Advanced » Environment Variables
を開く実行ダイアログ(
+R)に
control sysdm.cpl,,3
と入力し、Environment Variables
をクリックします。 ユーザ変数を編集するには、以下のように入力します%windir%\System32\rundll32.exe sysdm.cpl,EditEnvironmentVariables
を実行ダイアログで選択してください
(マイ)コンピュータを右クリックしてプロパティをクリックするか、単に
+Breakを押します
- XPで
Advanced » Environment Variables
をクリックします - Vista+で
Advanced system settings » Environment Variables
をクリックします
- XPで
他にも、スタートメニュー/画面の検索ボックスに「環境変数」と入力するなど、同じ場所にたどり着く方法はたくさんあります
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
を実行します
- Windows 9x の場合、再起動を避けるための回避策としては、MS-DOS プロンプトウィンドウを開き、適切な変数を設定し、既存のエクスプローラプロセスを閉じ(スタート→シャットダウン→Ctrl+Shift を押しながらキャンセルをクリック)、MS-DOS プロンプトウィンドウから
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のスタートアップファイルセット全体を完全に書き直したところで、ここに私のサイトのいくつかがあります
PATH
やその他のグローバル環境変数(つまりLD_LIBRARY_PATH
)の変数を.profile
;にエクスポートします~/.profile
のロジックを使用して、$HOME/.bashrc
が存在する場合には、~/.profile
をソースにします~/.bashrc
の実行をインタラクティブな実行テストで囲み、それ以外の場合は終了する;- すべてのエイリアス、
shopt
の、プロンプトの設定、履歴制御、ターミナルの設定、関数の定義などを、対話モードでのみ動作するように保護されている~/.bashrc
の部分に入れてください。(対話型関連の設定)を、対話型モードでのみ動作するように保護されている~/.bashrc
の部分に入れてください - 他の bash スタートアップファイルを削除してください。つまり、特別な要件がない限り、
~/.bash_profile
&~/.bash_login
; を削除してください - bashプロンプトでデフォルトの設定を更新する必要がある場合、私は
~/.bashrc
ファイルを編集し、. ~/.bashrc
でソースを作成して、現在のシェルに変更を反映させています PATH
のような環境変数に変更を加える場合、~/.profile
;を修正してソースにする必要があります- 私は、フィンク、ポート、醸造に特化した設定の呼び出しを
.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変数の変数文字列を編集して、実行ファイルの場所を含める必要があります
その方法の一つとして、こちらを説明します
- スタート]メニューを開き、[コンピュータ]を右クリックします。プロパティを選択します
- システムの詳細設定を選択します
- 詳細] タブで [環境変数] を選択します
- EDIT または NEW を選択します。(PATHの場合はEDITを選択する可能性が高い)
- 位置情報のパスを追加します。
C:\wamp\bin\php\php5.5.12;
これで少しでも混乱が解消されるといいですね
10 user945389 2014-07-25
Windows10、管理者アカウントなし
コントロールパネル -> ユーザーアカウント -> ユーザーアカウント -> 環境変数を変更します
ユーザーアカウント」というヘッダーをクリックする必要があることに注意してください。をクリックする必要があります
ここでも、「ユーザーアカウント」というヘッダーをクリックする必要があります。 をクリックしてください
2 Raf 2020-02-26