Linux環境変数の設定に関する完全なガイド

Linux環境変数の設定に関する完全なガイド

Linux環境変数の設定

ソフトウェアのインストールをカスタマイズする場合、多くの場合、環境変数を設定する必要があります。以下に、環境変数を設定するためのさまざまな方法を示します。

以下のすべての例の環境は次のとおりです。

  • システム: Ubuntu 14.0
  • ユーザー名: uusama
  • MySQL環境変数パスを設定する必要があります: /home/uusama/mysql/bin

Linuxは環境変数を読み取ります

環境変数を読み取る方法:

  • エクスポートコマンドは、現在のシステムで定義されているすべての環境変数を表示します。
  • echo $PATHコマンドは、現在のPATH環境変数の値を出力します。

これら2つのコマンドを実行した場合の効果は次のとおりです。

uusama@ubuntu:~$ エクスポート
-x HOME="/home/uusama" を宣言します
-x LANG="en_US.UTF-8" を宣言します
-x LANGUAGE="en_US:" を宣言します
-x LESSCLOSE="/usr/bin/lesspipe %s %s" を宣言します
-x LESSOPEN="| /usr/bin/lesspipe %s" を宣言します
-x LOGNAME="uusama" を宣言します
-x MAIL="/var/mail/uusama" を宣言します。
-x PATH="/home/uusama/bin:/home/uusama/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" を宣言します。
-x SSH_TTY="/dev/pts/0" を宣言します。
-x TERM="xterm" を宣言します
-x USER="uusama" を宣言します

uusama@ubuntu:~$ echo $PATH
/home/uusama/bin:/home/uusama/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

PATH 変数は、コマンドを実行するための検索パスを定義します。異なるパスはコロンで区切られます。エクスポート定義を使用する場合は、二重引用符を追加することも追加しないこともできます。

Linux環境変数の設定方法1: PATHをエクスポートする

export コマンドを使用して PATH の値を直接変更し、環境変数を入力するように MySQL を構成します。

PATH=/home/uusama/mysql/bin:$PATH をエクスポートします

# または、先頭に PATH を置きます export PATH=$PATH:/home/uusama/mysql/bin

注記:

  • 有効時間: 即時
  • 有効期間: 現在の端末で有効、ウィンドウが閉じられた後は無効
  • 効果範囲: 現在のユーザーのみ有効
  • 元の設定を上書きしないように、設定された環境変数、つまり$PATH部分に元の設定を追加することを忘れないでください。

Linux 環境変数の設定方法 2: vim ~/.bashrc

ユーザー ディレクトリの ~/.bashrc ファイルを変更して設定します。

vim ~/.bashrc

# 最後の行に export PATH=$PATH:/home/uusama/mysql/bin を追加します

注記:

  • 有効時間: 同じユーザーで新しいターミナルを開くか、手動でsource ~/.bashrcときに有効になります。
  • 発効日: 永久
  • 効果範囲: 現在のユーザーのみ有効
  • 後続の環境変数読み込みファイルによって PATH 定義が上書きされると、有効にならない可能性があります。

Linux 環境変数の設定方法 3: vim ~/.bash_profile

~/.bashrc ファイルを変更する場合と同様に、ファイルの末尾に新しいパスを追加するだけです。

vim ~/.bash_profile

# 最後の行に export PATH=$PATH:/home/uusama/mysql/bin を追加します

注記:

  • 有効時間: 同じユーザーで新しいターミナルを開くか、手動で~/.bash_profileをsourceしたときに有効になります。
  • 発効日: 永久
  • 効果範囲: 現在のユーザーのみ有効
  • ~/.bash_profileファイルがない場合、~/.profileファイルを編集するか、新しいファイルを作成します。

Linux環境変数の設定方法4: vim /etc/bashrc

この方法はシステム構成を変更するもので、管理者権限 (root など) またはファイルへの書き込み権限が必要です。

# /etc/bashrc ファイルが編集可能でない場合は、編集可能になるように変更する必要があります chmod -v u+w /etc/bashrc

vim /etc/bashrc

# 最後の行に export PATH=$PATH:/home/uusama/mysql/bin を追加します

注記:

  • 有効時間: 新しいターミナルを開くか、/etc/bashrcを手動でsourceしたときに有効になります。
  • 発効日: 永久
  • 影響範囲: すべてのユーザーに適用

Linux 環境変数の設定方法 5: vim /etc/profile

この方法はシステム構成を変更するため、 vim /etc/bashrcと同様に、管理者権限またはファイルへの書き込み権限が必要です。

# /etc/profile ファイルが編集可能でない場合は、編集可能になるように変更する必要があります chmod -v u+w /etc/profile

vim /etc/プロファイル

# 最後の行に export PATH=$PATH:/home/uusama/mysql/bin を追加します

注記:

  • 有効時間: 新しいターミナルを開いたとき、または手動で/etc/profileをsourceしたときに有効になります。
  • 発効日: 永久
  • 影響範囲: すべてのユーザーに適用

Linux環境変数の設定方法6: vim /etc/environment

この方法は、システム環境構成ファイルを変更するもので、管理者権限またはファイルへの書き込み権限が必要です。

# /etc/bashrc ファイルが編集可能でない場合は、編集可能になるように変更する必要があります chmod -v u+w /etc/environment

vim /etc/プロファイル

# 最後の行に export PATH=$PATH:/home/uusama/mysql/bin を追加します

注記:

  • 有効時間: 新しいターミナルを開くか、/etc/environmentを手動でsourceしたときに有効になります。
  • 発効日: 永久
  • 影響範囲: すべてのユーザーに適用

Linux環境変数読み込み原理の分析

上記では環境変数のさまざまな設定方法をリストしましたが、Linux はこれらの設定をどのように読み込むのでしょうか?どのような順序でロードされますか?

特定の読み込み順序により、同じ名前の環境変数定義が上書きされたり、無効になったりする可能性があります。

環境変数の分類

環境変数は、ユーザー定義の環境変数とシステムレベルの環境変数に簡単に分けられます。

  • ユーザーレベルの環境変数定義ファイル: ~/.bashrc、~/.bash_profile
  • システムレベルの環境変数定義ファイル: /etc/bashrc、/etc/bash_profile、/etc/environment

また、ユーザー環境変数では、システムはまず ~/.bash_profile ファイルを読み取ります。ファイルが存在しない場合は、~/.bash_login を読み取ります。ファイルも存在しない場合は、~/.profile を読み取り、次にこれらのファイルの内容に基づいて ~/.bashrc を読み取ります。

Linux環境変数の読み込み順序をテストする方法

異なるファイルに対して環境変数がロードされる順序をテストするために、各環境変数定義ファイルの最初の行に同じ環境変数 UU_ORDER を定義します。この変数の値は、現在のファイル名に連結された独自の値です。

変更する必要があるファイルは次のとおりです。

  • /etc/環境
  • /etc/プロファイル
  • /etc/profile.d/test.sh、新しいファイルを作成します。フォルダーをスキップすることはできません
  • /etc/bashrc または /etc/bash.bashrc
  • ~/.bash_profile、または ~/.profile
  • ~/.bashrc

各ファイルの最初の行に次のコードを追加し、コロンの後の内容を現在のファイルの絶対ファイル名に変更します。

エクスポート UU_ORDER="$UU_ORDER:~/.bash_profile"

変更後、保存し、新しいウィンドウを開いて、 echo $UU_ORDER変数の値を確認します。

uusama@ubuntu:~$ echo $UU_ORDER
$UU_ORDER:/etc/environment:/etc/profile:/etc/bash.bashrc:/etc/profile.d/test.sh:~/.profile:~/.bashrc

Linux が環境変数をロードする順序は次のようになると考えられます。

  • /etc/環境
  • /etc/プロファイル
  • ディレクトリ
  • プロファイル
  • ~/.プロファイル
  • ~/.bashrc

Linux環境変数ファイルの読み込みの詳細な説明

上記のテストから、Linux が環境変数をロードする順序は次のようになることが簡単にわかります。

システム環境変数 -> ユーザー定義環境変数

/etc/environment -> /etc/profile -> ~/.profile

/etc/profile ファイルを開くと、このファイル内のコードが /etc/bash.bashrc ファイルを読み込み、次に /etc/profile.d/ ディレクトリ内の .sh ファイルを確認して読み込むことがわかります。

# /etc/profile: Bourne シェル (sh(1)) のシステム全体の .profile ファイル
# および Bourne 互換シェル (bash(1)、ksh(1)、ash(1)、...)。

[ "$PS1" ]の場合;
 [ "$BASH" ] && [ "$BASH" != "/bin/sh" ] の場合、
 # ファイル bash.bashrc ではすでにデフォルトの PS1 が設定されています。
 # PS1='\h:\w\$'
 [ -f /etc/bash.bashrc ]の場合;
 . /etc/bash.bashrc
 フィ
 それ以外
 [ "`id -u`" -eq 0 ]の場合;
 PS1='#'
 それ以外
 PS1='$'
 フィ
 フィ
フィ

[ -d /etc/profile.d ]の場合;
 /etc/profile.d/*.sh の i に対して、
 [ -r $i ]の場合;
 . $i
 フィ
 終わり
 設定解除 i
フィ

次に、~/.profile ファイルを開くと、その中に ~/.bashrc ファイルが読み込まれていることがわかります。

# bashを実行している場合
if [ -n "$BASH_VERSION" ]; then
 # .bashrc が存在する場合はそれを含める
 [ -f "$HOME/.bashrc" ]の場合;
 . "$HOME/.bashrc"
 フィ
フィ

# ユーザーのプライベートbinディレクトリを含むようにPATHを設定します
PATH="$HOME/bin:$HOME/.local/bin:$PATH"

~/.profile ファイル内のコードから、/.profile ファイルはユーザーがログインしたときに 1 回だけ読み取られ、/.bashrc はシェル スクリプトが実行されるたびに 1 回読み取られることがわかります。

いくつかのヒント

環境変数ファイルをカスタマイズできます。たとえば、特定のプロジェクトの下にuusama.profileを定義し、エクスポートを使用してこのファイルに一連の変数を定義し、~/.profile ファイルの後にsourc uusama.profileを追加します。このようにして、ログインするたびに、シェル スクリプトで定義した一連の変数を使用できます。

また、alias コマンドを使用して、 alias rm="rm -i" (二重引用符が必要) などのコマンド エイリアスを定義し、このコードを ~/.profile に追加することもできます。この方法では、rm コマンドを使用するたびに、rm -i コマンドを使用するのと同じになり、非常に便利です。

要約する

以上がこの記事の全内容です。この記事の内容が皆様の勉強や仕事に何らかの参考学習価値をもたらすことを願います。123WORDPRESS.COM をご愛顧いただき、誠にありがとうございます。

以下もご興味があるかもしれません:
  • Linux環境で環境変数を設定する方法
  • Linux環境変数ファイルの簡単な紹介
  • Linux 環境変数の設定方法のまとめ (.bash_profile と .bashrc の違い)
  • Linux で Bash 環境変数を設定する方法
  • Linux環境変数の設定戦略の詳細な説明
  • Linux システムで Java 環境変数を設定する方法
  • Linux での Java 環境変数のインストールと設定
  • Linuxで環境変数を設定するための詳細な手順
  • Linux で環境変数 JAVA_HOME を変更/設定する方法について簡単に説明します。

<<:  本番環境でのMySQLパラメータsql_safe_updatesの使用に関する詳細な説明

>>:  JavaScript でオブザーバー パターンを実装する方法

推薦する

Rancher のデプロイメントと K8S クラスターのインポートに関する問題

Rancher のデプロイメントには、次の 3 つのアーキテクチャがあります。高可用性 Kubern...

JavaScriptを使用して独自のAjax関数を定義する

ネイティブJSによって開始されたネットワークリクエストは、クエリ文字列の形でサーバーに送信されるため...

SQLはROW_NUMBER() OVER関数を使用してシーケンス番号を生成します。

構文: ROW_NUMBER() OVER(PARTITION BY COLUMN ORDER BY...

JavaScript でタブバーの切り替え効果を実装する

フロントエンド開発者が必ず知っておくべきケースとして、タブバーの切り替え効果があります。タブバー自体...

非常に実用的なMySQL関数の包括的な概要、詳細な例の分析チュートリアル

目次1. MySQLの関数の説明2. 単行関数の分類3. キャラクター機能4. 数学関数5. 日付と...

Dockerは指定されたメモリで操作を実行します

次のように: -m, --memory メモリ制限。形式は数値と単位です。単位は b、k、m、g の...

MySQL インデックス障害の上位 10 の問題の概要

目次背景1. クエリ条件に「or」が含まれているため、インデックスが失敗する可能性があります。 2....

html mailto(メール)の実用化について

ご存知のとおり、mailto は Web デザインと制作において非常に実用的な HTML タグです。...

CSS の無効な行の高さ設定の問題の解決策

CSS の無効な行の高さ設定についてまず、次のコード文字列を記述します。 <!DOCTYPE ...

CentOS7 64 ビットでの MySQL 5.7 のインストールと設定のチュートリアル

インストール環境: CentOS7 64ビットMINI版、MySQL5.7をインストール1. YUM...

CentOS IP接続ネットワーク実装プロセス図

1. システムにログインし、ディレクトリに入ります: cd /etc/sysconfig/netwo...

Vueは複数列レイアウトドラッグを実装します

この記事では、マルチカラムレイアウトドラッグを実装するためのVueの具体的なコードを参考までに共有し...

Reactで例外を適切にキャプチャする方法

目次序文エラー境界エラー境界を超えてトライ/キャッチwindow.onerror、エラーイベント未処...

vue-router のハッシュモードと履歴モードの違い

vue-routerには2つのモードがありますハッシュモード履歴モード1. シングルページアプリケー...

フロントエンドの面接の質問の最も包括的なコレクション

HTML+CSS 1. WEB 標準と W3C の理解と知識<br /> タグを閉じ、小...