Linux环境变量¶
一、环境变量示例¶
cat > /etc/profile.d/node.sh <<'EOF'
# NODEJS
export NODE_HOME=/usr/local/node
export PATH=$NODE_HOME/bin:$PATH
export NODE_PATH=$NODE_HOME/lib/node_modules
EOF
二、环境变量解释¶
-
cat > 文件路径
通常用于将输入重定向到目标文件/etc/profile.d/node.sh
,创建node.sh脚本,是在系统范围内设置Node.js的环境变量 -
语法
<<'EOF'
,用单引号包围的EOF,意味着里面的内容不会被变量替换或命令替换,会原样写入文件。 -
也就是说,里面的$NODE_HOME之类的变量会在脚本被加载的时候才展开,而不是在写入文件的时候。这点需要注意,因为如果不用单引号的话,当前shell中的变量可能会被替换进去,导致写入的内容不正确。
-
``` # 加单引号 [root@jerion /usr/local/src]# cat > /etc/profile.d/node.sh <<'EOF' > # NODEJS > export NODE_HOME=/usr/local/node > export PATH=\(NODE_HOME/bin:\)PATH > export NODE_PATH=$NODE_HOME/lib/node_modules > EOF
不加单引号¶
[root@jerion /usr/local/src]# cat > /etc/profile.d/node1.sh <<EOF
NODEJS¶
export NODE_HOME=/usr/local/node export PATH=\(NODE_HOME/bin:\)PATH export NODE_PATH=$NODE_HOME/lib/node_modules EOF
查看加单引号结果¶
[root@jerion /usr/local/src]# cat /etc/profile.d/node.sh
NODEJS¶
export NODE_HOME=/usr/local/node export PATH=\(NODE_HOME/bin:\)PATH export NODE_PATH=$NODE_HOME/lib/node_modules
查看不加单引号结果¶
[root@jerion /usr/local/src]# cat /etc/profile.d/node1.sh
NODEJS¶
export NODE_HOME=/usr/local/node export PATH=/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin export NODE_PATH=/lib/node_modules ```
-
export NODE_HOME=/usr/local/node
:设置NODE_HOME变量为Node.js的安装路径,通常是存放Node可执行文件和库的位置。 -
export PATH=$NODE_HOME/bin:$PATH
:将Node.js的bin目录添加到PATH环境变量的前面,这样系统就能找到node和npm等命令。这里用的是$NODE_HOME/bin,也就是/usr/local/node/bin,需要确保该路径下确实有这些可执行文件。 -
export NODE_PATH=$NODE_HOME/lib/node_modules
:设置NODE_PATH,这个变量Node.js用来查找模块的路径。当使用require()时,如果在当前目录的node_modules找不到模块,就会去NODE_PATH指定的路径查找。这里设置为/usr/local/node/lib/node_modules,可能用于全局安装的模块的位置。
总结一下:
这段命令的作用是在/etc/profile.d/目录下创建一个名为node.sh的脚本,该脚本在用户登录时设置Node.js相关的环境变量,包括NODE_HOME、PATH和NODE_PATH,确保系统能够找到Node.js的可执行文件和模块。 可能的错误点包括:Node.js实际安装路径与设置的NODE_HOME不一致;没有正确配置全局模块的安装路径,导致NODE_PATH与实际路径不符;或者没有重新登录导致环境变量未生效。 举个例子,假设用户将Node.js解压到了/usr/local/node目录下,其中bin目录包含node和npm,那么上述配置是正确的。但如果是通过apt-get安装的Node.js,可能路径是/usr/bin/node,这时候这个配置就会有问题,需要调整NODE_HOME为正确的路径。 另外,关于NODE_PATH的设置,可能需要更深入的了解。在Node.js中,NODE_PATH是一个被逐渐弃用的环境变量,建议使用项目本地的node_modules或者正确配置npm的全局安装路径。不过,设置NODE_PATH在某些情况下仍然有用,尤其是在需要加载全局模块的时候。如果用户遇到模块找不到的问题,可能需要检查NODE_PATH是否正确指向了全局模块的安装位置。 最后,用户可能需要执行
source /etc/profile
或者重新登录,使环境变量立即生效,而不需要重启系统。