本文将描述如何在centos7 内使用shell脚本的方式全自动安装nodejs环境,从无到有仅需几秒钟(具体取决于网速),笔者在装了N次环境之后彻底厌烦了,宝贵的时间不应该浪费在重复的操作上!shell脚本本人也是初学,可能会存在很多不严谨的地方,但是脚本程序笔者已经在自己服务器测试了N次,如果你有什么好的建议以及代码贡献,可以在评论区留言交流

参数判断,目录检测

#脚本 xxx.sh /home/data/  可以传递一个参数,指定安装目录,不如不传递参数默认安装至/home
if [ $# -eq  0 ] #判断参数是否为0
then
    path="/home/" #安装目录定义为/home/
    printf "\n正在下载SodeJS,未指定安装目录,默认安装至/home/node目录\n" #预下载提示,输出至控制台
else
    path=$1 #参数不为0,将安装目录的变量定义为执行脚本的第一个参数
   printf "\n正在下载SodeJS,下载完成后将安装至指定目录:${path}node!\n" #预下载提示,输出至控制台
    if [ -e $path ] #判断所属服务器有没有安装目录
    then
      printf "\n目录已存在,将清空其node目录\n"
     else
      mkdir $path
      printf "${path}目录不存在,将新建${path}目录\n"
    fi

fi

初始化清理

rm -rf ${path}node # 删除安装目录下node目录
curl -o ${path}node.tar.gz https://cdn.npm.taobao.org/dist/node/v14.15.0/node-v14.15.0-linux-x64.tar.gz # 下载nodejs安装包,保存至安装目录下,并且重命名为node.tar.gz

解压安装包设置环境变量

# 定义安装方法
installMain(){
printf "下载完成,正在执行解压操作\n"
# 将安装包解压至安装目录内
tar -zxvf ${path}node.tar.gz -C ${path}
# 将解压出来的nodejs目录重命名为node
mv ${path}node-v14.15.0-linux-x64 ${path}node
printf "解压完毕,正在初始化配置项\n"
printf "正在清理nodeJS相关软链接文件,进行重新配置。\n"
# 预防以前安装过nodejs,清理残留的环境变量软链接,保证干净无残留
rm /usr/local/bin/node
rm /usr/local/bin/npm
rm /usr/local/bin/npx
# 直接设置软链接至环境变量中
ln -s ${path}node/bin/node /usr/local/bin/
ln -s ${path}node/bin/npm /usr/local/bin/
ln -s ${path}node/bin/npx /usr/local/bin/
# 清理安装包
rm ${path}node.tar.gz
printf "nodeJS安装配置完毕\n"
printf "nodeJS安装包清理完毕\n"
# 输出nodejs相关版本信息
printf "nodeJS版本【`node -v`】\nnpm版本【`npm -v`】\nnpx版本【`npx -v`】\n"
printf "前端不仅仅是JavaScript,如果你也是技术爱好者,欢迎来我的小站一起交流:http://yangrd.com/\n"
}
# 执行安装方法
installMain

完整源代码

if [ $# -eq  0 ]
then
    path="/home/"
    printf "\n正在下载SodeJS,未指定安装目录,默认安装至/home/node目录\n"
else
    path=$1
   printf "\n正在下载SodeJS,下载完成后将安装至指定目录:${path}node!\n"
    if [ -e $path ]
    then
      printf "\n目录已存在,将清空其node目录\n"
     else
      mkdir $path
      printf "${path}目录不存在,将新建${path}目录\n"
    fi

fi

rm -rf ${path}node
curl -o ${path}node.tar.gz https://cdn.npm.taobao.org/dist/node/v14.15.0/node-v14.15.0-linux-x64.tar.gz


installMain(){
printf "下载完成,正在执行解压操作\n"
tar -zxvf ${path}node.tar.gz -C ${path}
mv ${path}node-v14.15.0-linux-x64 ${path}node
printf "解压完毕,正在初始化配置项\n"
printf "正在清理nodeJS相关软链接文件,进行重新配置。\n"
rm /usr/local/bin/node
rm /usr/local/bin/npm
rm /usr/local/bin/npx
ln -s ${path}node/bin/node /usr/local/bin/
ln -s ${path}node/bin/npm /usr/local/bin/
ln -s ${path}node/bin/npx /usr/local/bin/
rm ${path}node.tar.gz
printf "nodeJS安装配置完毕\n"
printf "nodeJS安装包清理完毕\n"
printf "nodeJS版本【`node -v`】\nnpm版本【`npm -v`】\nnpx版本【`npx -v`】\n"
printf "前端不仅仅是JavaScript,如果你也是技术爱好者,欢迎来我的小站一起交流:http://yangrd.com/\n"
}

installMain