首页 > 编程笔记 > Linux笔记 阅读:65

Shell查看和设置环境变量(非常详细)

在 Linux 操作系统中,环境变量是一种特殊的变量,它们用于存储系统的配置信息。

环境变量是系统级别的变量,它们可以在整个系统中使用,在用户的会话中也可以使用。环境变量通常用于存储系统路径、可执行文件的名称、用户名等信息。

系统预设环境变量的命名规则通常是采用全大写字母。常见的系统预设环境变量如下表所示。

表:常见的系统预设环境变量
序号 环境变量 描述
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) 系统级别文件
2) 用户级别文件
如果想修改系统级别的环境变量,则建议修改 /etc/profile 文件。如果想修改 Bash 的默认行为,则建议修改 /etc/bashrc 文件。

相关文章