Linux如何设置和查看环境变量

哎哟,跟你说个事儿啊。
我以前搞Linux的时候,环境变量这块儿真是踩了不少坑。
给你说说我的亲身经历吧。

记得有一年,我给一个脚本传参数,直接用环境变量传,结果发现脚本里根本没读到。
后来我才想起来,我是用 export 设的,就临时那个会话能用,脚本开个新进程,环境变量它不传啊。
这事儿把我整不会了半天。

你看啊,环境变量这东西,得分情况:
1 . 临时用:就用 export VAR_NAME=value。
比如我当年跑个测试脚本,就 export TEMP_FILE=/tmp/test.txt,跑完就没了,关终端就没了,简单。
这适用于你临时测试个啥,或者跑单次任务。

2 . 你自己的电脑,永久用:得改你自己的配置文件。
如果你用Bash,就打开 ~/.bashrc,用Zsh就打开 ~/.zshrc。
怎么知道你用哪个?在终端敲 echo $SHELL 就知道了。
然后在文件末尾加一行 export MY_VAR=value,保存后,别急着关闭终端,敲 source ~/.bashrc 或者 source ~/.zshrc,立马生效。
我当年给一个常用工具设路径,就是这么干的,加完马上用 echo $MY_VAR 查看一下,确保生效了。

3 . 整个服务器,所有人用:得改系统文件。
这个得有 sudo 权限。
一般是改 /etc/profile 或者 /etc/environment。
/etc/environment 就一行一个 VAR=value,不用 export。
/etc/profile 就跟你的 .bashrc 似的,得用 export。
我以前给系统加个全局变量,就是改 /etc/environment 的,因为它简单。
改完之后,可能得重启一下服务器,或者 source /etc/profile,这个得小心,改错了全系统都受影响。

查环境变量:简单,敲 echo $VAR_NAME 就行了。
比如 echo $PATH 看系统路径。
想看所有?敲 env 或者 printenv,一个样。
想找带某个前缀的?敲 printenv | grep "MY_"。

删环境变量:当前会话里,用 unset VAR_NAME。
比如 export MY_old_var=old,然后用 unset MY_old_var,再敲 echo $MY_old_var 就没了。
永久删?得找到你在哪儿设的,删掉那一行,然后 source 对应的配置文件。

优先级:你自己的配置文件(比如 ~/.bashrc)优先级高,系统级的 /etc/profile 低。
你要是俩地方都设了同一个变量,你自己的值生效。

编程里怎么用:

Python:敲 import os; db_host = os.environ.get('DB_HOST', 'localhost'),默认值是 localhost。

C/C++:敲 const char path = getenv("PATH");。

Shell脚本:直接用 $VAR_NAME 就行了,比如 echo "Config path: $CONFIG_PATH"。

安全的事儿:千万别把密码、密钥啥的放环境变量里。
我以前见过有人这么干,被隔壁同事看去了,那还了得。
得用专门的密钥管理工具,像HashiCorp的Vault,或者把敏感信息放加密文件里。

踩坑总结:

临时变量忘了用 export。

永久变量改错了配置文件,全系统受影响。

急着用 export 设的变量,结果一关终端就没了。

查变量的时候,忘了 echo $ 前面的 $。

你看,环境变量这东西看着简单,但用不好真能折腾人。
我这都是踩坑踩出来的经验,希望能帮到你。

Linux怎么查看进程的环境变量

Linux中查看进程环境变量,直接说:
方法一:ps+grep,简单快速,但需筛选。

方法二:/proc/PID/environ,精确但需先找PID。

修改环境变量:重启或LD_PRELOAD。

安全:限制权限,用密钥管理,定期审查。

初步筛选用ps,精确分析用/proc/PID/environ。

在linux系统中,查看环境变量应该使用的命令是()。

哎哟,咱们得聊聊Linux系统里头查看环境变量的那些事儿。
先说说echo$PATH,这玩意儿挺实用的。
你知道echo不?它就是个显示文本或者变量的命令。
你把它跟$PATH这货一结合,嘿,就能把PATH环境变量的值给显示出来。
这PATH变量里头装的可都是目录路径,这路径一长串,它们是命令行里头找可执行文件的根据地。
用echo$PATH这么一敲,直接就把当前的环境变量值给亮出来了,一看就清楚。

再说说env命令,这玩意儿功能更全面。
env命令能把你当前shell会话里的所有环境变量都给你列出来,包括PATH、HOME、SHELL这些重要的环境变量。
执行env命令,它就会给你展示一个环境变量的完整列表,这样一来,你就能对系统环境有个更全面的了解。

说实话,我当时也没想明白这两个命令有什么区别,后来用了才发现,echo$PATH更直接,env命令更全面。
不过说到底,它们俩都是Linux系统里查看环境变量的好帮手。