linux中 export 作用 及 source 的用法

一、linux脚本文件中export 变量的作用:

1. export 用于声明一个环境变量:   export variable=value
2. 该环境变量只在本进程和其子进程中可以访问。
3. 如果是在系统级的配置文件中,如 /etc/profile中 export 一个变量,那么这个变量就会在整个系统运行期间都起作用。即使新开shell会话连接甚至,重启了服务器仍可生效。
4. 如果在用户级 ~/.bash_profile 之类的文件中,则每次启动shell都会去读这个文件,所以每次打开shell也是可以取到这个值的。
5. 如果在某一次运行中,手动export一个变量,则只在这次shell的使用中,才能访问这个变量,或者在该shell启动的启动程序中,也是可以访问这个变量的,因为它们是这个shell的子进程。新开shell连接及重启服务器都会失效。

 

总之,export 作用就是 把本地变量变成全局变量(实际中叫环境变量)

 

二、举例验证:

举例验证 前面 一 中的 第 3 条:

在root用户下 vim /etc/profile ,追加一行代码

先不使用 export,

GREET="hello,good morning!"

然后,

source /etc/profile

在当前shell窗口及新的shell窗口中,执行 echo $GREET ,会显示变量值 hello,good morning!

[root@fastdfs ~]# echo $GREET
hello,good morning!

如果切换到 普通用户 wudi ,再次执行 echo $GREET , 就无任何显示。即使再切换到root用户,仍无显示。

说明  只对当前 shell会话窗口有效果,对新会话窗口无效。

 

稍作变化,使用 export

在root用户下 vim /etc/profile ,

将
GREET="hello,good morning!"
改为
export GREET="hello,good morning!"

eg:

再source 一下

source /etc/profile

此时,再执行 echo $GREET,以及切换到 普通用户 wudi ,再次执行 echo $GREET , 都会显示变量值 hello,good morning!。即使再切换到root用户,仍可显示。

 

举例验证前面 一 中 第5条:

新开shell会话连接,会失效:

重启服务器也会失效:

 

三 shell与export命令

用户登录到Linux系统后,系统将启动一个用户shell。在这个shell中,可以使用shell命令或声明变量,也可以创建并运行 shell脚本程序。运行shell脚本程序时,系统将创建一个子shell。此时,系统中将有两个shell,一个是登录时系统启动的shell,另一 个是系统为运行脚本程序创建的shell。当一个脚本程序运行完毕,它的脚本shell将终止,可以返回到执行该脚本之前的shell。从这种意义上来 说,用户可以有许多 shell,每个shell都是由某个shell(称为父shell)派生的。

在子 shell中定义的变量只在该子shell内有效。如果在一个shell脚本程序中定义了一个变量,当该脚本程序运行时,这个定义的变量只是该脚本程序内 的一个局部变量,其他的shell不能引用它,要使某个变量的值可以在其他shell中被改变,可以使用export命令对已定义的变量进行输出。 export命令将使系统在创建每一个新的shell时定义这个变量的一个拷贝。这个过程称之为变量输出。

 

四 Linux 指令:系统设置--export 

 功能说明:设置或显示环境变量。

语  法:export [-fnp][变量名称]=[变量设置值]

补充说明:在shell中执行程序时,shell会提供一组环境变量。export可新增,修改或删除环境变量,供后续执行的程序使用。export的效力仅及于该此登陆操作。

参  数:
 -f  代表[变量名称]中为函数名称。 
 -n  删除指定的环境变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中。 --没卵用。
 -p  列出所有的环境变量。

 

eg:  列出所有的环境变量   

export -p

 

五 linux中 source 的用法

source命令:
source命令的功能:使Shell读入指定的Shell程序文件并依次执行文件中的所有语句
source命令通常用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录。
用法:
source filename 或 . filename
source命令(从 C Shell 而来)是bash shell的内置命令;点命令(.),就是个点符号(从Bourne Shell而来)是source的另一名称。

source filename 与 sh filename 及./filename执行脚本的区别在那里呢?

  • 当shell脚本具有可执行权限时,用sh filename与./filename执行脚本没有区别。
  • sh filename 重新建立一个子shell,在子shell中执行脚本里面的语句,该子shell继承父shell的环境变量,但子shell新建的、改变的变量不会被带回父shell。
  • source filename:这个命令其实只是简单地读取脚本里面的语句依次在当前shell里面执行,没有建立新的子shell。那么脚本里面所有新建、改变变量的语句都会保存在当前shell里面
  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux,创建和管理虚拟环境可以使用virtualenv和conda这两个工具。 方法一:使用virtualenv 1. 首先,确保已经安装了virtualenv。如果没有安装,可以使用以下命令安装: ``` pip install virtualenv ``` 2. 创建目录来存放虚拟环境: ``` mkdir $HOME/.virtualenvs ``` 3. 打开~/.bashrc文件,并添加以下两行代码: ``` export WORKON_HOME=$HOME/.virtualenvs source /usr/local/bin/virtualenvwrapper.sh ``` 4. 运行下面的命令,使配置生效: ``` source ~/.bashrc ``` 5. 使用以下命令创建一个虚拟环境: ``` mkvirtualenv -p python3 虚拟环境名称 ``` 例如: ``` mkvirtualenv -p python3 myenv ``` 6. 激活虚拟环境: ``` workon 虚拟环境名称 ``` 例如: ``` workon myenv ``` 7. 当你完成工作时,可以使用以下命令退出虚拟环境: ``` deactivate ``` 8. 你也可以使用以下命令删除虚拟环境: ``` rmvirtualenv 虚拟环境名称 ``` 例如: ``` rmvirtualenv myenv ``` 方法二:使用conda 1. 首先,确保已经安装了conda。如果没有安装,可以从Anaconda官网下载并安装。 2. 创建一个Python版本为3.6的虚拟环境: ``` conda create -n 虚拟环境名称 python=3.6 ``` 例如: ``` conda create -n myenv python=3.6 ``` 3. 激活虚拟环境: ``` conda activate 虚拟环境名称 ``` 例如: ``` conda activate myenv ``` 4. 查看已安装的虚拟环境: ``` conda info --envs ``` 5. 退出虚拟环境: ``` conda deactivate ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值