Shell 环境变量
查看更多可以参考 https://www.tutorialspoint.com/unix/unix-environment.htm 链接
环境变量(environment variable)
环境变量用来存储Shell会话或者工作环境的信息
- 全局环境变量
- 局部环境变量
全局环境变量
全局环境变量对于shell会话和所有生成的子shell都是可见的。局部变量则只对创建它们的 shell可见
用来查看全局变量的指令(2选1,两者都可以)
envprintenv
printenv + env_variable 可以查看个别 环境变量的值,而env却不可以
1 | |
或者 echo 也可以,但是必须加上$
1 | |
创建全局环境变量
使用 export 关键字 把局部环境变量转成全局环境变量
1 | |
通过上述案例,可以看到,通过export把局部变量转成全局变量,但这种改变仅仅对子shell 有效,子Shell 也无法使用export命令去改变父shell中的全局环境变量的值, 接着上述案例来呈现这一特点
1 | |
删除环境变量
继续上面的例子分析,使用unset来删除已经存在的环境变量
1 | |
在涉及环境变量名时,什么时候该使用,实在让人摸不着头脑。 记住一点就行了**:如果要用到变量,使用$;如果要操作变量,不使用$**。这条规则的一 个例外就是使用printenv显示某个变量的值。
注意
- 如果在子Shell中删除一个全局环境变量,则只对子进程有效
默认的环境变量
略
设置PATH环境变量
PATH环境变量定义了用于执行命令和程序查找的目录
PATH 是系统默认的全局环境变量,其定义了可执行文件所在的目录,当我们在终端输入一个指令的时候,该指令会去PATH环境变量定义的程序目录中查找,如果找到则执行,否则报错。
1 | |
PATH中的目录使用冒号(:)分隔;
当应用程序的可执行文件目录不在PATH环境变量包含的目录中,我们需要把其添加到PATH环境变量中
1 | |
Shell的启动流程
-
etc/profile
系统自动启动时候就会执行
-
$HOME/.zshrc
这里至于应该执行哪一个脚本,取决于你的Shell类型
这这个文件中,我们可以把自己需要配置的全局环境变量写在这个文件里,用来进行持久化的操作