Skip to content

DNET_EnvVarSettings

nishi_74322014 edited this page Sep 11, 2026 · 1 revision

環境変数の設定方法

概要

Linux環境で環境変数を設定する方法。

シェル変数

当該シェルのプロセスにのみ適用される。

環境変数

  • 子プロセスにも適用される。
  • 永続化すると、他プロセスに適用される。

詳細

設定コマンド

export 環境変数名

環境変数の設定

HOGE=2000
export HOGE

export 環境変数名=値

環境変数の設定

export HOGE=2000

unset 環境変数名

環境変数の削除

unset HOGE

export -n 環境変数名

環境変数の削除

export -n HOGE

source シェルスクリプト

  • set_hoge_env.shの内容

    HOGE=1000
    export HOGE
    
  • シェルスクリプトを使用して設定

    $ source ./set_hoge_env.sh
    

※ ログイン時に実行されるシェルスクリプトを、
 ログオフせずに、source で実行してしまう方法もある。

参照コマンド

env

$ env
...環境変数の一覧

export -p

$ export -p
...環境変数の一覧

echo $環境変数名

$ echo $SHELL
/bin/bash

環境変数の設定ファイル

シェル構文不可(例:exportなし)

/etc/environment

  • システム全体(全ユーザー)に影響する環境変数を定義するための設定ファイル。
  • 通常の シェルスクリプト構文ではなく、KEY=VALUE の形式のみを使用。
  • 非シェル環境でも読み込まれすべてのログインセッションに適用される。

.env

  • 通常はアプリケーションごとに使用されるローカルな環境変数ファイル
  • 通常はアプリケーションのプロジェクト・ルートに置かれる。
  • dotenv、Docker Compose など、特定のツールが読み込む前提で使われる。

汎用的な設定ファイル

ファイル名 対象 タイプ 説明
/etc/profile 全ユーザ ログインシェル用 ユーザとしてログインした時に起動するシェル(ssh / tty / GUI)に1回だけ読み込まれる。
/etc/profile.d/*.sh 全ユーザ ログインシェル用 /etc/profile から呼び出される補助スクリプト群。
/.bash_profile(優先)、/.bash_login ユーザ単位 bash ログイン用 bashログイン時に実行。
~/.profile ユーザ単位 ログインシェル用 POSIX準拠、非bash系(sh系)で使われる設定ファイル。
~/.bashrc ユーザ単位 非ログインシェル用 すでにログインしている状態で開く追加のシェル用(ターミナルを開いた時 / スクリプト実行時)
/.zshrc(非ログイン)、/.zprofile(ログイン) ユーザ単位 zsh用 bash代替のzsh(Z シェル)の対話型シェルで読み込まれる。

/etc/profile

  • 全ユーザ共通の設定を行う。
  • ログイン時にのみ実行される。
  • ユーザー単位では編集しない。

~/.bash_profile

  • ユーザの[home]ディレクトリにある(無くても良い)。
  • ログイン時にのみ実行される。
  • bash用の環境変数はココに設定するのが推奨らしい。

~/.bash_login

  • ユーザの[home]ディレクトリにある(無くても良い)。
  • ~/.bash_profileが存在しない場合にコチラを読み込む。
  • ログイン時にのみ実行される。

~/.profile

  • ユーザの[home]ディレクトリにある(無くても良い)。
  • ~/.bash_profile~/.bash_loginが存在しない場合にコチラを読み込む。
  • ログイン時にのみ実行される。
  • 環境変数はココに設定するのが推奨らしい。

~/.bashrc

bashを追加起動したときに読み込まれる設定ファイル

  • ユーザの[home]ディレクトリにある(無くても良い)。
    • シェル変数を設定する。
    • 以下を設定する。
      • エイリアス
      • シェルオプション
      • プロンプト設定

/etc/bashrc

bashを追加起動したときに読み込まれる設定ファイル

  • 全ユーザ共通の設定を行う。
  • bashを追加起動時にのみ実行される。
  • ユーザー単位では編集しない。

読み込み順番

  1. /etc/profile
  2. ~/.bash_profile
  3. 上のファイルがなければ
    1. ~/.bash_login
    2. ~/.profile
  4. ~/.bashrc
  5. /etc/bashrc
  6. bash実行

参考

Qiita

補足:「読み込み順番」はログインシェルの場合の流れ。 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, シェル変数

NetDevInfraWiki

マイクロソフト系技術情報 Wiki
Open 棟梁 Wiki

(未着手)

開発基盤部会 Wiki

移行管理: DONETODO

Clone this wiki locally