Linux操作系统基础(11):Linux的环境变量

1. 环境变量的介绍

在Linux系统中,环境变量是一种用于存储系统环境信息的特殊变量,包含了系统运行所需的配置信息,以及用户自定义的一些配置信息,甚至影响程序的行为、系统的运行以及用户的工作环境。

#1.输出系统 PATH变量
[root@localhost ~]# echo ${PATH}
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

在Linux中,常见的系统环境变量包括:

1. PATH:用于指定系统在哪些目录中搜索可执行文件。
2. HOME:指定当前用户的主目录,即用户登录后默认的工作目录。
3. USER:指定当前用户的用户名。
4. SHELL:指定用户默认的Shell程序。
5. LANG:指定系统默认的语言环境。
6. LD_LIBRARY_PATH:用于指定系统在哪些目录中搜索动态链接库文件。

在Linux中,关于系统的变量操作:

  • set,显示当前Shell中定义的 所有变量,包括环境变量、局部变量等。
  • env,显示当前Shell中定义,只显示 全局变量 的输出。
  • export,用于在当前Shell中 设置环境变量,使其对当前Shell及其子进程生效。
  • unset,用于在Shell中 删除 已定义的变量或函数。

2. 环境变量的类型

2.1. 全局环境变量

全局环境变量是指在整个系统范围内都有效的环境变量,不仅对特定用户有效,对所有用户都有效。

在Linux系统中,全局环境变量通常存储在系统范围的配置文件中,例如:

  1. /etc/profile:Bourne Shell及其衍生Shell的配置文件,在这个文件中设置全局的环境变量。
  2. /etc/environment:设置全局环境变量,是以"key=value"的形式,每行设置一个变量。
  3. /etc/bash.bashrc:这是Bash Shell的全局配置文件,也可以用于设置全局的环境变量。

一些常见的全局环境变量包括系统默认的变量(如PATH、LANG等),以及系统管理员设置的一些全局配置变量,用于影响系统的整体行为、程序的默认行为等。

2.2. 用户环境变量

用户的环境变量是指在用户登录时,与该用户关联的环境变量。这些变量包括系统默认定义的一些变量,以及用户自定义的一些变量。

在Linux系统中,用户的环境变量通常存储在用户的家目录下的配置文件中,例如:

  1. ~/.profile:Bourne Shell及其衍生Shell的配置文件,设置用户级别的环境变量。
  2. ~/.bashrc:用户可以在这个文件中设置自定义的环境变量。
  3. ~/.bash_profile:用户可以在这个文件中设置用户级别的环境变量。

用户的环境变量可以包括一些系统默认定义的变量(如PATH、HOME、USER等),也可以包括用户自定义的一些变量,用于定义用户的个性化工作环境、程序执行的行为等。

2.3. 两者之间的关系

全局环境变量和用户环境变量是两个不同范围的环境变量,它们在系统运行和用户工作环境中都具有重要作用,但是影响范围和设置位置有所不同。

  1. 影响范围:全局环境变量影响所有用户,而用户环境变量在用户登陆时关联的环境变量。

  2. 设置位置:全局环境变量的配置通常在 /etc 目录下,而用户环境变量通常在 用户家目录

  3. 优先级:在用户登录时,用户的环境变量会覆盖全局环境变量。如果用户设置了与全局环境变量同名的变量,那么用户的设置会覆盖全局设置。

3. 环境变量的设置

3.1. 设置用户变量

在Linux系统中,可以通过用户的profile文件来设置环境变量,用户的profile文件通常用于在用户登录时自动执行一些初始化操作,包括设置环境变量、定义别名、运行特定的命令等。

以下是使用用户的profile文件设置环境变量的基本步骤:

#1.打开用户的profile文件,例如`~/.bash_profile`
vi ~/.bash_profile

#2.在文件中添加需要设置的环境变量(java环境)例如:
export JAVA_HOME=/usr/lib/jvm/java-11
export PATH=$JAVA_HOME/bin:$PATH

#3.保存文件并退出编辑器。
wq

#4.使用`source`命令使profile文件生效
source ~/.bash_profile

通过这些步骤,设置的环境变量将在用户登录时自动生效,并且会被传递给用户的Shell及其子进程。这样,用户就可以方便地管理自己的环境变量,而不必每次手动设置。

3.2. 设置全局变量

设置全局环境变量的步骤与用户环境变量一致,两者针对的配置文件是不一样的。

  • 全局环境配置文件:/etc/proflie
  • 用户环境配置文件:~/.bash_profile

/etc/profile 用于执行系统范围的初始化任务;而 /etc/profile.d 是一个目录,用于存放系统范围的Shell脚本文件,这两者结合起来,能够方便地管理系统范围的环境变量和初始化任务。

  • /etc/profile 是系统范围的profile文件,用于在用户登录时执行系统范围的初始化操作。这个文件通常包含一些全局的环境变量设置和其他系统范围的初始化任务。
  • /etc/profile.d 是一个目录,用于存放系统范围的Shell脚本文件。这些文件通常包含了特定软件包或组件的环境变量设置和初始化任务。这样做的好处是,可以将不同软件包或组件的初始化任务分开存放,使得管理和维护更加方便。

以下是使用全局的profile文件设置环境变量的基本步骤:

#1.创建的全局profile文件,例如`/etc/profile.d/jdk`
vi /etc/profille.d/jdk

#2.在文件中添加需要设置的环境变量(java环境)例如:
export JAVA_HOME=/usr/lib/jvm/java-11
export PATH=$JAVA_HOME/bin:$PATH

#3.保存文件并退出编辑器。
wq

#4.使用`source`命令使profile文件生效
source /etc/profile

当用户登录时,系统会首先执行/etc/profile文件,然后再执行/etc/profile.d目录下的所有可执行文件。这样,系统可以在用户登录时自动设置系统范围的环境变量,并执行各个软件包或组件的初始化任务。

你可能感兴趣的:(Linux操作系统基础,linux,运维,服务器,centos)