在Linux里设置环境变量的方法(export PATH)

在Linux里设置环境变量的方法(export PATH),第1张

比如要把/etc/apache/bin目录添加到PATH中,方法有三:

1.#PATH=$PATH:/etc/apache/bin

使用这种方法,只对当前会话有效,也就是说每当登出或注销系统以后,PATH 设置就会失效

2.#vi /etc/profile

在适当位置添加 PATH=$PATH:/etc/apache/bin (注意:= 即等号两边不能有任何空格)

这种方法最好,除非你手动强制修改PATH的值,否则将不会被改变

3.#vi ~/.bash_profile

修改PATH行,把/etc/apache/bin添加进去

这种方法是针对用户起作用的

注意:想改变PATH,必须重新登陆才能生效,以下方法可以简化工作:

如果修改了/etc/profile,那么编辑结束后执行source profile(source /etc/profile) 或 执行点命令 ./profile,PATH的值就会立即生效了。

这个方法的原理就是再执行一次/etc/profile shell脚本,注意如果用sh /etc/profile是不行的,因为sh是在子shell进程中执行的,即使PATH改变了也不会反应到当前环境中,但是source是在当前 shell进程中执行的,所以我们能看到PATH的改变。

这样你就学会Linux系统下修改环境变量PATH路径的方法。

补充说明

工作环境设置文件

环境设置文件有两种:系统环境设置文件 和 个人环境设置文件

1.系统中的用户工作环境设置文件:

登录环境设置文件:/etc/profile 

 非登录环境设置文件:/etc/bashrc

2.用户个人设置的环境设置文件:

 登录环境设置文件: $HOME/.bash_profile   //这个是环境变量设置的地方

 非登录环境设置文件:$HOME/.bashrc       //这个是定义别名的地方

登录环境:指用户登录系统后的工作环境

非登录环境:指用户再调用子shell时所使用的用户环境

Linux中环境变量包括系统级和用户级,系统级的环境变量是每个登录到系统的用户都要读取的系统变量,而用户级的环境变量则是该用户使用系统时加载的环境变量(在用户主目录下$HOME/)。

使用默认Bash时,用户登录后加载环境变量的流程如下:

说明:

bash首先执行/etc/profile脚本,/etc/profile脚本先依次执行/etc/profile.d/*.sh,随后bash会执行用户主目录下的.bash_profile脚本,.bash_profile脚本会执行用户主目录下的.bashrc脚本,而.bashrc脚本会执行/etc/bashrc脚本至此,所有的环境变量和初始化设定都已经加载完成。bash随后调用terminfo和inputrc,完成终端属性和键盘映射的设定。

(1)/etc/profile: 此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行. 并从/etc/profile.d目录的配置文件中搜集shell的设置。

(2)/etc/bashrc: 为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取。

(3)~/.bash_profile: 每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件。

(4)~/.bashrc: 该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取。

(5) ~/.bash_logout:当每次退出系统(退出bash shell)时,执行该文件. 另外,/etc/profile中设定的变量(全局)的可以作用于任何用户,而~/.bashrc等中设定的变量(局部)只能继承 /etc/profile中的变量,他们是"父子"关系。

(6)~/.bash_profile 是交互式、login 方式进入 bash 运行的~/.bashrc 是交互式 non-login 方式进入 bash 运行的通常二者设置大致相同,所以通常前者会调用后者。

tcsh是一个加强的csh,目前大多数系统的csh都使用这个shell代替原来的csh,为csh提供命令补全和命令行编辑功能。/bin/csh实际上是/bin/tcsh的符号连接。这样一来,加载环境变量的流程如下:

1、系统位置,/etc目录下的bashrc、profile、environment三个文件

2、用户目录(root或普通用户)下的.bashrc、.bash_profile两个文件,注意这两个文件前面都有点,是隐藏文件。

按变量的周期划为永久变量和临时性变量2种:

永久变量:通过修改配置文件,配置之后变量永久生效。

临时性变量:使用命令如export等命令设置,设置之后马上生效。当关闭shell的时候失效(这种主要用于测试比较多)。

按照影响范围分为用户变量和系统变量2种:

用户变量(局部变量):修改的设置只对某个用户的路径或执行起作用;

系统变量(全局变量):影响范围是整个系统。

export命令显示当前系统定义的所有环境变量,运行返回结果如下:

echo $PATH命令输出当前的PATH环境变量的值,运行返回结果如下:

直接用export命令修改PATH值 (重启终端后配置失效)

export PATH=$PATH:/home/sphc/software/bin

该文件为当前用户配置文件,修改后,作用于当前用户的环境变量。

该文件为当前用户配置文件,修改后,作用于当前用户的环境变量。

/etc/bashrc为系统环境配置文件,需要管理员权限(如root)或者对该文件的写入权限,修改后,作用于所有用户。

/etc/profile为系统全局配置文件,需要管理员权限或者对该文件的写入权限,修改后,作用于系统下所有用户的环境变量。

/etc/environment为系统环境配置文件,需要管理员权限或者对该文件的写入权限,修改后,作用于系统下所有用户的环境变量。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/9003283.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-23
下一篇 2023-04-23

发表评论

登录后才能评论

评论列表(0条)

保存