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

[root@mac-home macg]# echo $path
                                                                        
[root@mac-home macg]# echo $PATH
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/bin:/bin:/usr/X11R6/bin:/home/macg/bin

export不跟参数——显示所有环境变量
# export
declare -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
$ set
BASH=/bin/bash
COLORS=/etc/DIR_COLORS
COLUMNS=132
HOME=/home/mac
HOSTNAME=machome
HOSTTYPE=i386
IFS=$' \t\n'
INPUTRC=/etc/inputrc
LANG=en_US.UTF-8
LESSOPEN='|/usr/bin/lesspipe.sh %s'
LINES=49
LOGNAME=mac
PS4='+ '
PWD=/home/mac
REMOTEHOST=192.168.1.100
SHELL=/bin/bash
SHELLOPTS=braceexpand:emacs:hashall:histexpand:history:interactive-comments:monitor
SHLVL=1
SSH_ASKPASS=/usr/libexec/openssh/gnome-ssh-askpass
SUPPORTED=en_US.UTF-8:en_US:en
TERM=vt100              
UID=500
USER=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 环境变量,不能带$

[mac@test1 ~]$ export $PATH
-bash: export: `/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/home/mac/bin:/sbin':not a valid identifier
[mac@test1 ~]$ export PATH

export命令

PATH=$PATH:/some/directory
export PATH   
export PATH=$PATH:/some/directory    同时修改和export变量
export TERM PATH SHELL HOME    一次将4大环境变量放入环境中

由于export变量的父子传递特性,如果想一直保持一个在unix环境变量,必须到/etc/profile 或/etc/bashrc 或~/.bashrc ~/.profile
再其他地方定义和export都不会成功

Source 命令——修改/etc/profile立刻生效
vi /etc/profile   
source /etc/profile    这样,刚刚写进去的环境变量就生效了
其实退出shell再登进去,应该/etc/profile就生效

环境变量改变以后,退出后重新su入,环境没改变,为什么?

修改/etc/profile,加下面环境变量:
JAVA_HOME="/usr/java"
export JAVA_HOME

重新退出,重新登入,
[mac@demo1 ~]$ su
Password:
[root@demo1 mac]# export
declare -x HOSTNAME="demo1.ntrackertest.com"
declare -x PATH="/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/usr/
X11R6/bin:/home/mac/bin"
没找到新加的变量JAVA_HOME

 解决问题:比如用su - ,才能调入新的环境变量

[mac@demo1 ~]$ su -
Password:
[root@demo1 ~]# export
declare -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:."

为什么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变量,又不想真正改变系统设置

 # /usr/local/mrtg-2/bin/mrtg /home/macg/www/mrtg/cfg/mrtg.cfg
-----------------------------------------------------------------------
ERROR: Mrtg will most likely not work properly when the environment
       variable LANG is set to UTF-8. Please run mrtg in an environment
       where this is not the case. Try the following command to start:

env LANG=C /usr/local/mrtg-2/bin/mrtg /home/macg/www/mrtg/cfg/mrtg.cfg
-----------------------------------------------------------------------

 # env LANG=C /usr/local/mrtg-2/bin/mrtg /home/macg/www/mrtg/cfg/mrtg.cfg
2007-02-15 18:47:44, Rateup WARNING:

更改提示符 的经验

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

改变unix提示符: 为当前目录pwd

# PS1='pwd'

pwd

shell变量赋值,不需要带$

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

pwdPS1='pwd#'

pwd#

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

只不过多了#

pwd#PS1="$(pwd)#"

/home#

/home#cd /etc

/home#

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

$()里面命令的输出

 

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

#PS1=$PWD

/export/home/macg

必须用系统变量$PWD

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

/export/home/macg ls –l

/export/home/macgPS1="$PWD >"

/export/home/macg >

发现还缺一个提示符

必须加一个>

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

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

UNIX下的环境变量--转载的更多相关文章

  1. Linux下配置环境变量—— .bashrc 和 /etc/profile

    转载:https://blog.csdn.net/sun8112133/article/details/79901527 首先简单说一下什么是环境变量?环境变量简单的说就是当前环境下的参数或者变量.如 ...

  2. 环境变量解释以及在Linux下的环境变量设置

    一.环境变量解释 环境变量是什么? 引用百度百科里面的解释:环境变量是操作系统中一个具有特定名字的对象,它包含了一个或者多个应用程序所将使用到的信息.例如Windows系统中的path环境变量,当要求 ...

  3. 在mac下设置环境变量

    在mac下设置环境变量   在基于unix/linux的操作系统下进行程序开发,使用环境变量将会方便.通过设置环境变量将可以在任意目录通过输入程序名来执行设定目录下的程序.不需要通过cd将工作目录改变 ...

  4. Windows 下java环境变量的配置(Windows7 ,8,8.1,10)

    Windows 下java环境变量的配置 在“系统”面板的左上角选择“高级系统设置”,在弹出的系统属性中选择”高级“项,然后点击右下角的“环境变量(N)...”,就此进入JAVA环境变量的配置. 如果 ...

  5. Mac下修改环境变量

    Mac下修改环境变量 如果使用默认Bash, 首先修改 ~/.bash_profile 文件,添加文件路径,比如: export PATH=~/bin:/usr/local/bin/node:~/Do ...

  6. Linux系统下修改环境变量PATH路径的三种方法

    这里介绍Linux的知识,比如把/etc/apache/bin目录添加到PATH中有三种方法,看完之后你将学会Linux系统下如何修改环境变量PATH路径,需要的朋友可以参考下 电脑中必不可少的就是操 ...

  7. 【转】win7(windows7)下java环境变量配置方法

    原文网址:http://jingyan.baidu.com/article/925f8cb836b26ac0dde0569e.html win7(windows7)下java环境变量配置方法,java ...

  8. 在Windows下设置环境变量 运行mysql程序变得更容易

    在Windows下设置环境变量,点开始菜单,右键单击我的电脑--属性--高级--环境变量 可以看到PATH的变量是这样的: C:\WINDOWS;C:\WINDOWS\COMMAND   为了让运行m ...

  9. Linux和Windows下查看环境变量方法对比

    摘自:Linux和Windows下查看环境变量方法对比 一.查看所有环境变量的名称和值 Linux下:export Windows下:set 二.根据名称查该环境变量的值 Linux下:echo $环 ...

随机推荐

  1. Linux下删除大量文件

    主要参考了http://www.slashroot.in/which-is-the-fastest-method-to-delete-files-in-linux 首先建立50万个文件 ➜ test ...

  2. GetActiveView 返回 NULL 为 MDI 框架窗口

    blog 在 MDI 应用程序中,MDI 主框架窗口(CMDIFrameWnd) 不具有与其相关联的视图.相反,每个单独的子窗口(CMDIChildWnd)具有与之关联的一个或多个视图.因此,对 MD ...

  3. C# 4.0 新特性之并行运算(Parallel)

    介绍C# 4.0 的新特性之并行运算 Parallel.For - for 循环的并行运算 Parallel.ForEach - foreach 循环的并行运算 Parallel.Invoke - 并 ...

  4. jquery formatCurrency货币格式化处理

    // This file is part of the jQuery formatCurrency Plugin. // // The jQuery formatCurrency Plugin is ...

  5. Setting Up the ADT Bundle

    Setting Up the ADT Bundle The ADT Bundle provides everything you need to start developing apps, incl ...

  6. Linux中的权限管理

    touch 11.txt(创建了一个文件) chown zhangsan:zhangsan 11.txt ll(可看到11.txt的属主和属组都改为了zhangsan) useradd lisi(添加 ...

  7. bzoj 1922 [Sdoi2010]大陆争霸(最短路变形)

    Description 在一个遥远的世界里有两个国家:位于大陆西端的杰森国和位于大陆东端的 克里斯国.两个国家的人民分别信仰两个对立的神:杰森国信仰象征黑暗和毁灭 的神曾·布拉泽,而克里斯国信仰象征光 ...

  8. zookeeper系列(一)安装

    zookeeper是一个分布式应用协调服务,主要用来解决分布式应用配置项的管理.同步服务.集群管理等,它由Java语言编写,但它支持Java和C两种编程语言接口:   环境部署 操作系统:centos ...

  9. BeanPostProcessor 的使用,实现在对象初始化之前或者之后对对象进行操作

    import java.lang.reflect.Field; import org.springframework.beans.BeansException; import org.springfr ...

  10. HW4.38

    import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner i ...