Shell 环境变量
查看更多可以参考 https://www.tutorialspoint.com/unix/unix-environment.htm 链接
环境变量(environment variable)
环境变量用来存储Shell会话或者工作环境的信息
- 全局环境变量
- 局部环境变量
全局环境变量
全局环境变量对于shell会话和所有生成的子shell都是可见的。局部变量则只对创建它们的 shell可见
用来查看全局变量的指令(2选1,两者都可以)
env
printenv
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类型
这这个文件中,我们可以把自己需要配置的全局环境变量写在这个文件里,用来进行持久化的操作