当前位置: 技术问答>linux和unix
Linux环境变量PATH,export,网上说。。。。
来源: 互联网 发布时间:2016-07-11
本文导语: 有人在网上说export PATH。。。之后,在之后打开的shell里都可以使用,但是我试了N次都不行, 如果通过改变文件(在文件中加PATH=$PATH:xxxxx)方法就可以!! 不知道这个export到底有没有他们说的功能,是我设置错了吗? export P...
有人在网上说export PATH。。。之后,在之后打开的shell里都可以使用,但是我试了N次都不行,
如果通过改变文件(在文件中加PATH=$PATH:xxxxx)方法就可以!!
不知道这个export到底有没有他们说的功能,是我设置错了吗?
export PATH=$PATH:/home/by
在设置的shell中可以用,但是新建的其它shell就不能用了 ???
|
export是把“变量”放到“环境”中,而环境是可以被子进程继承的。所以,加了export,就能在子进程中使用变量了。
例如,
# A=B
# echo $A
B
# sh
sh-3.1# echo $A
sh-3.1# exit
exit
# export A=B
# sh
sh-3.1# echo $A
B
sh-3.1# exit
exit
#
例如,
# A=B
# echo $A
B
# sh
sh-3.1# echo $A
sh-3.1# exit
exit
# export A=B
# sh
sh-3.1# echo $A
B
sh-3.1# exit
exit
#
|
你把Shell关掉,下次再开个shell,新打开的shell就不是你设置export的那个shell的子进程了。
而设置文件的方法有作用,是因为在每次打开登录shell时,都会运行那个文件。
而设置文件的方法有作用,是因为在每次打开登录shell时,都会运行那个文件。
|
export 只能在当前的终端有效,也就是说用export的方法设置的PATH当关闭终端之后就不存在了,除非把这些设置保存到文件中去
|
都没说到重点。
export变量只对子shell有效。
假如你是在命令行里边直接用export PATH=xx或者修改文件/etc/profile,~/.bashrc等然后用source /etc/profile,都只能是在该shell有效,对于另外开启的console完全没有影响。
要让修改对每次登陆都有效,可以把这些修改放到启动时候会读取的文件里边去,例如/etc/profile(对所有用户),~/.bashrc(个别用户),~/.bash_profile等等,关于这几个文件的区别,可以参考:http://youngerbaby.javaeye.com/blog/278072
欢迎访问我的博客:小毛的胡思乱想
export变量只对子shell有效。
假如你是在命令行里边直接用export PATH=xx或者修改文件/etc/profile,~/.bashrc等然后用source /etc/profile,都只能是在该shell有效,对于另外开启的console完全没有影响。
要让修改对每次登陆都有效,可以把这些修改放到启动时候会读取的文件里边去,例如/etc/profile(对所有用户),~/.bashrc(个别用户),~/.bash_profile等等,关于这几个文件的区别,可以参考:http://youngerbaby.javaeye.com/blog/278072
欢迎访问我的博客:小毛的胡思乱想
|
export只对当前的shell有效,重新登录后就没有了
改文件的是全局有效,所有用户登录都会从那个文件里读
所以有些linux的sh脚本里开头都会写上export ,就是为了考虑到不同的情况
改文件的是全局有效,所有用户登录都会从那个文件里读
所以有些linux的sh脚本里开头都会写上export ,就是为了考虑到不同的情况