Shell脚本安装环境
- 前言
- 脚本
- Java安装脚本
- 使用方式
- Java卸载脚本
- Maven安装脚本
- Maven卸载脚本
前言
无论是在云服务器上部署Java项目 还是在本地的Linux虚拟机上运行Java项目 都需要Java的环境 设置环境则需要一些繁琐的操作 为了简化并复用这些操作 我们可以封装这些操作为一个脚本 下面将展示shell脚本的具体写法 读者可以顺便复习一下Shell脚本的一些知识
脚本
Java安装脚本
#!/bin/sh# 从命令行参数获取JDK源文件和目标目录
if [ "$#" -ne 2 ]; thenecho "请提供正确的参数 首位为JDK压缩包路径 次位为JDK安装路径"exit 1
fiJDK_SRC="$1"
JDK_DST="$2"# 检查JDK源文件是否存在
if [ ! -f "$JDK_SRC" ]; thenecho "JDK 安装文件不存在: $JDK_SRC"exit 1
fi# 创建目标目录
mkdir -p "$JDK_DST"# 复制JDK压缩包到目标目录
cp "$JDK_SRC" "$JDK_DST"# 进入目标目录
cd "$JDK_DST"# 解压JDK压缩包
tar -zxvf "$(basename "$JDK_SRC")"# 获取解压后的JDK目录名称
JDK_DIR=$(tar -tzf "$(basename "$JDK_SRC")" | head -1 | cut -f1 -d"/")# 配置环境变量
echo "export JAVA_HOME=$JDK_DST/$JDK_DIR" >> /etc/profile
echo "export PATH=\$JAVA_HOME/bin:\$PATH" >> /etc/profile
echo "export CLASSPATH=\$JAVA_HOME/jre/lib/ext:\$JAVA_HOME/lib/tools.jar" >> /etc/profile# 使环境变量立即生效
source /etc/profile# 输出安装完成
echo "Java installation completed."# 输出Java版本
java -version# 结束脚本
exit 0
使用方式
首先保存脚本为文件 可以首先创建一个空白文件 之后为赋给它执行权限
touch 文件名.sh
chmod +x 文件名.sh
在保证你已经上传了jdk的安装包之后 按照下面的方式进行
如图 我在/dev-ops下放置了java文件夹 并想要解压在这里 我可以这样使用这个脚本
sh install-java-script.sh /dev-ops/jdk-8u202-linux-x64.tar.gz /dev-ops/java
第一个参数是jdk的压缩包路径 而第二个是需要设置以及安装的环境变量的路径
注意: 执行此脚本之后仍有概率出现java -version时无法识别java命令 这时候需要再次刷新环境变量配置
source /etc/profile
如果刷新之后仍然无法看到版本 可以查看一下脚本执行是否出现了错误
Java卸载脚本
#!/bin/sh# 检查是否提供了JDK目标目录作为参数
if [ -z "$1" ]; thenecho "请提供JDK目标目录作为参数!"exit 1
fi# 使用第一个参数作为JDK目标目录
JDK_DST="$1"# 获取JDK目录名称
if [ -d "$JDK_DST" ]; thenJDK_DIR=$(ls "$JDK_DST" | grep 'jdk' | head -n 1)
elseecho "JDK 目录不存在: $JDK_DST"exit 1
fi# 删除JDK目录
echo "正在删除JDK目录..."
rm -rf "$JDK_DST/$JDK_DIR"# 检查是否删除成功
if [ -d "$JDK_DST/$JDK_DIR" ]; thenecho "JDK 目录删除失败."exit 1
elseecho "JDK 目录已删除."
fi# 移除环境变量配置
echo "正在移除环境变量配置..."
sed -i '/JAVA_HOME/d' /etc/profile
sed -i '/CLASSPATH/d' /etc/profile# 重新加载环境变量
source /etc/profile# 输出卸载完成
echo "Java remove completed."# 结束脚本
exit 0
使用的方式是类似的 传入JDK安装时的目录即可
Maven安装脚本
#!/bin/bash# 检查参数数量
if [ "$#" -ne 3 ]; thenecho "请提供正确参数 第一位参数为Maven压缩包 第二位为要安装到的路径 第三位为文件夹名称"exit 1
fi# 从命令行参数获取值
SOURCE_ZIP="$1"
TARGET_DIR="$2"
MAVEN_DIR_NAME="$3"
MAVEN_HOME="$TARGET_DIR/$MAVEN_DIR_NAME"# 确保目标目录存在
mkdir -p "$TARGET_DIR"# 复制zip文件到目标目录
cp "$SOURCE_ZIP" "$TARGET_DIR"# 进入目标目录
cd "$TARGET_DIR"# 解压缩文件
unzip "$SOURCE_ZIP"# 配置环境变量并写入到 /etc/profile
echo "export MAVEN_HOME=$MAVEN_HOME" >> /etc/profile
echo 'export PATH=$PATH:$MAVEN_HOME/bin' >> /etc/profile# 使环境变量配置立即生效
source /etc/profile# 输出安装完成信息
echo "Maven installation completed."# 显示Maven版本
mvn -version
使用方式同上
Maven卸载脚本
#!/bin/bash# 检查是否提供了足够的参数
if [ -z "$1" ] || [ -z "$2" ]; thenecho "请提供Maven目标目录和Maven目录名称作为参数!"echo "用法: $0 <target_directory> <maven_directory_name>"exit 1
fi# 使用第一个参数作为TARGET_DIR
TARGET_DIR="$1"# 使用第二个参数作为MAVEN_DIR_NAME
MAVEN_DIR_NAME="$2"# 定义MAVEN_HOME
MAVEN_HOME="$TARGET_DIR/$MAVEN_DIR_NAME"# 删除 Maven 目录
if [ -d "$MAVEN_HOME" ]; thenrm -rf "$MAVEN_HOME"echo "Maven directory $MAVEN_HOME has been removed."
elseecho "Maven directory $MAVEN_HOME does not exist."
fi# 备份 /etc/profile
cp /etc/profile /etc/profile.bak# 从 /etc/profile 中移除 Maven 环境变量
sed -i '/^export MAVEN_HOME/d' /etc/profile
sed -i '/^export PATH=\$PATH:\$MAVEN_HOME\/bin/d' /etc/profile# 重新加载 /etc/profile
source /etc/profile# 输出卸载完成信息
echo "Maven has been uninstalled."# 结束脚本
exit 0