一、windows中的变量
环境变量(environment variables) 是在操作系统中用来指定操作系统运行环境的一些参数,可以理解为系统的视线范围。 配置进入了环境变量的可执行程序,就等于是进入了系统的视线范围。
1.系统变量
系统环境变量对所有用户起作用(省事)。 注销用户后,系统变量不变。
与windows操作系统包括网络状况有关,由操作系统定义。 Administrators组的用户可以添加、修改或删除。
PATH 是系统环境变量,用户在命令行窗口执行一个命令,path告诉系统,要求系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在当前目录下面寻找此程序外,还应到哪些目录下去找。
2.用户变量
用户环境变量只对当前用户起作用(安全)。 注销用户后,环境变量改变。
由操作系统、某些应用程序以及用户建立,例如WindowsXP安装程序将临时文件夹设定了默认存储位置,并视为用户变量。 任何用户都可以添加、修改或删除。
二、Linux中的变量
在Linux下变量可以分为内部变量、用户变量和环境变量。
用户变量只适用于当前shell;环境变量是全局的,它适用于所有当前shell以及其派生出来的任意子进程。
1.内部变量
内部变量是Linux所提供的一种特殊类型的变量,这类变量在程序中用来作出判断。在shell程序内这类变量的值是不能修改的,也叫做(系统变量,环境变量,参数变量,预定义变量)。
2.用户变量
在命令行中用户自己设定的,也叫做(私有变量,本地变量)。
3.环境变量
全局变量只在当前 Shell 会话中有效,如果使用export命令将它导出,那么它就在所有的子 Shell 中也有效了,这称为“环境变量”。
环境变量被创建时所处的 Shell 被称为父 Shell,如果在父 Shell 中再创建一个 Shell,则该 Shell 被称作子Shell。当子 Shell 产生时,它会继承父 Shell 的环境变量为自己所用,所以说环境变量可从父 Shell 传给子Shell。不难理解,环境变量还可以传递给孙 Shell。
#输出系统环境变量
| 命令 | 作用 |
|---|---|
| printenv | 输出系统环境变量 |
| printenv 变量名 | 输出单个环境变量 |
若系统变量已定义HOME=/home/fleming,则:
echo $HOME =echo /home/fleming
$ 自动替换为定义的全局变量
cd $HOME
直接跳转到/home/fleming
#显示当前shell的变量,包括当前用户的变量
三、Linux中定义与删除变量
1.定义
fleming="NB"
#全局变量,该类型变量作用范围仅限当前shell进程,其他shell进程,包括其子或父进程均无效(局部)
export fleming="NB"
#环境变量,该类变量作用范围仅限于当前shell进程及其子shell进程(全局)
PATH=$PATH:/home/frank/Project/
#向环境变量PATH中添加变量
注意: 只限于一个CLI中 系统全局变量大写 个人定义变量小写(_命名)
2.删除
| 命令 | 作用 |
|---|---|
| unset felming | 删除变量或函数 |
cat /etc/profile
#查看开机时首先打开的文件
Linux开机时默认执行环境变量
~/.bashrc
~/.bash_profile
~/.profile
~/.bash_login