你知道linux里那些乱七八糟的环境变量是咋回事不?其实它就像一张系统级的“全局配置表”,放

话说,你知道Linux里那些乱七八糟的环境变量是咋回事不?其实它就像一张系统级的“全局配置表”,放着一堆像PATH和LANG这样的名称-值对,任谁都能拿来查或者改。就拿那个PATH来说,它负责告诉shell要去哪里找可执行文件。说白了,当你敲个ls并回车的时候,shell根本不直接去/bin里翻文件,而是先顺着PATH列的那些目录挨个去找,只要碰到了就立马执行。这种“一次设置、处处生效”的套路,正是环境变量的核心魔法。 要想知道某个变量有没有设好,直接开个终端跑个 printenv VARIABLE_NAME 或者干脆 env 这两条命令就行,它们会把当前会话的所有变量值都列出来,看一眼就明白。 要是只想让一个命令在自己这个终端里随叫随到,不想影响别人或者下回再登录时的状态,那就用 export 这招。先在自己的家目录建个叫 testPath 的文件夹,再给里面的脚本加个执行权限。接下来把这个目录的路径往 PATH 后头一追加就完事了。这时候直接输 testscript.sh 回车就能跑,说明变量已经生效了。不过这招只限在这个终端窗口管用,新打开一个窗口那些临时变量可就没影了。 要是想让这个设置一直跟着自己用不完,那就在用户的配置文件里动手脚。~/.bash_profile、~/.bash_login、~/.profile 这仨选哪个都行。写完了别忘了 source ~/.bash_profile 来个即时生效。比如你想把~/testPath 加进 PATH 里,就写个 export PATH="$PATH:~/testPath" 追加到文件里去。这样新开个终端窗口照样能直接跑 testscript.sh,换个用户登录那就没门了——权限都锁在你的账户下了。 要是想让所有用户都能直接用这玩意,就得动系统级的文件了。你可以去 /etc/profile.d/ 下面建个脚本(名字随便起)。比如你把路径设成 /root/testPath,然后给这个脚本也加上可执行权限。这脚本下回登录或者新开个终端时会自动加载进去。 最后总结一下,大概有这么三种用法:export 那种随用随加、用完即走的临时设置;改个人配置文件那种只对自己管用的永久化;还有写 /etc/profile.d/ 脚本那种让所有人都能用的全局永久化。 强烈建议大家优先用前两种方法,只有那种确实要让全体用户共享同一环境的特殊需求时才考虑最后一种。而且千万别忘记做好备份和验证哦!