换一种环境 的 env

换一种环境 的 env

env其实就是environment的缩写,用来查看或者修改当前的环境。

Linux是多用户的平台,为了每个用户都有自己的设置,env使用了比较多的环境变量,比如echo $HOME后不同的用户可以看到不同的路径。

修改则可以用env命令进行管理。

官方定义为:

env - run a program in a modified environment

语法

语法如下所示:

$ env [OPTION]... [-] [NAME=VALUE]... [COMMAND [ARG]...]

常用的参数为:

  • -i 开始一个新的空的环境

  • -u 取消设置的的变量

  • -C 更改工作目录

  • -S 分割输入参数

默认无参数

默认情况下,输入env会给出当前设置的环境和系统默认的环境。

$ env
HOSTTYPE=x86_64
LANG=en_US.utf8
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:
NAME=LOCALHOST
HOME=/home/username
USER=username
LOGNAME=username
SHELL=/usr/bin/bash
SHLVL=1
PWD=/home/username/mycode/c
OLDPWD=/home/username/mycode/python
PAGER=less
LESS=-R
...

设置环境变量

当然env最重要的还是设置环境变量,一般使用为:

$ env NAME=what-you-want-to-set

接下来使用echo $NAME就可以看到效果了。

全新的环境

如果希望运行程序的过程中,不受到原来环境的影响,可以使用-i参数,直接开启一个全新的环境。

$ env -i program

取消某些环境变量

通过-u来取消某些设置的环境变量,比如:

$ env -u PWD
HOSTTYPE=x86_64
LANG=en_US.utf8
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:
NAME=LOCALHOST
HOME=/home/username
USER=username
LOGNAME=username
SHELL=/usr/bin/bash
SHLVL=1
OLDPWD=/home/username/mycode/python
PAGER=less
LESS=-R
...

可以看到与env相比,PWD变量已经不存在了。

更改工作路径

可以通过-C来更改工作的路径。

$ pwd
/home/username/linux/scripts
$ env -C .. pwd
/home/username/linux

进阶的传递多个参数

这个参数较多用在脚本中,-S后面可以跟多个参数,如果没有这个参数,则只能跟一个参数,比如以脚本为例:

#!/usr/bin/env perl -w -T

会报错

/usr/bin/env: 'perl -w -T': No such file or directory

此时加上-S就可以解决了,如下:

#!/usr/bin/env -S perl -w -T

更多信息

Hi,XDJM们,更多信息欢迎移步我的主页CSDN或微信公众号letsProgramming.

  • 🐱 github
  • 🏠 Homepage https://shaoguangleo.github.io
  • CSDN CSDN http://blog.csdn.net/shaoguangleo
  • 微信公众号:letsProgramming

微信公众号

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我们编程吧

为吾笔墨赞赏,莫大荣幸鼓励!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值