Shell查看和设置环境变量(非常详细)
在 Linux 操作系统中,环境变量是一种特殊的变量,它们用于存储系统的配置信息。
环境变量是系统级别的变量,它们可以在整个系统中使用,在用户的会话中也可以使用。环境变量通常用于存储系统路径、可执行文件的名称、用户名等信息。
系统预设环境变量的命名规则通常是采用全大写字母。常见的系统预设环境变量如下表所示。
在 Linux 操作系统中,可以使用以下方法查看环境变量。
1) 使用 printenv 命令查看系统中所有的环境变量。例如:
2) 使用 echo 命令查看某个特定的环境变量的值。例如:
3) 使用 env 命令查看当前进程的环境变量。例如:
4) 使用 set 命令查看当前 Shell 的所有变量,包括环境变量和 Shell 变量。例如:
5) 使用 cat /proc/PID/environ 命令查看某个进程的环境变量。例如:
export 命令的基本语法如下:
使用 export 命令设置环境变量及其验证方法如下。
1) 使用等号赋值。例如:
2) 使用 echo 命令查看环境变量的值。例如:
3) 使用环境变量的当前值。例如:
使用 export 命令在 ~/.bashrc 文件中设置 MYVAR 环境变量:
在修改环境变量所在配置文件之后,需要重新登录系统或在命令行中使用 source 命令来使配置生效。source 命令的主要作用是加载并执行配置文件。使用 source 命令加载配置文件的好处是,可以在当前 Shell 中使修改立即生效,而不需要重新打开一个新的 Shell。
使用 source 命令,使 ~/.bashrc 文件中设置的 MYVAR 环境变量生效:
查看 MYVAR 环境变量的值:
此外,也可以使用 source 命令加载系统级别的配置文件。这样,在 /etc/bashrc 文件中定义的环境变量、别名等就可以在当前的 Shell 中使用了。
在 Linux 操作系统中,环境变量可以存储在多个文件中。将环境变量分别存储在这些文件中,可以灵活地管理系统级别和用户级别的配置,确保在不同的登录会话中和系统启动时正确加载环境变量。
以下是常见的存储环境变量的文件及其用途:
1) 系统级别文件
2) 用户级别文件
如果想修改系统级别的环境变量,则建议修改 /etc/profile 文件。如果想修改 Bash 的默认行为,则建议修改 /etc/bashrc 文件。
环境变量是系统级别的变量,它们可以在整个系统中使用,在用户的会话中也可以使用。环境变量通常用于存储系统路径、可执行文件的名称、用户名等信息。
系统预设环境变量的命名规则通常是采用全大写字母。常见的系统预设环境变量如下表所示。
序号 | 环境变量 | 描述 |
---|---|---|
1 | HOME | 当前用户的家目录路径 |
2 | PATH | 可执行文件的搜索路径 |
3 | SHELL | 当前使用的 Shell 的路径 |
4 | USER | 当前用户的用户名 |
5 | LANG | 系统的默认语言环境 |
6 | PWD | 当前工作目录的路径 |
7 | HOSTNAME | 主机名 |
8 | PS1 | 系统提示符 |
9 | TERM | 终端类型 |
10 | HISTFILE | 历史命令记录文件的路径 |
11 | HISTSIZE | 历史命令记录文件的大小 |
12 | MACHTYPE | 系统的硬件架构和操作系统类型,如 x86_64-redhat-linux-gnu |
在 Linux 操作系统中,可以使用以下方法查看环境变量。
1) 使用 printenv 命令查看系统中所有的环境变量。例如:
[opencloud@server ~]$ printenv
2) 使用 echo 命令查看某个特定的环境变量的值。例如:
# 查看HOME环境变量的值 [opencloud@server ~]$ echo "$HOME" /home/opencloud # 查看LANG环境变量的值 [opencloud@server ~]$ echo "$LANG" en_US.UTF-8
3) 使用 env 命令查看当前进程的环境变量。例如:
[opencloud@server ~]$ env
4) 使用 set 命令查看当前 Shell 的所有变量,包括环境变量和 Shell 变量。例如:
[opencloud@server ~]$ set
5) 使用 cat /proc/PID/environ 命令查看某个进程的环境变量。例如:
# 查看进程9750的环境变量 [opencloud@server ~]$ cat /proc/9750/environ
Shell设置环境变量
在 Shell 中,export 命令用于将变量设置为环境变量,设置的环境变量可以在整个系统中使用,在用户的会话中也可以使用。export 命令的基本语法如下:
export [变量名]=[变量值]
使用 export 命令设置环境变量及其验证方法如下。
1) 使用等号赋值。例如:
[opencloud@server ~]$ export NAME="John" [opencloud@server ~]$ export USERNAME="Tom" [opencloud@server ~]$ export MYHOME="/home/john"注意:在 Shell 中,环境变量通常使用大写字母。
2) 使用 echo 命令查看环境变量的值。例如:
[opencloud@server ~]$ echo $NAME John [opencloud@server ~]$ echo $USERNAME Tom [opencloud@server ~]$ echo $MYHOME /home/john
3) 使用环境变量的当前值。例如:
[opencloud@server ~]$ echo $PATH /home/ opencloud/.local/bin:/home/ opencloud /bin:/usr/bin:/bin:/usr/sbin:/sbin: /usr/local/openssh/bin:/usr/local/sbin [opencloud@server ~]$ export PATH=$PATH:/usr/local/bin [opencloud@server ~]$ echo $PATH # 查看PATH环境变量的输出结果 /home/ opencloud/.local/bin:/home/ opencloud /bin:/usr/bin:/bin:/usr/sbin:/sbin: /usr/local/openssh/bin:/usr/local/sbin:/usr/local/bin # export命令用于将 /usr/local/bin目录添加到系统路径中export 命令设置的环境变量只对当前 Shell 有效,在关闭 Shell 后将失效。如果想永久设置环境变量,则建议在配置文件中进行设置,如在 /etc/profile 或 ~/.bash_profile~/.bashrc 等配置文件中进行设置。
使用 export 命令在 ~/.bashrc 文件中设置 MYVAR 环境变量:
[opencloud@server ~]$ echo "export MYVAR=123" >> ~/.bashrc~ 表示当前用户的家目录,export 命令会将 export MYVAR=123 加到 ~/.bashrc 文件的末尾,从而设置 MYVAR 环境变量。
在修改环境变量所在配置文件之后,需要重新登录系统或在命令行中使用 source 命令来使配置生效。source 命令的主要作用是加载并执行配置文件。使用 source 命令加载配置文件的好处是,可以在当前 Shell 中使修改立即生效,而不需要重新打开一个新的 Shell。
使用 source 命令,使 ~/.bashrc 文件中设置的 MYVAR 环境变量生效:
[opencloud@server ~]$ source ~/.bashrc
查看 MYVAR 环境变量的值:
[opencloud@server ~]$ echo "$MYVAR" # 输出:123
此外,也可以使用 source 命令加载系统级别的配置文件。这样,在 /etc/bashrc 文件中定义的环境变量、别名等就可以在当前的 Shell 中使用了。
[opencloud@server ~]$ source /etc/bashrc
在 Linux 操作系统中,环境变量可以存储在多个文件中。将环境变量分别存储在这些文件中,可以灵活地管理系统级别和用户级别的配置,确保在不同的登录会话中和系统启动时正确加载环境变量。
以下是常见的存储环境变量的文件及其用途:
1) 系统级别文件
- /etc/environment:存储适用于所有用户的系统级别环境变量。
- /etc/profile:在系统启动时加载,适用于所有用户,可以存储全局的环境变量。
- /etc/bashrc:系统级别的 Bash 配置文件,用于设置 Bash 的默认行为。
2) 用户级别文件
- ~/.bashrc:在用户登录系统时加载,用于存储用户特定的环境变量。
- ~/.bash_profile:在用户登录系统时加载,可用于存储用户特定的环境变量。
- ~/.bash_login:类似于 ~/.bash_profile,在用户登录时加载,用于设置环境变量。
- ~/.bash_logout:在用户退出系统时加载,可用于清理或保存会话信息。
如果想修改系统级别的环境变量,则建议修改 /etc/profile 文件。如果想修改 Bash 的默认行为,则建议修改 /etc/bashrc 文件。