ユーザーの環境変数を設定するにはどうすればいいですか?(セッションではなく永続的に)
これは私を苛立たせます。いくつかの提案(すべて異なるファイルと構文を使用)を見ましたが、どれもうまくいきませんでした。
特定のユーザのために環境変数を設定するにはどうしたらいいですか?私は debian squeeze を使用しています。 ABC = "123" とするためには、ファイルにどのような構文を書けばよいのでしょうか?
145
3
この宣言は、シェルの初期化ファイルに記述する必要があります。
bash, ash, ksh などの Bourne スタイルのシェルを使用している場合は
を
.profile
ファイル (${HOME}/.profile
) に追加することができます。これはほとんどのUnix、特にDebianではデフォルトの状態です。ログインシェルが bash の場合は、代わりに
.bash_profile
(${HOME}/.bash_profile
) または.bash_login
を使用することができます。注意: これらのファイルのいずれかが存在し、ログインシェルが bash の場合、ssh やテキストコンソールでログインしたときには
.profile
は読み込まれませんが、GUI でログインしたときには.bash_profile
の代わりに読み込まれる可能性があります。また、.bash_profile
がない場合は、.bashrc
を使います。zshをログインシェルとして設定している場合は、
~/.profile
の代わりに~/.zprofile
を使用してください。tcshを使用している場合は、以下を追加してください。
.login
ファイル(
${HOME}/.login`)にこれは、ほとんどすべてのシェルで使用できる一般的な手順です。いずれにしても、ユーザーが通常どのシェルでログインしているかを知る必要があります。
次に、このシェルが通常読むであろうドットファイルを把握する必要があります。
シェル名を含むドットファイルをリストアップするのが近道かもしれません。
これらのファイルがログイン時に実際に読み込まれているかどうかを確認したい場合は、単純にそれぞれのファイル名を表示します。
ログイン時に、どのファイルが読み込まれているかを確認し、どのファイルを修正するかを決定することができます。ただし、
echo "$0"
などを使ってはいけません。$0
の値はシェルがドットファイルをどのように処理するかに依存しており、誤解を招く可能性があるからです。変数を恒久的に宣言する場合、これはセッションにしか適用されないことに注意してください。セッションなしで変数の値にアクセスする方法はありませんので、セッション外では意味を持ちません。read-only"という意味であれば、それはシェルに依存しており、Bashでは次のように使用できます。
すでに値がある場合は
を使用して同時に割り当てることができます。すべてのシェルにこの機能があるわけではありません。
ほとんどのシェルで変数を宣言するには、変数名(
[A-Za-z_][A-Za-z0-9_]*
)の後に等号(等号の周りには*スペースを入れない)、そして値(単純な[A-Za-z0-9_]+
でない限り、できれば引用符で囲む)を使用する必要があります。例えば、以下のようになります。エクスポートを使う。
設定されているかどうかを確認するには
および/または
恒久的に追加するには、これを
~/.bashrc
ファイルに追加してください。