linux环境变量

由于Linux环境变量中比较多,因此管理员通常不会用利用export逐个配置环境变量,而是将export命令放置在特殊的配置文件中,Shell能够在特定时刻执行这些配置文件,从而自动完成环境变量的配置工作。三个配置文件:.bash_profile.bashrc .bash_logout

$HOME/.bash_profile是最重要的配置文件,当某Linux用户登陆时,Shell会自动执行.bash_profile文件,如果.bash_profile不存在,则自动执行系统默认的配置文件/etc/profile(全局的).

执行.bash_profile. .bash_profile

.bash_profile文件中定义了用户的环境变量,我们可以在已有行后面添加新的行以定义新的环境变量,但是,新加入的行只有注销用户,并再次登陆后方可生效。如果要使新加入的行立即生效需要利用source命令执行.bash_profilesource命令也称为“点命令“,即句点符号”.“和source命令是等价的。

利用source命令执行脚本和在Shell中执行脚本是有区别的。source在当前bash环境下执行命令,而执行Shell脚本是启动一个子Shell来执行命令。因此,如果在Shell中执行.bash_profile文件,新的环境变量只在子Shell中生效,新的环境变量只在子Shell中生效,而无法在当前的Shell中生效。因此,使用source命令执行.bash_profile后,新环境变量在当前Shell以及子Shell中立即生效。

如果用户由当前Shell创建一个新的Shell,称为子Shell,子Shell尝试读取.bashrc中的命令以设置环境变量。.bashrc文件使得用户登陆时的环境变量设置与子Shell的环境变量设置相分离,使用户具有更大的灵活性。当然,如果系统不存在.bashrc文件,子Shell启动时将不执行任何命令。

.bash_logout文件在用户注销时执行,用户可以在该文件中写入清除某些环境变量或记录登陆时间等命令.bash_logout也可以不存在,此时,用户注销时将不再执行任何额外的命令。

参照:profile bashrc bash_profile 之间的区别和联系

-------------------------------------------------------------------------------

使用 unset命令 可以删除全部环境变量 如: unset PATH

source/etc/profile是让/etc/profile文件修改后立即生效,

还有一种方法是:. /etc/profile 注意:.和/etc/profile有空格

linux中source命令

source命令也称为“点命令”也就是一个符号(.).source命令通常用于重新执行刚修改的初始或文件,使之立即生效,而不必注销并重新登录。

Linux的变量种类

按变量的生存周期来划分,Linux变量可分为两类:

1. 永久的:需要修改配置文件,变量永久生效。

2. 临时的:使用export命令行声明即可,变量在关闭shell时失效。

设置变量的三种方法

1. 在/etc/profile文件中添加变量【对所有用户生效(永久的)】

用vi在文件/etc/profile文件中增加变量,该变量将会对Linux下所有用户有效,并且是“永久的”。

例如:编辑/etc/profile文件,添加CLASSPATH变量

# vi /etc/profile
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar;$JAVA_HOME/lib/dt.jar

:修改文件后要想马上生效还要运行# source /etc/profile不然只能在下次重进此用户时生效。

2. 在用户目录下的.bash_profile文件中增加变量【对单一用户生效(永久的)】

用VI在用户目录下的.bash_profile文件中增加变量,改变量仅会对当前用户有效,并且是“永久的”。

例如:编辑li用户目录(/home/li)下的.bashrc

$ vi /home/li/.bashrc

添加如下内容:
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar;$JAVA_HOME/lib/dt.jar

:修改文件后要想马上生效还要运行$ source /home/li/.bashrc不然只能在下次重进此用户时生效。

3. 直接运行export命令定义变量【只对当前shell(BASH)有效(临时的)】

在shell的命令行下直接使用[export变量名=变量值]定义变量,该变量只在当前的shell(BASH)或其子shell(BASH)下是有效的,shell关闭了,变量也就失效了,再打开新shell时就没有这个变量,需要使用的话还需要重新定义。
三、另外

1.使用readonly命令设置只读变量,如果使用了readonly命令的话,变量就不可以被修改或清除了。

2.使用unset命令来清除环境变量 $unset TEMP #删除环境变量TEMP

用法: source filename 或. filename

附:source命令除了上述的用途之外,还有一个用途。

在对编译系统核心时常常需要输入一长串的命令,如:
make mrproper
make menuconfig
make dep
make clean
make bzImage
…………
如果把这些命令做成一个文件,让它自动顺序执行,对于需要多次反复编译系统核心的用户来说会很方便,而用source命令就可以做到这一点,它的作用就是把一个文件的内容当成shell来执行,先在linux的源代码目录下(如/usr/src/linux-2.4.20)建立一个文件,如make_command,在其中输入一下内容:
make mrproper &&
make menuconfig &&
make dep &&
make clean &&
make bzImage &&
make modules &&
make modules_install &&
cp arch/i386/boot/bzImage /boot/vmlinuz_new &&
cp System.map /boot &&
vi /etc/lilo.conf &&
lilo -v
文件建立好之后,每次编译核心的时候,只需要在/usr/src/linux-2.4.20下输入:
source make_command
即可,如果你用的不是lilo来引导系统,可以把最后两行去掉,配置自己的引导程序来引导内核。
顺便补充一点,&&命令表示顺序执行由它连接的命令,但是只有它之前的命令成功执行完成了之后才可以继续执行它后面的命令。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值