Linux中环境变量设置及查看方法(临时环境变量和用户级别长期环境变量)

企鹅chi月饼 2024-10-06 16:07:03 阅读 81

设置环境变量的方式:(三种)

Linux中通常来说设置环境变量分为三种:临时设置环境变量(只在当前用户的当前终端会话中有效),将环境变量添加到 Shell 启动文件(对当前用户有效),将环境变量设置在系统级别(对所有用户生效)。

设置临时环境变量

这是最简单的一种方式,这样设置的环境变量仅在当前终端会话有效。可以通过 <code>echo $VAR_NAME 查看已设置的环境变量

特点:

临时有效:变量仅在当前终端会话中有效,关闭终端或退出登录后失效。简单方便:适合一次性临时调整环境的场合。

覆盖原有的环境变量(不用:)

export PATH=/usr/local/bin

作用:完全覆盖现有的 PATH 变量值,只设置为 /usr/local/bin

解释:此命令会移除之前 PATH 中所有的其他路径,仅将 /usr/local/bin 设为新的 PATH 值。也就是说,之后系统只会在 /usr/local/bin 目录中查找可执行文件。

使用时要小心:由于采用这种方式设置可能会覆盖之前的环境变量,所以使用的时候应该检查一下环境变量里面内容,内容为空或者确定里面环境变量没用才可覆盖。

在原有环境变量中增加路径选项(使用:)

export PATH=$PATH:/usr/local/bin

作用:在当前的 PATH 变量值基础上,追加 /usr/local/bin 目录。

解释:这里的 $PATH 表示当前已有的 PATH 值,命令将 /usr/local/bin 添加到 PATH 变量的末尾,同时保留了原有的路径设置。

$PATH 是一个 引用当前环境变量 PATH 的用法。PATH 是一个环境变量,包含了一系列目录的路径,当你在终端中输入一个命令时,Linux 系统会按照 PATH 环境变量中列出的目录顺序,查找这个命令的可执行文件。通过 $PATH,你可以引用或获取 PATH 的当前值。

环境变量引用优化:为了确保变量名的边界清晰,以避免与其他字符混淆,我们还可以使用{}来将引用的变量括起来。比如:export THIRDPART_PATH=${DDK_PATH}/thirdpart。

采用覆盖/追加设置环境变量的时候,都可以引用环境变量来构建新的环境变量,不仅可以引用自身环境变量也可以引用其他环境变量。

追加环境变量时的顺序

: 是路径分隔符,表示多个路径可以同时存在,系统会按顺序查找这些路径。

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/new/path

这里表示在已有的 LD_LIBRARY_PATH 值后面追加 /new/path。如果原来的 LD_LIBRARY_PATH 变量已经包含了一些路径,那么 /new/path 会被追加到末尾。例如:如果 LD_LIBRARY_PATH 最初的值是 /usr/lib,执行该命令后它会变成 /usr/lib:/new/path

export LD_LIBRARY_PATH=/new/path:$LD_LIBRARY_PATH

/new/path 是你想要添加的新的路径。$LD_LIBRARY_PATH 表示当前 LD_LIBRARY_PATH 的值,包含之前已经设置的路径。: 是路径分隔符,用来连接多个路径。这条命令将 /new/path 放在最前面,表示在查找库文件时,系统会优先/new/path 目录下查找动态库,然后再按顺序查找 LD_LIBRARY_PATH 中其他已有的路径。

设置长期环境变量到 Shell 启动文件

Bash启动文件介绍

如果我们需要长期使用这个环境变量,最好是将环境变量写入到Shell 启动文件中更加方便。Shell 是一个 命令行解释器,在用户输入命令执行程序的时候都会用到它,它的作用是:将用户在终端输入的命令翻译为操作系统可以理解和执行的操作。在我们linux中最常见的Shell应该就是bash了。所以要想使得环境变量在当前用户长期有效,我们应该将环境变量添加到bash启动文件中。

Bash 是常见的 Shell 之一,它有两种类型的启动:登录 Shell非登录 Shell。两种方式登录Bash对应着启动不同种类的文件

登录Shell

登录 Shell 是指用户通过终端登录(例如输入用户名和密码),或者通过ssh远程登录进入的 Shell 会话。登录 Shell 启动时会读取以下文件:

系统范围的文件

/etc/profile:系统范围的全局配置文件,适用于所有用户。它会在每次用户登录时读取。

用户范围的文件

~/.bash_profile:用户个人的 Bash 登录 Shell 配置文件。最常用于设置环境变量和启动脚本。~/.bash_login:如果找不到 .bash_profile,则会读取该文件。~/.profile:如果 .bash_profile.bash_login 都不存在,则会读取 .profile常见做法: 登录 Shell 通常会在 .bash_profile 中包含 .bashrc,这样无论是登录 Shell 还是非登录 Shell,都会执行 .bashrc,保证配置一致。

非登录 Shell

非登录 Shell 是指用户直接打开一个终端窗口的 Shell,而不需要登录。例如在桌面环境中打开终端窗口,或者运行一个脚本。这种情况下,Bash 会读取以下文件:

~/.bashrc:这是非登录 Shell 主要使用的启动文件。一般会在这里设置环境变量(长期),别名、函数、命令提示符等个性化配置。

注意:

我们可以通过命令行输入echo $0命令,查看输出结果来判断当前的bash终端是登录Shell还是非登录Shell。如果输出的是类似于 -bash,那说明是登录 Shell。如果输出的是类似于bash,没有-,那说明是登录 Shell。我们平时其实并不需要很关心究竟通过登录Shell/非登录Shell启动的bash。由于这两种方式都会加载.bashrc文件,(.bash_profile 中包含 .bashrc)所以为了保证我们运行程序时环境一致,通常会选择将环境变量写入到.bashrc文件。

环境变量写入到~/.bashrc的方法

首先我们来看文件:~/.bashrc的名字,可以发现这是一个隐藏文件,并且处在我们的家目录下(~表示的就是当前用户的家目录),也说明了写入到~/.bashrc文件的环境变量仅仅对当前用户有效。

1. 打开~/.bashrc文件

vim ~/.bashrc

2. 找到文件末尾(一般做法),或者在文件中任何适合的位置,添加你想要的环境变量。

export PATH="$PATH:/new/path/directory"code>

这里将路径用""包起来了,主要是让明确让这个路径是一个整体,万一路径中出现了空格的话就会被认为是两部分导致出错,加上""更加保险。这里export环境变量和上面设置临时环境变量的语法一样,都是可以选择增加方式也可以选择覆盖。

3. 让修改立即生效:

source ~/.bashrc

这会重新加载 ~/.bashrc 文件,所有新添加的环境变量将立即生效。当然你也可以选择关闭当前终端,然后再次打开也会生效。

最后,可以通过命令echo $PATH来查看检验设置的这个环境变量是否生效。

将环境变量设置在系统级别

之后详细聊这里吧,因为平时我们也用不到这里,常见的做法是将环境变量设置在用户级别,我们很少需要将环境变量设置到整个系统(所有用户)。

查看环境变量

使用echo命令:

echo 是最简单的方法,它会直接输出当前环境变量的值

echo $LD_LIBRARY_PATH

使用printenv命令:

printenv 可以显示所有环境变量或特定环境变量的值

printenv LD_LIBRARY_PATH

这将只输出 LD_LIBRARY_PATH 变量的值。如果你想查看所有环境变量,可以不加参数:

printenv

使用echo和printenv命令查看到的环境变量包括临时的,用户的以及系统的。如果我们想要单独查看系统级别的,可以vim打开/cat对应的文件来查看(比如查看~/.bashrc文件)。



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。