换一种环境 的 env
env
其实就是environment的缩写,用来查看或者修改当前的环境。
Linux是多用户的平台,为了每个用户都有自己的设置,env
使用了比较多的环境变量,比如echo $HOME
后不同的用户可以看到不同的路径。
修改则可以用env
命令进行管理。
官方定义为:
env
- run a program in a modified environment
语法
语法如下所示:
1 | $ env [OPTION]... [-] [NAME=VALUE]... [COMMAND [ARG]...] |
常用的参数为:
-i
开始一个新的空的环境-u
取消设置的的变量-C
更改工作目录-S
分割输入参数
默认无参数
默认情况下,输入env
会给出当前设置的环境和系统默认的环境。
1 | $ env |
设置环境变量
当然env
最重要的还是设置环境变量,一般使用为:
1 | $ env NAME=what-you-want-to-set |
接下来使用echo $NAME就可以看到效果了。
全新的环境
如果希望运行程序的过程中,不受到原来环境的影响,可以使用-i
参数,直接开启一个全新的环境。
1 | $ env -i program |
取消某些环境变量
通过-u
来取消某些设置的环境变量,比如:
1 | $ env -u PWD |
可以看到与env
相比,PWD
变量已经不存在了。
更改工作路径
可以通过-C
来更改工作的路径。
1 | $ pwd |
进阶的传递多个参数
这个参数较多用在脚本中,-S
后面可以跟多个参数,如果没有这个参数,则只能跟一个参数,比如以脚本为例:
1 |
会报错
1 | /usr/bin/env: 'perl -w -T': No such file or directory |
此时加上-S就可以解决了,如下:
1 |