当我配置安装好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
结束语
本文有任何错误,或有任何疑问,欢迎留言说明。
网友最新评论