加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

UNIX下的环境变量--转载

发布时间:2020-12-15 07:18:06 所属栏目:安全 来源:网络整理
导读:?所有环境变量名都是大写小写,系统会当作shell script自定义变量,而不会当作环境变量 /tr tr td[root@mac-home macg]# echo $PATH/usr/kerberos/sbin:/usr/kerberos/bin:/usr/bin:/bin:/usr/X11R6/bin:/home/macg/bin/td /tr ????export不跟参数——显示所

?所有环境变量名都是大写小写,系统会当作shell script自定义变量,而不会当作环境变量

</tr>
<tr>
<td>[root@mac-home macg]# echo $PATH/usr/kerberos/sbin:/usr/kerberos/bin:/usr/bin:/bin:/usr/X11R6/bin:/home/macg/bin</td>

</tr>

????export不跟参数——显示所有环境变量# exportdeclare -x G_BROKEN_FILENAMES="1"declare -x HISTSIZE="1000"declare -x HOME="/root"declare -x?HOSTNAME="mac-home"declare -x?LANG="en_US.UTF-8"declare -x LESSOPEN="|/usr/bin/lesspipe.sh %s"declare -x LOGIN="macg"declare -x?LOGNAME="macg"declare -x declare -x MAIL="/var/spool/mail/macg"declare -x OLDPWD="/etc/init.d"declare -x PATH="/usr/kerberos/sbin:/usr/kerberos/bin:/usr/bin:/bin:/usr/X11R6/bin:/home/macg/bin"declare -x PWD="/home/macg"declare -x SHELL="/bin/bash"declare -x SHLVL="2"declare -x SSH_ASKPASS="/usr/libexec/openssh/gnome-ssh-askpass"declare -x TERM="vt100"declare -x USER="macg"????显示全部环境变量,也可以用set$ setBASH=/bin/bashCOLORS=/etc/DIR_COLORSCOLUMNS=132HOME=/home/macHOSTNAME=machomeHOSTTYPE=i386IFS=$' tn'INPUTRC=/etc/inputrcLANG=en_US.UTF-8LESSOPEN='|/usr/bin/lesspipe.sh %s'LINES=49LOGNAME=macPS4='+ 'PWD=/home/macREMOTEHOST=192.168.1.100SHELL=/bin/bashSHELLOPTS=braceexpand:emacs:hashall:histexpand:history:interactive-comments:monitorSHLVL=1SSH_ASKPASS=/usr/libexec/openssh/gnome-ssh-askpassSUPPORTED=en_US.UTF-8:en_US:enTERM=vt100??????????????UID=500USER=mac????????????????????????????_=expect????显示单个环境变量用echo …??[root@mac-home macg]# echo $PATH??????当前环境PATH(优先搜索,缺省搜索)/usr/kerberos/sbin:/usr/kerberos/bin:/usr/bin:/bin:/usr/X11R6/bin:/home/macg/bin????由一系列冒号分隔的路径组成[root@mac-home macg]# echo $HOME??????当前用户主目录/root??[root@mac-home macg]# echo $USER??????当前用户名macg????[root@mac-home macg]# echo $PWD???????当前目录/home/macg???[root@mac-home macg]# echo $SHELL?????当前用户shell/bin/bash???[mac@machome ~]$ echo $TERM???????????当前终端形式,Linux 终端大多数用'vt100'或'linux'作为vt100????????????????????????????终端类型。千万别用export …那是重置变量????环境变量操作

  • ????现有系统环境变量修改

????赋值????export

  • ????新建环境变量

????必须到/etc/profile里定义和export????赋值????export????最简单的PATH环境变量的修改[mac@test1 ~]# echo $PATH/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/home/mac/bin[mac@test1 ~]# PATH=$PATH:/sbin[mac@test1 ~]# echo $PATH/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/home/mac/bin:/sbin[mac@test1 ~]# export PATH????设置一个变量,直接用名称,而不需要加'$':PATH=/usr/bin:/bin:/usr/local/bin:/usr/X11R6/bin?????????????export 环境变量,不能带$

</tr></table>

????export命令

</tr>
<tr>
<td>export PATH=$PATH:/some/directory ???同时修改和export变量</td>

</tr>
<tr>
<td>export TERM PATH SHELL HOME????一次将4大环境变量放入环境中</td>

</tr>

????由于export变量的父子传递特性,如果想一直保持一个在unix环境变量,必须到/etc/profile 或/etc/bashrc 或~/.bashrc ~/.profile再其他地方定义和export都不会成功???Source 命令——修改/etc/profile立刻生效vi /etc/profile???source /etc/profile????这样,刚刚写进去的环境变量就生效了其实退出shell再登进去,应该/etc/profile就生效???环境变量改变以后,退出后重新su入,环境没改变,为什么?

</tr>
<tr>
<td>?解决问题:比如用su -,才能调入新的环境变量[mac@demo1 ~]$ su?-Password:[root@demo1 ~]# exportdeclare -x HOSTNAME="demo1.ntrackertest.com"declare -x JAVA_HOME="/usr/java"PATH="/usr/java/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin:."
</td>

</tr>

为什么root执行好多命令都说command not found你一定是telnet上来,然后su成root的吧,改改你的su命令格式,应该是su -???不能用PATH=/some/directory,因为这将删除 $PATH 中其他的所有目录,必须作添加,PATH=$PATH:/some/directory???请不要在'.bashrc'中设置 PATH ,否则会导致 PATH 中目录的意外增长。因为每次打开一个新的 shell新的终端 ,'.bashrc'都会作用。???env VAR=value commmand???????????只想在执行某条指令时临时改变系统shell变量,又不想真正改变系统设置

</tr>
<tr>
<td>?#?env LANG=C?/usr/local/mrtg-2/bin/mrtg /home/macg/www/mrtg/cfg/mrtg.cfg2007-02-15 18:47:44,Rateup WARNING:</td>

</tr>

?的经验

</td>
<td valign="top" width="312">

首先系统提示符是系统变量

</td>

</tr>
<tr>
<td valign="top" width="307">

</td>
<td valign="top" width="312">

改变

</td>

</tr>
<tr>
<td valign="top" width="307">

</td>
<td valign="top" width="312">

变量赋值,不需要带

提示符错误,成了字符串了

</td>

</tr>
<tr>
<td valign="top" width="307">

</td>
<td valign="top" width="312">

仍是字符串,因为不能扩展

只不过多了

</td>

</tr>
<tr>
<td valign="top" width="307">

</td>
<td valign="top" width="312">

必须在双引号下,命令才能扩展

里面命令的输出

命令只执行一次,不随着当前目录改变而更改

</td>

</tr>
<tr>
<td valign="top" width="307">

</td>
<td valign="top" width="312">

必须用系统变量

才能使提示符随着目录?而更改

</td>

</tr>
<tr>
<td valign="top" width="307">

</td>
<td valign="top" width="312">

发现还缺一个提示符

必须加一个

</td>

</tr>

????Redhat下改提示符为"[u@h]:$PWD>$"$PS1="[u@h]:$PWD>$"[macg@machome]:/export/home/macg>$??

原文地址:http://blog.sina.com.cn/s/blog_6151984a0100ej4v.html

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!