操作Linux系统以及Java环境搭建
- 一 CentOS的操作
- 1.基础操作
- 2.复制或移动文件
- 3.压缩和解压文件(tar)
- 4.文本编辑(vi/vim)
- 5.查找(find,grep)
- 6.操作防火墙
- 7.操作RPM
- 8.文件权限
- 二 软件的安装及Java环境部署
- 1.软件安装方式
- 2.安装JDK
- 3.安装TomCat
- 4.安装MySQL
- 5.操作MySQL
- 6.访问MySQL
- 7.安装 lrzsz(上传文件)
- 8.安装Redis
- 9.安装Nginx
- 三 Java项目部署
- 1.手动部署
- 2.Shell脚本自动部署
- 3.自动化部署脚本代码
一 CentOS的操作
本次文档使用的Linux系统为 CentOS7.5,更高版本或其他版本在Java环境搭建内容块或有部分差异。
1.基础操作
# 查看当前目录下的内容
ls
ll 显示文件的列表详情
ls -a 显示全部文件,包括隐藏文件,linux中的隐藏文件均以点(.) 开头
# 查看当前所在目录
pwd
# 切换目录
cd [目录名]
cd .. 切换到上级目录
cd / 切换到根目录
cd . 切换到当前目录
# 如果文件不存在则创建文件
touch [文件名]
# 创建目录
mkdir [目录名]
mkdir -p [多层目录] 使用 -p 选项可以实现多层目录一次性同时创建
# 删除指定文件
rm [文件名]
rm -f [文件名]
rm -rf [路径/文件] 强制删除指定目录或文件
rmdir [路径] 删除空目录
rmdir -p [多层路径] 父目录为空时一并删除
rmdir [目录]* 删除指定目录下的空目录
r为递归删除,f为强制删除且无需确认
# 查看文件内容
cat [文件名]
more [文件名] 以分页形式展示文件的内容,回车或空格为下一页,b键 为上一页, q键 或者 ctrl+c 退出 more模式
# 操作提示乱码时,修改Linux编码格式
echo 'LANG="en_US.UTF-8"' >> /etc/profile source /etc/profile
# 其余技巧补充
使用 tab键 可以进行快速补全,两次 tab键 给出操作提示
使用 clear命令 或者 ctrl+L键 可以实现快速清屏
# linux命令格式
command [-options] [parameter]
2.复制或移动文件
1.复制文件(cp)
# 复制文件
cp [-r] source dest
source 为源文件或目录,dest 为目标文件或路径
# 携带 -r 参数时表示复制该目录下的全部子目录或文件
cp [文件名] [目录名] 将文件复制到指定目录下
cp [文件名] [文件名] 将文件复制到指定目录下明确重命名为指定名称
2.移动文件(mv)
# 移动文件
mv [-r] source dest
source 为源文件或目录,dest 为目标文件或路径
# 携带 -r 参数时表示移动该目录下的全部子目录或文件
mv [文件名] [目录名] 将文件移动到指定目录下
mv [文件名] [文件名] 将文件移动到指定目录下明确重命名为指定名称
3.压缩和解压文件(tar)
作用:对文件进行打包,解包,压缩,解压
语法: tar [-options] 文件名
说明:以 tar 结尾的文件只是进行了打包,未进行压缩
以 tar.gz 结尾的文件表示打包的同时还进行了压缩
参数说明:
-z z代表gzip,通过gzip对文件进行压缩或解压操作
-c 创建一个包文件
-x 从包文件中还原文件
-v 显示执行的过程
-f 用于指定包文件的名称
常用压缩,解压的命令组合
# 打包一个文件
tar -cvf [fileName] [file]
# 从包中还原文件至指定目录
tar -xvf [fileName] -C [dirName]
# 压缩并打包一个文件
tar -xcvf [fileName] [file]
# 从压缩包中还原文件至指定目录
tar -zxvf [fileName] -C [dirName]
4.文本编辑(vi/vim)
vi是Linux系统自带的文本编辑工具,vim 是从vi发展来的一个更为强大的文本编辑工具。
使用 vim 需要先进行安装
yum install vim
# 使用 vim 打开文件
vim [文件名]
# 进入编辑模式
打开文件后按 i键 进入编辑模式
编辑完成后使用 esc键 退出编辑模式
以下是vi/vim的三种模式转换图
5.查找(find,grep)
指定目录下查找文件
# 在指定目录下查找指定结尾的文件
find [目录] --name "*.文件后缀" 使用 * 通配符
# 从指定文件中查找指定内容
grep [关键字] [文件名] 示例:grep hello Hello.java
6.操作防火墙
# 1.查看防火墙状态
systemctl status firewalld
firewall-cmd --state
# 2.暂时关闭防火墙
systemctl stop firewalld
# 3.永久关闭防火墙
systemctl disable firewalld
# 4.开启防火墙
systemctl start firewalld
# 5.开放指定端口,例如tcp-8080
firewall-cmd --zone=public --add-port=8080/tcp --permanent
# 6.关闭指定端口,例如tcp-8080
firewall-cmd --zone=public --remove-port=8080/tcp --permanent
# 7.使对于防护墙的修改立即生效
firewall-cmd --reload
# 8.查看开放的端口
firewall-cmd --zone=public --list-ports
# 补充说明:
# 1. systemctl是管理linux中的服务的命令
# 2. firewall-cmd是linux中专门用于操作防火墙的命令
7.操作RPM
RPM是(Red-Hat Package Manager)RPM软件包管理器,是红帽Linux用于管理和安装软件的工具
# 查询系统中已安装的全部软件
rpm -qa
# 查询系统中已安装的指定软件
rpm -qa | grep [softwareName]
# 卸载系统中已安装的指定软件
rpm -e --nodeps [softwareName]
# 安装指定的rpm安装包
rpm -ivh [softwareName]
8.文件权限
Linux系统中权限分为3级,文件所有者(Owner),用户组(Group),其他用户(Other Users)
使用 chmod 命令控制文件的权限,例如对于bootStart.up文件的授权。
二 软件的安装及Java环境部署
1.软件安装方式
1.二进制发布包安装:针对平台已经编译打包发布的软件,只要解压,修改配置即可。
2.rpm安装:软件已经按照redhat的包管理规范打包,使用 rpm 命令进行安装,不能自行解决库依赖问题。
3.yum安装:一种在线安装方式,本质还是rpm,可自动安装依赖库。
4.源代码编译安装,需要自己编译打包
2.安装JDK
以jdk1.8为例,使用二进制安装方式进行安装
官网下载地址:JDK1.8官网下载地址 注意:文件名称不一致时请注意甄别,不要直接复制粘贴!!!
# 操作步骤1,将文件上传到服务器并且解压到指定路径下
tar -zxvf jdk-8u341-linux-x64.tar.gz -C /usr/local
# 操作步骤2,打开 /etc/profile 文件
vim /etc/profile
# 操作步骤3,在profile文件末尾追加 JAVA_HOME 及 PATH 的配置内容
JAVA_HOME=/usr/local/jdk1.8.0_341
PATH=$JAVA_HOME/bin:$PATH
# 操作步骤4,重新加载profile文件,使配置立即生效
source /etc/profile
# 操作步骤5,输出版本号,检查看装是否完成
java -version
输出以下内容则说明jdk安装完成。
3.安装TomCat
以tomcat8.5为例,以二进制的方式进行安装
官网下载地址:TomCat官网下载地址 注意:文件名称不一致时请注意甄别,不要直接复制粘贴!!!
# 操作步骤1,使用ftp工具将安装包上传至服务器,然后解压
tar -zxvf apache-tomcat-8.5.81.tar.gz -C /usr/local
# 操作步骤2,进入tomcat的bin目录
cd /usr/local/apache-tomcat-8.5.81/bin
# 操作步骤3,通过运行 startup.sh 脚本文件启动服务
sh startup.sh
或
./shartup.sh
# 操作步骤4,查看tomcat进程,检查是否启动成功
ps -ef|grep tomcat
# 操作步骤5,停止tomcat服务,杀掉进程或者运行 shutdown.sh 脚本文件
sh shutdown.sh
或
./shutdown.sh
或者
kill 9 112807
# 操作步骤6,查看tomcat启动日志,在tomcat安装根目录下的logs目录内,其他日志也在该目录下
more /usr/local/apache-tomcat-8.5.81/logs/catalina.out
或者 直接查看最后几行日志信息
tail -10 /usr/local/apache-tomcat-8.5.81/logs/catalina.out
# 操作步骤7,开放防火墙端口并使其生效,tomcat默认端口为8080
firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --reload
# 操作步骤8:
# 8.1 可以在浏览器输入 localhost:8080,如果出现tomcat默认网页界面,则说明tomcat安装完成。
# 8.2 在其他终端设备上则输入服务器 ip:port 即可。
# 解释说明:9表示强制关闭进程 112807为tomcta服务的进程号,通过 步骤4 可以查询到,每次启动大概率不相同。
# ps -ef 用于查看当前正在运行的进程
# 竖线(|) 称之为管道符,作用是将前一个命令的输出结果作为后一个命名的输入
# 所以经常性使用 ps -ef | grep [进程名] 来查询指定进程的运行状况
ps -ef | grep [进程名]
4.安装MySQL
以 MySQL5.7 为示例,使用rpm安装方式,即需要分别安装需要的依赖才能完成安装。
MySQL官网下载地址:MySQL官方下载 注意:文件名称不一致时请注意甄别,不要直接复制粘贴!!!
# 操作步骤1,将mysql安装包上传至服务器并且解压至指定位置,(该压缩包中的文件均为rpm安装包,建议创建单独目录存放)
mkdir -p /usr/local/mysql5.7
tar -xvf mysql-5.7.39-1.el7.x86_64.rpm-bundle.tar -C /usr/local/mysql5.7
# 操作步骤2,确保系统中未安装MySql以及mariadb,
rpm -qa 查询系统中已安装的全部软件
rpm -qa | grep mysql 查询系统中是否安装 MySQL
rpm -qa | grep mariadb 查询系统中是否安装 mariadb,该软件容易与MySQL产生冲突,需要卸载才能安装MySQL
# 操作步骤3,如果存在 mariadb,则卸载
rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64
# 操作步骤4,按照指定顺序分别安装mysql的rpm安装包
rpm -ivh mysql-community-common-5.7.39-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.39-1.el7.x86_64.rpm
rpm -ivh mysql-community-devel-5.7.39-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-compat-5.7.39-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.39-1.el7.x86_64.rpm
# 操作步骤5,安装过程中如果提示缺少net-tools依赖,则使用以下命令安装
yum install net-tools
# 操作步骤6,安装MySQL服务
rpm -ivh mysql-community-server-5.7.39-1.el7.x86_64.rpm
# 可以通过指令升级现有软件及系统内核,非必须
yum update
5.操作MySQL
# 查看MySQL服务状态
systemctl status mysqld
# 启动MySQL服务
systemctl start mysqld
# 开机启动MySQL
systemctl enable mysqld
# 查看已经启动的服务
netstat -tunlp
netstat -tunlp|grep mysql
# 查看MySQL进程
ps -ef|grep mysql
# 开放MySQL端口,默认3306
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload
6.访问MySQL
MySQL安装完成之后,默认的临时密码存在于MySQL的日志文件中,需要使用MySQL临时密码登录并设置其他有效密码。
# 操作步骤1,查看日志文件,寻找包含密码关键字的内容
cat /var/log/mysqld.log
cat /var/log/mysqld.log | grep password
# 操作步骤2,使用临时密码登录MySQL数据库
mysql -uroot -p
password:*********
# 操作步骤3,登录mysql之后修改密码
# 以下步骤非必须
# set global validate_password_length=6; 设置密码最低位数为6
# set global validate_password_policy=LOW; 设置密码安全等级为低
# 将密码设置为123456
set password=password('123456')
# 操作步骤4,开启root账户访问权限并使其生效
grant all on *.* to 'root'@'%' identified by '123456';
flush privileges;
# 其他补充
MySQL界面输入 exit 或者 quit 退出
7.安装 lrzsz(上传文件)
lrzsz是一款向服务器上传文件的软件,使用 lrzsz 无需安装ftp工具,可以方便的进行文件上传。
# 操作步骤1,搜索 lrzsz
yum list lrzsz
# 操作步骤2,安装 lrzsz
yum install lrzsz.x86_64
# 操作步骤3,输入 rz 打开上传文件界面,选择需要上传的文件
rz
8.安装Redis
Redis下载地址:Redis下载 使用源码安装的方式进行安装,以Redis3.2为例。(建议安装低版本,否则会报错)
参考官方文档:https://redis.io/docs/getting-started/installation/install-redis-from-source/
# 操作步骤1,下载安装包上传至服务器,并且解压至指定位置
tar -zxvf redis-3.2.0.tar.gz -C /usr/local
# 操作步骤2,安装Redis依赖环境gcc
yum install gcc-c++
# 操作步骤3,进入Redis解压目录,编译源代码
cd /usr/local/redis-3.2.0
make
# 操作步骤4,进入 Redis 的 src 目录,进行安装
cd /usr/local/redis-3.2.0/src
make install
# 操作步骤5,运行Redis,可以在任意路径下
redis-server
9.安装Nginx
Nginx下载地址:Nginx官方地址 使用源代码安装方式,以1.22.0版本为例
# 操作步骤0,安装依赖包
yum -y install gcc pcre-devel zlib-devel openssl openssl-devel
# 操作步骤1,可使用wget下载安装包
wget http://nginx.org/download/nginx-1.22.0.tar.gz
# 操作步骤2,解压至指定位置
tar -zxvf nginx-1.22.0.tar.gz -C /usr/local
# 操作步骤3,切换至nginx目录下,使用configure命令nginx的安装位置
./configure --prefix=/usr/local/nginx
# 操作步骤4,编译并且安装
make & make install
# 其他常用操作(sbin路径下)
cd /usr/local/nginx/sbin
# 查看版本号
./nginx -v
# 检查配置文件的正确性
./nginx -t
# 启动或停止nginx,重新加载配置文件
./nginx
./nginx -s stop
./nginx -s reload
# 将nginx配置到系统变量中
vim /etc/profile
export PATH=/usr/local/nginx/sbin:$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH
source /etc/profile
# 配置完成之后直接使用nginx命令即可
nginx
nginx -s stop
nginx -s reload
三 Java项目部署
1.手动部署
以Maven项目为例,将项目打包为 jar包,并上传至服务器,然后通过 java -jar 命令直接启动项目即可。
# 使用独占方式运行(霸屏模式)
java -jar [jar包名]
# 改为后台用运行并且输出日志到指定位置
nohup java -jar [jar包名] &>[日志文件名]&
2.Shell脚本自动部署
使用Shell脚本完成项目的自动部署,包括从Git仓库拉取,使用Maven打包等
Maven官方下载地址:Maven下载
# 操作步骤1,安装Git,并且将代码colne到服务器
yum list git
yum install git
git clone [仓库地址]
# 操作步骤2,安装Maven。将maven压缩包上传至服务器,并且解压
tar -zxvf apache-maven-3.8.6-bin.tar.gz -C usr/local
# 操作步骤2.1 配置maven,修改配置文件,加入指定内容
vim /etc/profile
export MAVEN_HOME=/usr/local/apache-maven-3.8.6
export PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH
# 操作步骤2.2 重新加载配置文件且查看maven版本
source /etc/profile
mvn -version
配置maven仓库地址
# 创建一个路径用于存于maven仓库
mkdir -p /usr/local/repo
# 修改maven配置文件
vim /usr/local/apache-maven-3.8.6/conf/settings.xml
# 配置仓库路径
<localRepository>/usr/local/repo</localRepository>
# 配置镜像地址
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
<blocked>false</blocked>
</mirror>
</mirrors>
3.自动化部署脚本代码
使用时注意修改项目路径地址及包名称,留意方括弧【】的位置。
echo =====================================
echo 自动化部署脚本
echo =====================================
echo 停止原来运行的工程
APP_NAME=【项目名称】
tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ];then
echo 'Stop Process...'
kill -15 $tpid
fi
sleep 2
tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ];then
echo 'Stop Process...'
kill -9 $tpid
else
echo 'Stop Sucesses'
fi
echo "准备从Git仓库获取最新代码"
cd 【代码根目录路径】
echo "开始从Git仓库获取最新代码"
git pull
echo "代码拉取完成"
echo "开始打包..."
output=`mvn clean package -Dmaven.test.skip=true`
cd target
echo "启动项目"
nohup java -jar 【jar包名称】 &> 【日志文件名称】 &
echo "项目部署完成..."
完结撒花。
2022.09.05,补充Nginx部分内容,纠正部分错别字。