linux 中source /etc/profile 重开一个端口即失效

ixibei 发表于 分类:Linux 阅读(1620) 评论(0)

简介:

当我配置安装好node.js时,使用命令 echo "PATH=$PATH:/usr/local/node/bin" >> /etc/profile 将node写入linux环境变量的时候,然后使用命令 so…

当我配置安装好node.js时,使用命令 echo "PATH=$PATH:/usr/local/node/bin" >> /etc/profile 将node写入linux环境变量的时候,然后使用命令 source /etc/profile 立即是可以生效的,但是我重新打开一个ssh链接时,使用 node -v 命令却提示 command not found 呢?


原来是因为:

1、/etc/profile:在登录时,操作系统定制用户环境时使用的第一个文件,此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行。

2、/etc/environment:在登录时操作系统使用的第二个文件,系统在 读取你自己的profile前,设置环境文件的环境变量。

3、~/.bash_profile:在登录时用到的第三个文件是.profile文 件,每个用户都可使用该文件输入专用于自己使用的shell信息,当用 户登录时,该 文件仅仅执行一次!默认情况下,他设置一些环境变游戏量,执行用户的.bashrc文件。/etc/bashrc:为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取.

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


几个环境变量的优先级 1>2>3>4 也就是说 当我们把环境变量写入/etc/profile时,只有用户第一次登陆才会执行,后面的就不会执行了,当我们在开一个ssh的时候,根本就没有执行这个文件,自然没有这个命令了。


但当我们想要设置永久环境变量怎么办呢,也就是我们只能把环境变量写在/root/.bashrc文件中即可 例如

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/mysql/bin:/usr/local/php/bin:/usr/local/node/bin


然后我们 source /root/.bashrc 不管这次还是下载,在登陆都有这个环境变量了


参考链接 http://forum.ubuntu.org.cn/viewtopic.php?t=246185


结束语

本文有任何错误,或有任何疑问,欢迎留言说明。

下一篇:  >>

本站文章除注明转载外,均为原创文章,会经常更新知识点以及修正一些错误,因此转载请保留原出处,方便溯源,避免陈旧错误知识的误导,同时有更好的阅读体验。

http://www.onephper.com/archive/16.html

相关推荐

评论

回复给XXX取消回复

说点什么吧...

网友最新评论

输入关键字