env 命令在 Unix 和 Unix-like 操作系统中,是用来运行一个指定的程序/命令,在执行时可以修改环境变量的一个工具。使用 env 可以启动任何指定的指令,并在这个指令的执行过程中设置或者修改环境变量。

env 命令的常见用途包括:

打印当前环境变量

简单地运行 env 不加任何参数,可以列出当前 shell 会话的所有环境变量。

env

修改或设置环境变量

在运行某个程序时,如果需要临时修改环境变量,可以使用 env 来实现。

env VAR=value command

这个例子中,VAR 环境变量被设置为 value,然后执行 command。执行完成后,环境变量的更改不会影响当前 shell 会话或其他程序。

很多时候我们会这样写:

VAR=value command

这种写法更推荐,不过这种写法和上面的写法并不完全等价。如果其中一种形式不可用,可以试试换另外一种形式。

清除环境变量

可以使用 env -i 来运行一个命令,而在执行该命令时会忽略当前的环境变量,也就是说命令将在一个清洁的环境中执行。

env -i command

env 命令在编写脚本时特别有用,比如你需要确保一个命令是在特定的环境变量配置下执行。它也常常被用于创建 Cron 作业,因为 Cron 作业默认不会加载用户的整个环境配置。此外,env 也是制作可移植脚本的常用工具,因为它允许脚本找到系统路径中某个程序的正确执行文件,即使不同系统的路径设置不一样。例如,#!/usr/bin/env python 这样的 shebang 行可以确保脚本使用环境变量 PATH 中的第一个 Python 解释器来执行,而与具体的安装位置无关。

解释:如果将 shebang 行写为 #!/usr/bin/python,相当于写死了 Python 解释器的路径,如果用户的 Python 没有安装在这个路径下,或者用户不想使用这个路径下的 Python,那么这种写法就不合适。而 #!/usr/bin/env python 这样的写法则避免了这个问题,它会确保脚本使用 env 寻找环境变量 PATH 中的第一个 Python 解释器来执行。

env 命令简介的更多相关文章

  1. Ansible(二) - 配置及命令简介

    Ⅰ. Ansible Inventory Hosts文件配置 # mkdir /etc/ansible # touch /etc/ansible/hosts # cat /etc/hosts 127. ...

  2. Docker - Dockerfile - 常见命令简介

    概述 感觉是个 比较重要的东西 有个疑问 我是先讲 docker build 还是 先讲 Dockerfile 穿插讲 docker build 最基本的东西 原理 -t -f docker file ...

  3. mac终端命令简介

    mac终端命令简介(适合刚刚入手mac的新人们) 1.取得root权限 意义相当与windows中的超级管理员权限,甚至还要超出.root权限可以修改系统中的任何文件,不过对普通用户的意义不大,了解即 ...

  4. linux中的strings命令简介2

    摘自:http://blog.csdn.net/stpeace/article/details/46641069 linux中的strings命令简介 之前我们聊过linux strings的用法和用 ...

  5. linux中的strings命令简介

    摘自:http://blog.csdn.net/stpeace/article/details/46641069 linux中的strings命令简介 在linux下搞软件开发的朋友, 几乎没有不知道 ...

  6. Centos下grep命令简介

    grep命令简介 grep 是一个最初用于Unix操作系统的命令行工具.在给出文件列表或标准输入后,grep会对匹配一个或多个正则表达式的文本进行搜索,并只输出匹配(或者不匹配)的行或文本. grep ...

  7. lsof命令简介

    lsof命令简介: lsof(list open files)是一个列出当前系统打开文件的工具.在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件 ...

  8. perf 高级命令简介

    perf 高级命令简介 1.使用 tracepoint 当 perf 根据 tick 时间点进行采样后,人们便能够得到内核代码中的 hot spot. 使用ls命令来演示 sys_enter 这个tr ...

  9. env命令详解

    env命令时gnu的coreutils包内的一个软件,它的功能是:在一个修改后的环境里执行命令. 通俗的讲:一个linux软件可能被安装在好几个地方,举个例子:在最新的centos中perl的版本为5 ...

  10. Windbg 脚本命令简介 二, Windbg command

    Windbg  脚本命令简介 二, Windbg  script command $<, $><, $$<, $$><, $$>a< (Run Scri ...

随机推荐

  1. win10系统常用命令(netstat、ping、telnet、sc、netsh命令)

    netstat命令 1. 查找端口占用 netstat -ano netstat -ano | findstr 5000 ping命令 ping 192.168.1.1 ping baidu.com ...

  2. 解决python命令行报错问题

    解决Python报错Failed calling sys.__interactivehook__ 报错截图 可以看到主要的报错信息 File "D:\Python\Anaconda3\lib ...

  3. React项目国际化-React-intl

    npx create-react-app react-intl-demo && cd react-intl-demo,创建react-intl-demo项目.npm install r ...

  4. VulnHub-Narak靶机渗透流程

    VulnHub-Narak Description Narak is the Hindu equivalent of Hell. You are in the pit with the Lord of ...

  5. mac idea 配置Tomcat

    官网下载Tomcat 下载地址:点我直达 配置Idea 设置Application Servers 操作步骤:Intellij IDEA->Preferences->Application ...

  6. leetcode简单(数组、字符串):[219, 268, 349, 414, 485, 541, 557, 821, 925, 977]

    目录 219. 存在重复元素 268. 丢失的数字 349. 两个数组的交集 414. 第三大的数 485. 最大连续 1 的个数 541. 反转字符串 II 557. 反转字符串中的单词 III 8 ...

  7. TokenObtainPairSerialize

    TokenObtainPairSerializer是Django REST framework的SimpleJWT库提供的序列化器.它用于对用户凭据(如用户名和密码)进行序列化和验证,并在成功的身份验 ...

  8. 第九节 JMeter基础-高级登录【接口关联-鉴权】

    声明:本文所记录的仅本次操作学习到的知识点,其中商城IP错误,请自行更改. 背景:电商的功能:登录.加入购物车.提交订单.问题:谁把什么商品加入了购物车?这时需要把上一个接口的响应数据(登录成功后返回 ...

  9. SecureCRT通过vbs脚本实现自动化登录linux服务器

    1.配置登录主机名.用户和密码 2.配置登录后操作脚本目录 3.vbs操作脚本如下(crt也支持python) #$language = "VBScript" #$interfac ...

  10. 安全可信,Solon v2.8.6 发布

    Solon 框架! Java "纯血国产"应用开发框架.开放原子开源基金会,孵化项目.从零开始构建(非 java-ee 架构),有灵活的接口规范与开放生态. 追求: 更快.更小.更 ...