「[[.NET 開発基盤部会 Wiki>http://dotnetdevelopmentinfrastructure.osscons.jp]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。

-[[戻る>Linuxの各種 手順]]

*目次 [#j8e31f98]
#contents

*概要 [#ubd87898]
Linux環境で環境を設定する方法。

**シェル変数 [#la71a9e1]
当該シェルのプロセスにのみ適用される。

**環境変数 [#h6d7c3d5]
-子プロセスにも適用される。
-永続化すると、他プロセスに適用される。

*詳細 [#o806cb88]

**設定 [#tddfa7dc]
**設定コマンド [#tddfa7dc]

***export 環境変数名 [#ic2fea53]
環境変数の設定
 HOGE=2000
 export HOGE

***export 環境変数名=値 [#r090e2c8]
環境変数の設定
 export HOGE=2000

***unset 環境変数名 [#b2d04f17]
環境変数の削除
 unset HOGE

***export -n 環境変数名 [#nb0a2756]
環境変数の削除
 export -n HOGE

***source シェルスクリプト [#r6bc5f97]
-set_hoge_env.shの内容
 HOGE=1000
 export HOGE

-シェルスクリプトを使用して設定
 $ source ./set_hoge_env.sh

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

**参照 [#q18bdc67]
**参照コマンド [#q18bdc67]

***env [#qa8dedc4]
 $ env
 ...環境変数の一覧

***export -p [#j107c2bd]
 $ export -p
 ...環境変数の一覧

***echo $環境変数名 [#u126e7a9]
 $ echo $SHELL
 /bin/bash

**環境変数の設定ファイル [#j5151857]
シェル構文不可(例:exportなし)

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

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

**汎用的な設定ファイル [#i52f7875]
|ファイル名|対象|タイプ|説明|h
|/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 [#mb4dc005]
-全ユーザ共通の設定を行う。
-ログイン時にのみ実行される。
-ユーザー単位では編集しない。

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

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

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

***~/.bashrc [#y590800f]
bashを追加起動したときに読み込まれる設定ファイル

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

***/etc/bashrc [#n47eef7f]
bashを追加起動したときに読み込まれる設定ファイル

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

***読み込み順番 [#h175eb4e]
+[[/etc/profile>#mb4dc005]]
+[[~/.bash_profile>#w20469ee]]
+上のファイルがなければ
++[[~/.bash_login>#ee5780fa]]
++[[~/.profile>#ka3a7ade]]
+[[~/.bashrc>#y590800f]]
+[[/etc/bashrc>#n47eef7f]]
+bash実行

*参考 [#hb6e76a0]
-【Linux】環境変数の確認・設定・削除・永続化について | アカスブログ~
https://ac-as.net/linux-environment-variable/

**Qiita [#m1445449]
-いまさらですが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

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS