您好,登錄后才能下訂單哦!
小編給大家分享一下Linux中env命令怎么用,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
Linux系統里的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 “導出”變成一個用戶變量。
常用方式
格式:env
打印當前用戶的環境變量。
格式:env -i NAME1=VALUE1 NAME2=VALUE2 <command-line>
使用指定的環境變量執行命令行<command-line>。
使用示例
示例一:比較env,set和export
set命令打印的信息最多,包括自定義函數等,以至于要使用more才能看得清。
[root@www.linuxidc.com ~]# 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@www.linuxidc.com ~]# 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@www.linuxidc.com ~]# 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@www.linuxidc.com ~]# 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@www.linuxidc.com ~]#
以上是“Linux中env命令怎么用”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。