-
Notifications
You must be signed in to change notification settings - Fork 0
DNET_EnvVarSettings
nishi_74322014 edited this page Sep 11, 2026
·
1 revision
Linux環境で環境変数を設定する方法。
当該シェルのプロセスにのみ適用される。
- 子プロセスにも適用される。
- 永続化すると、他プロセスに適用される。
環境変数の設定
HOGE=2000
export HOGE
環境変数の設定
export HOGE=2000
環境変数の削除
unset HOGE
環境変数の削除
export -n HOGE
-
set_hoge_env.shの内容
HOGE=1000 export HOGE -
シェルスクリプトを使用して設定
$ source ./set_hoge_env.sh
※ ログイン時に実行されるシェルスクリプトを、
ログオフせずに、source で実行してしまう方法もある。
$ env
...環境変数の一覧
$ export -p
...環境変数の一覧
$ echo $SHELL
/bin/bash
シェル構文不可(例:exportなし)
- システム全体(全ユーザー)に影響する環境変数を定義するための設定ファイル。
- 通常の シェルスクリプト構文ではなく、KEY=VALUE の形式のみを使用。
- 非シェル環境でも読み込まれすべてのログインセッションに適用される。
- 通常はアプリケーションごとに使用されるローカルな環境変数ファイル
- 通常はアプリケーションのプロジェクト・ルートに置かれる。
- dotenv、Docker Compose など、特定のツールが読み込む前提で使われる。
| ファイル名 | 対象 | タイプ | 説明 |
|---|---|---|---|
| /etc/profile | 全ユーザ | ログインシェル用 | ユーザとしてログインした時に起動するシェル(ssh / tty / GUI)に1回だけ読み込まれる。 |
| /etc/profile.d/*.sh | 全ユーザ | ログインシェル用 | /etc/profile から呼び出される補助スクリプト群。 |
|
|
ユーザ単位 | bash ログイン用 | bashログイン時に実行。 |
| ~/.profile | ユーザ単位 | ログインシェル用 | POSIX準拠、非bash系(sh系)で使われる設定ファイル。 |
| ~/.bashrc | ユーザ単位 | 非ログインシェル用 | すでにログインしている状態で開く追加のシェル用(ターミナルを開いた時 / スクリプト実行時) |
|
|
ユーザ単位 | zsh用 | bash代替のzsh(Z シェル)の対話型シェルで読み込まれる。 |
- 全ユーザ共通の設定を行う。
- ログイン時にのみ実行される。
- ユーザー単位では編集しない。
- ユーザの[home]ディレクトリにある(無くても良い)。
- ログイン時にのみ実行される。
- bash用の環境変数はココに設定するのが推奨らしい。
- ユーザの[home]ディレクトリにある(無くても良い)。
- ~/.bash_profileが存在しない場合にコチラを読み込む。
- ログイン時にのみ実行される。
- ユーザの[home]ディレクトリにある(無くても良い)。
- ~/.bash_profile、~/.bash_loginが存在しない場合にコチラを読み込む。
- ログイン時にのみ実行される。
- 環境変数はココに設定するのが推奨らしい。
bashを追加起動したときに読み込まれる設定ファイル
- ユーザの[home]ディレクトリにある(無くても良い)。
- シェル変数を設定する。
- 以下を設定する。
- エイリアス
- シェルオプション
- プロンプト設定
bashを追加起動したときに読み込まれる設定ファイル
- 全ユーザ共通の設定を行う。
- bashを追加起動時にのみ実行される。
- ユーザー単位では編集しない。
- /etc/profile
- ~/.bash_profile
- 上のファイルがなければ
- ~/.bashrc
- /etc/bashrc
- bash実行
- 【Linux】環境変数の確認・設定・削除・永続化について | アカスブログ
https://ac-as.net/linux-environment-variable/
- いまさらですがLinuxで環境変数を設定したい
https://qiita.com/chihiro/items/bb687903ee284766e879 - [Linux]環境変数の読み込み順番
https://qiita.com/yunzeroin/items/480a3a677f78a57ac52f - 本当に正しい .bashrc と .bash_profile の使ひ分け
https://qiita.com/magicant/items/d3bb7ea1192e63fba850 - .bash_profile ? .bashrc ? いろいろあるけどこいつらなにもの?
https://qiita.com/hirokishirai/items/5a529c8395c4b336bf31
補足:「読み込み順番」はログインシェルの場合の流れ。 bash のログインシェルでは
~/.bash_profile/~/.bash_login/~/.profileの いずれか 1 つだけが読み込まれ(この優先順)、~/.bashrcはそこから明示的に呼び出されている場合に読み込まれる。/etc/bashrc(Debian/Ubuntu では/etc/bash.bashrc)は 対話的な非ログインシェルの起動時に~/.bashrcより先に読み込まれる。
移行メモ
- 概要の「Linux環境で環境を設定する方法。」は本ページの主題から 「Linux環境で環境変数を設定する方法。」の脱字と判断して修正した。
- 元 Wiki で HTML 実体参照(
~)で書かれていたチルダは 通常の~に戻した。- PukiWiki のページ内アンカ(
#xxxxxxxx)は GitHub Wiki では再現できないため、 同一ページ内のアンカは見出しから生成されるアンカに張り替えた。
Tags: 移行, 環境変数, Linux, bash, .bashrc, .bash_profile, /etc/profile, export, シェル変数
このWikiは「Open棟梁Project」,「OSSコンソーシアム 開発基盤部会」によって運営されています。