`

我使用过的Linux命令之env - 显示当前用户的环境变量

阅读更多

我使用过的Linux命令之env - 显示当前用户的环境变量

本文链接:http://codingstandards.iteye.com/blog/994906   (转载请注明出处)

 

用途说明

env命令可以显示当前用户的环境变量,还可以用来在指定环境变量下执行其他命令。下面来比较一下set,env和export命令的异同:set命令显示当前shell的变量,包括当前用户的变量;env命令显示当前用户的变量;export命令显示当前导出成用户变量的shell变量。每个shell有自己特有的变量(set)显示的变量,这个和用户变量是不同的,当前用户变量和你用什么shell无关,不管你用什么shell都在,比如HOME,SHELL等这些变量,但shell自己的变量不同shell是不同的,比如BASH_ARGC, BASH等,这些变量只有set才会显示,是bash特有的,export不加参数的时候,显示哪些变量被导出成了用户变量,因为一个shell自己的变量可以通过export “导出”变成一个用户变量。(注:此处来自资料1)

 

常用方式

格式:env

打印当前用户的环境变量。

 

格式:env -i NAME1=VALUE1 NAME2=VALUE2 <command-line>

使用指定的环境变量执行命令行<command-line>。

 

使用示例

示例一 比较env,set和export

set命令打印的信息最多,包括自定义函数等,以至于要使用more才能看得清。

[root@web ~]# env
HOSTNAME=web
TERM=linux
SHELL=/bin/bash
HISTSIZE=1000
SSH_CLIENT=58.222.185.248 1113 22
SSH_TTY=/dev/pts/6
ANT_HOME=/opt/apache/apache-ant-1.8.1
USER=root
LS_COLORS=no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=01;32:*.cmd=01;32:*.exe=01;32:*.com=01;32:*.btm=01;32:*.bat=01;32:*.sh=01;32:*.csh=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.bz=01;31:*.tz=01;31:*.rpm=01;31:*.cpio=01;31:*.jpg=01;35:*.gif=01;35:*.bmp=01;35:*.xbm=01;35:*.xpm=01;35:*.png=01;35:*.tif=01;35:
SSH_AUTH_SOCK=/tmp/ssh-amfuW25778/agent.25778
MAIL=/var/spool/mail/root
PATH=/usr/kerberos/sbin:/usr/kerberos/bin:/opt/apache/apache-ant-1.8.1/bin:/usr/java/jdk1.6.0_20/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
INPUTRC=/etc/inputrc
PWD=/root
JAVA_HOME=/usr/java/jdk1.6.0_20
LANG=zh_CN.GB18030
SSH_ASKPASS=/usr/libexec/openssh/gnome-ssh-askpass
SHLVL=1
HOME=/root
LOGNAME=root
CVS_RSH=ssh
SSH_CONNECTION=58.222.185.248 1113 218.23.142.44 22
LESSOPEN=|/usr/bin/lesspipe.sh %s
G_BROKEN_FILENAMES=1
_=/bin/env
[root@web ~]# export
declare -x ANT_HOME="/opt/apache/apache-ant-1.8.1"
declare -x CVS_RSH="ssh"
declare -x G_BROKEN_FILENAMES="1"
declare -x HISTSIZE="1000"
declare -x HOME="/root"
declare -x HOSTNAME="web"
declare -x INPUTRC="/etc/inputrc"
declare -x JAVA_HOME="/usr/java/jdk1.6.0_20"
declare -x LANG="zh_CN.GB18030"
declare -x LESSOPEN="|/usr/bin/lesspipe.sh %s"
declare -x LOGNAME="root"
declare -x LS_COLORS="no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=01;32:*.cmd=01;32:*.exe=01;32:*.com=01;32:*.btm=01;32:*.bat=01;32:*.sh=01;32:*.csh=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.bz=01;31:*.tz=01;31:*.rpm=01;31:*.cpio=01;31:*.jpg=01;35:*.gif=01;35:*.bmp=01;35:*.xbm=01;35:*.xpm=01;35:*.png=01;35:*.tif=01;35:"
declare -x MAIL="/var/spool/mail/root"
declare -x OLDPWD
declare -x PATH="/usr/kerberos/sbin:/usr/kerberos/bin:/opt/apache/apache-ant-1.8.1/bin:/usr/java/jdk1.6.0_20/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin"
declare -x PWD="/root"
declare -x SHELL="/bin/bash"
declare -x SHLVL="1"
declare -x SSH_ASKPASS="/usr/libexec/openssh/gnome-ssh-askpass"
declare -x SSH_AUTH_SOCK="/tmp/ssh-amfuW25778/agent.25778"
declare -x SSH_CLIENT="58.222.185.248 1113 22"
declare -x SSH_CONNECTION="58.222.185.248 1113 218.23.142.44 22"
declare -x SSH_TTY="/dev/pts/6"
declare -x TERM="linux"
declare -x USER="root"
[root@web ~]# set | more
ANT_HOME=/opt/apache/apache-ant-1.8.1
BASH=/bin/bash
BASH_ARGC=()
BASH_ARGV=()
BASH_COMPLETION=/etc/bash_completion
BASH_COMPLETION_DIR=/etc/bash_completion.d
BASH_LINENO=()
BASH_SOURCE=()
BASH_VERSINFO=([0]="3" [1]="2" [2]="25" [3]="1" [4]="release" [5]="i686-redhat-linux-gnu")
BASH_VERSION='3.2.25(1)-release'
COLORS=/etc/DIR_COLORS
COLUMNS=132
CVS_RSH=ssh
DIRSTACK=()
EUID=0
GROUPS=()
G_BROKEN_FILENAMES=1
HISTFILE=/root/.bash_history
HISTFILESIZE=1000
HISTSIZE=1000
HOME=/root
HOSTNAME=web
HOSTTYPE=i686
IFS=$' \t\n'
INPUTRC=/etc/inputrc
JAVA_HOME=/usr/java/jdk1.6.0_20
LANG=zh_CN.GB18030
LESSOPEN='|/usr/bin/lesspipe.sh %s'
LINES=41
LOGNAME=root
LS_COLORS='no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=01;32:*.cmd=01;3
2:*.exe=01;32:*.com=01;32:*.btm=01;32:*.bat=01;32:*.sh=01;32:*.csh=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31
:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.bz=01;31:*.tz=01;31:*.rpm=01;31:*.cpio=01;31:*.jpg=01;35:*.gif=01;35:*.bmp
=01;35:*.xbm=01;35:*.xpm=01;35:*.png=01;35:*.tif=01;35:'
MACHTYPE=i686-redhat-linux-gnu
MAIL=/var/spool/mail/root
MAILCHECK=60
OPTERR=1
OPTIND=1
OSTYPE=linux-gnu
--More--

 

示例二 service命令的源代码中用到了env命令

可以看出service在执行别的命令式,只有三个环境变量:LANG, PATH, TERM。

[root@web ~]# grep env /sbin/service
                  env -i LANG="$LANG" PATH="$PATH" TERM="$TERM" "${SERVICEDIR}/${SERVICE}" status
            env -i LANG="$LANG" PATH="$PATH" TERM="$TERM" "${SERVICEDIR}/${SERVICE}" stop
            env -i LANG="$LANG" PATH="$PATH" TERM="$TERM" "${SERVICEDIR}/${SERVICE}" start
   env -i LANG="$LANG" PATH="$PATH" TERM="$TERM" "${SERVICEDIR}/${SERVICE}" ${OPTIONS}
[root@web ~]#

 

问题思考

相关资料

【1】飞诺网 Linux的set,env和export的区别是什么
http://dev.firnow.com/course/6_system/linux/Linuxjs/2008913/142616.html
【2】linvar linux set,env, export
http://linvar.iteye.com/blog/584696
【3】鸟哥的私房菜 用 env 觀察環境變數與常見環境變數說明
http://linux.vbird.org/linux_basic/0320bash.php#env
【4】金星专栏 linux profile of env
http://blog.csdn.net/liujinxing/archive/2008/10/24/3139044.aspx

 

返回 我使用过的Linux命令系列总目录

 

2
0
分享到:
评论

相关推荐

    env命令 显示和定义环境变量

    env命令用于显示系统中已存在的环境变量,以及在定义的环境中执行指令。该命令只使用”-“作为参数选项时,隐藏了选项”-i”的功能。若没有设置任何选项和参数时,则直接显示当前的环境变量。 如果使用env命令在新...

    Linux环境变量命令说明

    Set env export linux环境变量

    如何在 Linux 上运行命令前临时清空 Bash 环境变量

    我是个 bash shell 用户。...  如何显示当前环境?  打开终端应用程序并输入下面的其中一个命令:  printenv  或  env  输出样例:  Fig.01: Unix/Linux: 列出所有环境变量  统计环境变量数目

    Linux命令查看java版本

    linux下命令和文件及目录名都分大小写 //移动文件 mv .*.swp 123.bak //看性能 top //shift键+"m"是按"memory"排序 //查看环境变量 env //浏览文件和目录 ls//列表; ll//详细列表 //查看当前目录 pwd //创建...

    Linux命令笔记

    8:env 查看用户环境变量 语法:env 9:who 查看登陆用户信息 语法:who 10:w 查看登陆用户详细信息 语法:w 用户权限/用户和用户组管理 1:用户配置文件 1.1:/etc/passwd 用户基本信息文件 1.2:/etc/shadow 影子...

    Ruby基本的环境变量设置以及常用解释器命令介绍

    对于 Unix,使用 env 命令来查看所有环境变量的列表。 HOSTNAME=ip-72-167-112-17.ip.secureserver.net RUBYPATH=/usr/bin SHELL=/bin/bash TERM=xterm HISTSIZE=1000 SSH_CLIENT=122.169.131.179 1742 22 SSH_TTY...

    常用Linux命令总结

    Tab:命令行补全(连击两次显示所有待选项); Ctrl+L:清屏; Ctrl+C:发送中断信号用于终止命令的执行; Ctrl+D:输入EOF(End Of File),中止...cat ~/.bashrc:配置长期环境变量(当前用户); patree:查看进程树;

    Linux常用的命令。。。。。

    vim .bash_profile 环境变量文件 bios mbr boot lo(grub.conf 在开机时识别kernel) kernel 防火墙级别: 1. 硬件防火墙 2. tcp_wrapper(用来分析tcp/ip封包的软件) 3. iptables 基于数据流的防火 4. 内核级别:...

    操作系统课程设计:Linux系统管理实践与进程通信实现.doc

    操作系统课程设计 ——Linux系统管理实践与进程通信实现 二零一三年一月八号 一、设计内容 1、...(7)显示环境变量 echo $HOME 显示家目录 echo $PATH 显示可执行文件搜索路径 env 显示所有环境变量(可能很多,最好用"e

    coreutils-8.32.tar.gz

    显示环境变量 printf 根据给定的参数格式化输出数据,与 C 语言中的该函数相似。 ptx 为指定的文件提供一个排序索引 pwd 显示当前工作目录 readlink 显示指定符号链接的值 rm 删除文件或者目录 rmdir ...

    Linux在批量服务器管理中实用的PS1命令提示符格式实现方法

    PS1是linux里头的一个默认的环境变量,至于当前系统的PS1是如何设置的,你可以使用命令“env|grep PS1”来查看 。 其实PS1就是用来设置命令提示符格式的环境变量。 下面贴一下PS1的配置参数: \d :代表日期,...

    leetcode提交显示错误-review_shell_commands:review_shell_commands

    使用cd命令更改目录 使用touch 、 copy 、 mkdir和rm来创建和删除文件和目录 概括 从终端显示主目录 pwd : 显示当前位置 echo : 打印以下内容 $ : shell 环境变量的内容 echo $SHELL , echo $HOME : 打印 shell/home...

    Sluggo-Slack:将与Sluggo的REST API通信的Slack应用程序

    懒汉一个松弛的应用程序,它将与Sluggo的REST api通信。安装当前,安装步骤集中在... 将环境变量SLACK_DJANGO_KEY设置为某个随机的唯一值(仅对生产重要): export SLACK_DJANGO_KEY="not important for non produc

    hadoop-2.4.1安装软件包以及教程jdk.zip

    2.3将java添加到环境变量中 vim /etc/profile #在文件最后添加 export JAVA_HOME=/home/hadoop/app/jdk-7u_65-i585 export PATH=$PATH:$JAVA_HOME/bin #刷新配置 source /etc/profile 3.安装hadoop2.4.1 ...

    简短:使用env文件的简洁cli启动器项目经理

    简而言之,它是一种命令行工具,允许使用从.env文件映射的环境变量来运行程序(通常为sh脚本)。 就像用更多选项运行eval $(.env_file) ./script.sh 。 请注意彼此同步并检查所有的格式。 :您总是知道这是您当前...

    docker搭建lnmp环境

    # ENV 环境变量 ENV &lt;key&gt; ENV MYSQL_ROOT_PASSWORD root # ARG与ENV差不多 ARG 所设置的构建环境的环境变量,在将来容器运行时是不会存在这些环境变量的 ENV MYSQL_ROOT_PASSWORD root # VOLUME 匿名卷 VOLUME...

    portfolio:个人博客网络应用

    可以在此环境中的env-variables文件中找到环境变量的完整列表。 应使用公共访问权限创建AWS S3存储桶,并且此应用程序中已使用ImageKit.io(用于图像优化的Image CDN),因此应使用AWS S3存储桶预先配置ImageKit ...

    antibody-web:Web应用程序,用于刺穿covid19抗体的横向流动测试(LFT)和解释结果

    之后,用正确的值替换reviewer-app/.env和take-test-app/.env的环境变量。 完成此操作后,请运行以下命令: yarn run dev 它将启动3个应用程序: 离线模式下在上的api 在上take-test-app 上的reviewe

    atomic-osp-installer:使用 kolla contianers 和 atomic 来编排你的 openstack 配置的安装

    Openstack 容器由 bash 脚本使用单独的“docker run”命令以及它们工作所需的适当环境变量来启动。 此安装脚本正在构建的当前服务:服务: 兔米 玛丽亚数据库 基石 一瞥 新星 设置 运行 genenv.sh 以初始化您的...

    simple_shell:简单的shell命令

    执行在PATH变量路径中找到的普通Linux命令。 带有参数的命令行 内置env,可打印当前环境 内部外壳程序命令“ exit”终止外壳程序 编译中 该外壳是用一个文件C代码编写的。 因此,在终端中正常编译将编译该文件。 要...

Global site tag (gtag.js) - Google Analytics