初心者が知っておくべき Linux 環境変数の設定に関する完全ガイド...

王林
リリース: 2024-02-05 13:00:18
転載
650 人が閲覧しました

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

Linux 环境变量配置全攻略,初学者必会…

次の例では、使用する環境は次のとおりです。

  • オペレーティング システム: Ubuntu 14.0
  • ユーザー名: うーさま
  • MySQL 環境変数を設定する必要があるパス: /home/uusama/mysql/bin

Linux で環境変数を表示する

環境変数を表示する方法は次のとおりです:

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

これら 2 つのコマンドを実行すると、次のような効果が得られます:

リーリー

PATH 変数は、コマンドを実行するための検索パスを定義します。異なるパスを区切るには、コロン : を使用します。export を使用して定義する場合は、二重引用符を追加できます。追加しないでください。

Linux环境变量配置方法一: export PATH

使用export命令直接修改PATH的值,配置MySQL进入环境变量的方法:

export PATH=/home/uusama/mysql/bin:$PATH

# 或者把PATH放在前面
export PATH=$PATH:/home/uusama/mysql/bin

ログイン後にコピー

注意事项:

  • 生效时间:立即生效
  • 生效期限:当前终端有效,窗口关闭后无效
  • 生效范围:仅对当前用户有效
  • 配置的环境变量中不要忘了加上原来的配置,即$PATH部分,避免覆盖原来配置

Linux环境变量配置方法二: vim ~/.bashrc

通过修改用户目录下的~/.bashrc文件进行配置:

vim ~/.bashrc

# 在最后一行加上
export PATH=$PATH:/home/uusama/mysql/bin
ログイン後にコピー

注意事项:

  • 生效时间:使用相同的用户打开新的终端时生效,或者手动source ~/.bashrc生效
  • 生效期限:永久有效
  • 生效范围:仅对当前用户有效
  • 如果有后续的环境变量加载文件覆盖了PATH定义,则可能不生效

Linux环境变量配置方法三: vim ~/.bash_profile

和修改~/.bashrc文件类似,也是要在文件最后加上新的路径即可

vim ~/.bash_profile

# 在最后一行加上
export PATH=$PATH:/home/uusama/mysql/bin
ログイン後にコピー

注意事项:

  • 生效时间:使用相同的用户打开新的终端时生效,或者手动source ~/.bash_profile生效
  • 生效期限:永久有效
  • 生效范围:仅对当前用户有效
  • 如果没有~/.bash_profile文件,则可以编辑~/.profile文件或者新建一个

Linux环境变量配置方法四:vim /etc/bashrc

该方法是修改系统配置,需要管理员权限(如root)或者对该文件的写入权限:

# 如果/etc/bashrc文件不可编辑,需要修改为可编辑
chmod -v u+w /etc/bashrc

vim /etc/bashrc

# 在最后一行加上
export PATH=$PATH:/home/uusama/mysql/bin
ログイン後にコピー

注意事项:

  • 生效时间:新开终端生效,或者手动source /etc/bashrc生效
  • 生效期限:永久有效
  • 生效范围:对所有用户有效

Linux环境变量配置方法五: vim /etc/profile

该方法修改系统配置,需要管理员权限或者对该文件的写入权限,和vim /etc/bashrc类似:

# 如果/etc/profile文件不可编辑,需要修改为可编辑
chmod -v u+w /etc/profile

vim /etc/profile

# 在最后一行加上
export PATH=$PATH:/home/uusama/mysql/bin
ログイン後にコピー

注意事项:

  • 生效时间:新开终端生效,或者手动source /etc/profile生效
  • 生效期限:永久有效
  • 生效范围:对所有用户有效

Linux环境变量配置方法六:vim /etc/environment“

该方法是修改系统环境配置文件,需要管理员权限或者对该文件的写入权限:

# 如果/etc/bashrc文件不可编辑,需要修改为可编辑
chmod -v u+w /etc/environment

vim /etc/profile

# 在最后一行加上
export PATH=$PATH:/home/uusama/mysql/bin
ログイン後にコピー

注意事项:

  • 有効時間: 新しいターミナルを開いて有効にするか、手動で source /etc/environment が有効になります
  • 有効期間: 永久
  • 有効範囲:全ユーザーに有効

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

環境変数のさまざまな構成方法が上にリストされていますが、Linux はこれらの構成をどのようにロードするのでしょうか?どのような順序でロードされますか?

特定のロード順序により、同じ名前の環境変数定義が上書きされたり、有効にならなくなったりします。

環境変数の分類

環境変数は、ユーザー定義の環境変数とシステムレベルの環境変数に単純に分けることができます。

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

さらに、ユーザー環境変数では、システムは最初に ~/.bash_profile (または ~/.profile) ファイルを読み取ります。 ~/.bash_login を読み取り、これらのファイルの内容に基づいて ~/.bashrc を読み取ります。

测试Linux环境变量加载顺序的方法

为了测试各个不同文件的环境变量加载顺序,我们在每个环境变量定义文件中的第一行都定义相同的环境变量UU_ORDER,该变量的值为本身的值连接上当前文件名称。

需要修改的文件如下:

  • /etc/environment
  • /etc/profile
  • /etc/profile.d/test.sh,新建文件,没有文件夹可略过
  • /etc/bashrc,或者/etc/bash.bashrc
  • ~/.bash_profile,或者~/.profile
  • ~/.bashrc

在每个文件中的第一行都加上下面这句代码,并相应的把冒号后的内容修改为当前文件的绝对文件名。

export 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加载环境变量的顺序如下:

  1. /etc/environment
  2. /etc/profile
  3. /etc/bash.bashrc
  4. /etc/profile.d/test.sh
  5. ~/.profile
  6. ~/.bashrc

Linux环境变量文件加载详解

由上面的测试可容易得出Linux加载环境变量的顺序如下,:

系统环境变量 -> 用户自定义环境变量
/etc/environment -> /etc/profile -> ~/.profile

打开/etc/profile文件你会发现,该文件的代码中会加载/etc/bash.bashrc文件,然后检查/etc/profile.d/目录下的.sh文件并加载。

# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).

if [ "$PS1" ]; then
  if [ "$BASH" ] && [ "$BASH" != "/bin/sh" ]; then
    # The file bash.bashrc already sets the default PS1.
    # PS1='\h:\w\$ '
    if [ -f /etc/bash.bashrc ]; then
      . /etc/bash.bashrc
    fi
  else
    if [ "`id -u`" -eq 0 ]; then
      PS1='# '
    else
      PS1='$ '
    fi
  fi
fi

if [ -d /etc/profile.d ]; then
  for i in /etc/profile.d/*.sh; do
    if [ -r $i ]; then
      . $i
    fi
  done
  unset i
fi
ログイン後にコピー

其次再打开~/.profile文件,会发现该文件中加载了~/.bashrc文件。

# if running bash
if [ -n "$BASH_VERSION" ]; then
    # include .bashrc if it exists
    if [ -f "$HOME/.bashrc" ]; then
  . "$HOME/.bashrc"
    fi
fi

# set PATH so it includes user's private bin directories
PATH="$HOME/bin:$HOME/.local/bin:$PATH"
ログイン後にコピー

~/.profile文件中代码不难发现,/.profile文件只在用户登录的时候读取一次,而/.bashrc会在每次运行Shell脚本的时候读取一次。

一些小技巧

#可以自訂一個環境變數文件,例如在某個專案下定義uusama.profile,在這個文件中使用export定義一系列變量,然後在 ~/.profile檔案後面加上:sourc uusama.profile,這樣你每次登陸都可以在Shell腳本中使用自己定義的一系列變數。

也可以使用alias指令定義一些指令的別名,例如alias rm="rm -i"(雙引號必須),並且把這個程式碼加入 ~/.profile中,這樣你每次使用rm指令的時候,都相當於使用rm -i指令,非常方便。

以上が初心者が知っておくべき Linux 環境変数の設定に関する完全ガイド...の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:lxlinux.net
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!