初识Linux---环境变量

188 阅读3分钟

一、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\color{#FF0000}{printenv}

#输出系统环境变量
命令作用
printenv输出系统环境变量
printenv 变量名输出单个环境变量

若系统变量已定义HOME=/home/fleming,则:

 echo $HOME =echo /home/fleming 
 $ 自动替换为定义的全局变量
cd $HOME
直接跳转到/home/fleming

set\color{#FF0000}{set}

#显示当前shell的变量,包括当前用户的变量


三、Linux中定义与删除变量

1.定义

fleming="NB"
 #全局变量,该类型变量作用范围仅限当前shell进程,其他shell进程,包括其子或父进程均无效(局部)
 

export fleming="NB"
 #环境变量,该类变量作用范围仅限于当前shell进程及其子shell进程(全局)

PATH=$PATH:/home/frank/Project/
#向环境变量PATH中添加变量

注意: 只限于一个CLI中 系统全局变量大写 个人定义变量小写(_命名)


2.删除

unset\color{#FF0000}{unset}

命令作用
unset felming删除变量或函数

cat /etc/profile
#查看开机时首先打开的文件

Linux开机时默认执行环境变量
~/.bashrc
~/.bash_profile
~/.profile
~/.bash_login