env 环境变量

###########################################################
来自QQ群 Linux && 技术分享 311078264
如果有兴趣的话可以加入进来一起学习,共同进步。
个体的精力总是有限的,分享经验,互助互利才是快速上升的捷径。
###########################################################


Linux是一个多用户的操作系统,每个用户登录之后,都会有一个专用的运行环境。
通常,每个用户默认的环境都是相同的,这个默认的环境实际上就是一组环境变量的定义。
用户可以对自己的运行环境进行定制,其方法就是修改相应的系统环境变量。

常见的环境变量:
  PATH:决定了shell将到哪些目录中寻找命令或程序
  HOME:当前用户主目录
  MAIL:是指当前用户的邮件存放目录。
  SHELL:是指当前用户用的是哪种Shell。
  HISTSIZE:是指保存历史命令记录的条数。
  LOGNAME:是指当前用户的登录名。
  HOSTNAME:是指主机名称,许多应用程序如果要用到主机名的话,通常是从这个环境变量中来取得的。
  LANG/LANGUGE:是和语言相关的环境变量,使用多种语言的用户可以修改此环境变量。
  PS1:是基本提示符,对于root用户是#,对于普通用户是$。
  PS2:是附属提示符,默认是“>”。

/etc/profile ~/.profile ~/.bashrc /etc/bash.bashrc 等等都属于设置环境变量的配置文件,这些文件的配置会在系统启动或者用户登录的时候读取到当前运行的系统中,命令行输入env命令可以查看当前的环境变量。

 

 

 

一、环境变量


Linux中环境变量包括系统级和用户级,系统级的环境变量是每个登录到系统的用户都要读取的系统变量,而用户级的环境变量则是该用户使用系统时加载的环境变量。 所以管理环境变量的文件也分为系统级和用户级的。
 

 

1.系统级:

 


1)/etc/environment:
是系统在登录时读取的第一个文件,用于为所有进程设置环境变量。系统使用此文件时并不是执行此文件中的命令,而是根据KEY=VALUE模式的代码,对KEY赋值以VALUE,因此文件中如果要定义PATH环境变量,只需加入一行形如PATH=$PATH:/xxx/bin的代码即可。

2)/etc/profile:
是系统登录时执行的第二个文件,可以用于设定针对全系统所有用户的环境变量。该文件一般是调用/etc/bash.bashrc文件。

3)/etc/bash.bashrc:
系统级的bashrc文件,为每一个运行bash shell的用户执行此文件。此文件会在用户每次打开shell时执行一次。

注意: 
/etc/environment是设置整个系统的环境,而/etc/profile是设置所有用户的环境,前者与登录用户无关,后者与登录用户有关。 这两个文件修改后一般都要重启系统才能生效。

 

 

 

2.用户级(这些文件处于家目录下)


1)~/.profile:
是对应当前登录用户的profile文件,用于定制当前用户的个人工作环境。
每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件。这里是推荐放置个人设置的地方

2)~/.bashrc:
是对应当前登录用户的bash初始化文件,当用户每次打开shell时,系统都会执行此文件一次。平时设置这个文件就可以了。


根据以上描述,这几个文件的执行先后顺序应当是:
/etc/enviroment –>/etc/profile –>~/.profile –>/etc/bash.bashrc–> ~/.bashrc

 

 

 

二、环境变量的设置


有如下三种方法来设置环境变量: 

1、直接用set或export命令:
在linux下设定环境变量时,如果只是临时用一下,可以直接在shell下用set或export命令设定环境变量。
只能在当前shell脚本下生效,切换到另一个终端就会失效。

下面是export的使用方法:
export [-fnp][变量名称]=[变量设置值]

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

例如:
#export PATH=$PATH:/opt/au1200_rm/build_tools/bin
(#若需要将路径放在优先搜索位置,将$PATH放在后面 PATH=/opt/au1200_rm/build_tools/bin:$PATH 。)

在终端查看一个特定的环境变量
#echo $PATH
PATH="/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin:/opt/au1200_rm/build_tools/bin"

可以看到,环境变量已经设好,PATH里面已经有了我要加的编译器的路径。

2、修改profile文件:
#vi /etc/profile
在里面加入: export PATH="$PATH:/opt/au1200_rm/build_tools/bin"
修改完成之后需要source /etc/profile 一下,加载配置。

3. 修改bashrc文件:
如果你想让所有的用户的shell都能使用该路径,则你要修改 /etc/bashrc 这个文件,怎么修改,具体情况具体分析。
如果只想让某个用户使用,只需要在该用户家目录下的.bashrc文件加入变量配置即可。

例如:
# vi /etc/bashrc
在里面加入:export PATH="$PATH:/opt/au1200_rm/build_tools/bin"

然后source /etc/bashrc 使当前配置生效。

下面给出一个arm-linux-gcc配置(加入之前先判断路径是否存在):
if [ -d /usr/local/arm/2.95.3 ] ; then
PATH=/usr/local/arm/2.95.3/bin:"${PATH}"
fi

 

 

 

注意:


1、UNIX类系统环境变量中路径名用冒号分隔,不是分号。
另外,软件越装越多,环境变量越添越多,为了避免造成混乱,建议所有语句都添加在文件结尾,按软件的安装顺序添加。

2、使用env命令显示所有的环境变量 ,set命令显示所有本地定义的Shell变量。

3、动态库、可执行程序 路径的设置
Linux下调用动态库和windows不一样,是靠环境变量去查找动态库的。
具体操作: export LD_LIBRARY_PATH=/home/.....(动态库的目录)
不过这种设置方法只是在当前的session中有效,你可以修改上面介绍到的配置文件实现任何session都有效。

linux 可执行程序也是是靠环境变量去读取路径的,如果不设置环境变量就只能到程序所在目录下执行或者使用绝对路径调用。
 

  • 14
    点赞
  • 58
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值