目录
1、Linux 安装
1.1、网卡配置
1.2、安装 SSH 连接工具
1.3、Linux 和 Windows 目录结构对比
2、Linux 常用命令
2.1、Linux 命令初体验
2.2、Linux 常用命令
2.2.1、ls
2.2.2、cd
2.2.3、cat
2.2.4、more
2.2.5、tail
2.2.6、mkdir
2.2.7、rmdir
2.2.8、rm
2.2.9、cp
2.2.10、mv
2.2.11、tar
2.2.12、vi / vim
2.2.13、find
2.2.14、grep
3、软件安装
3.1、软件安装方式
3.2、安装 JDK
3.3、安装 Tomcat
3.4、防火墙操作
3.5、安装 MySQL
3.5.1、检查是否安装 MySQL 和 是否有软件冲突
3.5.2、卸载冲突软件
3.5.3、解压 MySQL
3.5.4、按顺序安装 rpm 安装包
3.5.5、启动 MySQL
3.5.6、登录 MySQL
3.5.7、外部连接
3.6、安装 lrzsz
4、项目部署
4.1、手工项目部署
4.1.1、在 IDEA 将项目打包为 jar 包
4.1.2、将 jar 包上传到 Linux 服务器
4.1.3、启动 SpringBoot 程序
4.1.4、检查防火墙
4.1.5、测试
4.1.6、后台运行 SpringBoot 程序,将日志输出到日志文件
4.1.7、停止 SpringBoot 程序
4.2、通过 Shell 脚本自动部署项目
4.2.1、在 Linux 安装 Git
4.2.2、使用 Git 克隆代码
4.2.3、Linux 安装 Maven
4.2.4、将 Shell 脚本文件复制到 Linux
4.2.5、用户授权
4.2.6、设置静态 ip
这里使用 VMware 来安装,具体的配置看视频即可:Linux-03-Linux安装1_哔哩哔哩_bilibili
由于启动服务器时未加载网卡,导致IP地址初始化失败
修改网络初始化配置,设定网卡在系统启动时初始化
修改 ONBOOT = yes
重启后再次输入 ip addr,就可以看到 ip 地址,若没有 ip 地址,打开任务管理器,点击服务,点下面蓝色的打开服务,把VMware开头的服务都打开就可以看到 ip 地址了
安装资料中的 finalshell,然后创建连接
① 点击标签旁的文件夹图案
② 点击左上角 --- SSH 连接
③ 输入 ip 地址、用户名和密码,确定即可
④ 在主页面单击即可连接
echo 'LANG="en_US,UTF-8"' >> /etc/profile
source /etc/profile
注意:查找区分大小写
1、使用 FinalShell 将 jdk 的二进制发布包上传到 Linux
① 打开文件栏
② 点击上传按钮,上传后下图会传到 / ,也就是根目录
③ 选择对应的文件后双击
④ 双击后右上角会显示上传进度
2、解压安装包
tar -zxvf jdk-8u171-linux-x64.tar.gz -C /usr/local
3、配置环境变量
使用命令进入要修改的文件
vim /etc/profile
在末尾加上这两句
JAVA_HOME=/usr/local/jdk1.8.0_171
PATH=$JAVA_HOME/bin:$PATH
重新加载配置文件
source /etc/profile
查看是否配置好
[root@localhost local]# java -version
java version "1.8.0_171"
Java(TM) SE Runtime Environment (build 1.8.0_171-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.171-b11, mixed mode)
1、将 Tomcat 上传到 Linux
2、解压安装包
tar -zxvf apache-tomcat-7.0.57.tar.gz -C /usr/local
3、启动 Tomcat
[root@localhost /]# cd /usr/local/
[root@localhost local]# ls
apache-tomcat-7.0.57 bin etc games include jdk1.8.0_171 lib lib64 libexec sbin share src
[root@localhost local]# cd apache-tomcat-7.0.57/
[root@localhost apache-tomcat-7.0.57]# cd bin
[root@localhost bin]# ls
bootstrap.jar catalina.sh configtest.bat digest.bat setclasspath.sh startup.bat tomcat-native.tar.gz version.bat
catalina-tasks.xml commons-daemon-native.tar.gz configtest.sh digest.sh shutdown.bat startup.sh tool-wrapper.bat version.sh
catalina.bat commons-daemon.jar daemon.sh setclasspath.bat shutdown.sh tomcat-juli.jar tool-wrapper.sh
[root@localhost bin]# ./startup.sh
Using CATALINA_BASE: /usr/local/apache-tomcat-7.0.57
Using CATALINA_HOME: /usr/local/apache-tomcat-7.0.57
Using CATALINA_TMPDIR: /usr/local/apache-tomcat-7.0.57/temp
Using JRE_HOME: /usr/local/jdk1.8.0_171
Using CLASSPATH: /usr/local/apache-tomcat-7.0.57/bin/bootstrap.jar:/usr/local/apache-tomcat-7.0.57/bin/tomcat-juli.jar
Tomcat started.
4、验证是否安装成功
[root@localhost logs]# ps -ef | grep tomcat
root 17957 1 0 09:16 pts/0 00:00:03 /usr/local/jdk1.8.0_171/bin/java -Djava.util.logging.config.file=/usr/local/apache-tomcat-7.0.57/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/usr/local/apache-tomcat-7.0.57/endorsed -classpath /usr/local/apache-tomcat-7.0.57/bin/bootstrap.jar:/usr/local/apache-tomcat-7.0.57/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/apache-tomcat-7.0.57 -Dcatalina.home=/usr/local/apache-tomcat-7.0.57 -Djava.io.tmpdir=/usr/local/apache-tomcat-7.0.57/temp org.apache.catalina.startup.Bootstrap start
root 26831 1354 0 09:23 pts/0 00:00:00 grep --color=auto tomcat
5、停止 Tomcat
通过下面的命令获取进程 id
[root@localhost bin]# ps -ef | grep tomcat
root 67442 1 84 09:56 pts/0 00:00:03 /usr/local/jdk1.8.0_171/bin/java -Djava.util.logging.config.file=/usr/local/apache-tomcat-7.0.57/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/usr/local/apache-tomcat-7.0.57/endorsed -classpath /usr/local/apache-tomcat-7.0.57/bin/bootstrap.jar:/usr/local/apache-tomcat-7.0.57/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/apache-tomcat-7.0.57 -Dcatalina.home=/usr/local/apache-tomcat-7.0.57 -Djava.io.tmpdir=/usr/local/apache-tomcat-7.0.57/temp org.apache.catalina.startup.Bootstrap start
root 67537 1354 0 09:56 pts/0 00:00:00 grep --color=auto tomcat
[root@localhost bin]# kill -9 67442
[root@localhost bin]# ps -ef | grep tomcat
root 68459 1354 0 09:57 pts/0 00:00:00 grep --color=auto tomcat
1、查看防火墙状态
[root@localhost logs]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2022-09-08 09:00:51 CST; 30min ago
Docs: man:firewalld(1)
Main PID: 699 (firewalld)
CGroup: /system.slice/firewalld.service
└─699 /usr/bin/python2 -Es /usr/sbin/firewalld --nofork --nopid
Sep 08 09:00:49 localhost.localdomain systemd[1]: Starting firewalld - dynamic firewall daemon...
Sep 08 09:00:51 localhost.localdomain systemd[1]: Started firewalld - dynamic firewall daemon.
Sep 08 09:00:51 localhost.localdomain firewalld[699]: WARNING: AllowZoneDrifting is enabled. This is considered an insecure configuration option. It will be removed in a future re...ing it now.
Hint: Some lines were ellipsized, use -l to show in full.
[root@localhost logs]# firewall-cmd --state
running
2、暂时关闭防火墙
[root@localhost logs]# systemctl stop firewalld
[root@localhost logs]# firewall-cmd --state
not running
关闭后在浏览器访问 Linux的ip:Tomcat端口号 就能访问到 Tomcat
3、永久关闭防火墙
[root@localhost logs]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
4、开启防火墙
[root@localhost logs]# systemctl start firewalld
[root@localhost logs]# firewall-cmd --state
running
开启后再次访问 Tomcat,访问失败
5、开放指定端口并立即生效
[root@localhost logs]# firewall-cmd --zone=public --add-port=8080/tcp --permanent
success
[root@localhost logs]# firewall-cmd --reload
success
开放后再次访问 Tomcat,访问成功
6、关闭指定端口并立即生效
[root@localhost logs]# firewall-cmd --zone=public --remove-port=8080/tcp --permanent
success
[root@localhost logs]# firewall-cmd --reload
success
关闭后再次访问 Tomcat,访问失败
7、查看开放的端口
[root@localhost logs]# firewall-cmd --zone=public --list-ports
[root@localhost logs]# firewall-cmd --zone=public --add-port=8080/tcp --permanent
success
[root@localhost logs]# firewall-cmd --reload
success
[root@localhost logs]# firewall-cmd --zone=public --list-ports
8080/tcp
[root@localhost logs]# firewall-cmd --zone=public --add-port=3306/tcp --permanent
success
[root@localhost logs]# firewall-cmd --reload
success
[root@localhost logs]# firewall-cmd --zone=public --list-ports
8080/tcp 3306/tcp
[root@localhost bin]# rpm -qa | grep mysql
[root@localhost bin]# rpm -qa | grep mariadb
mariadb-libs-5.5.68-1.el7.x86_64
[root@localhost bin]# rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64
[root@localhost bin]# rpm -qa | grep mariadb
[root@localhost /]# ls
apache-tomcat-7.0.57.tar.gz boot etc jdk-8u171-linux-x64.tar.gz lib64 mnt opt root sbin sys usr
bin dev home lib media mysql-5.7.25-1.el7.x86_64.rpm-bundle.tar.gz proc run srv tmp var
[root@localhost /]# mkdir /usr/local/mysql
[root@localhost /]# mv mysql-5.7.25-1.el7.x86_64.rpm-bundle.tar.gz /usr/local/mysql/
[root@localhost /]# cd /usr/local/mysql/
[root@localhost mysql]# ls
mysql-5.7.25-1.el7.x86_64.rpm-bundle.tar.gz
[root@localhost mysql]# tar -zxvf mysql-5.7.25-1.el7.x86_64.rpm-bundle.tar.gz
mysql-community-client-5.7.25-1.el7.x86_64.rpm
mysql-community-common-5.7.25-1.el7.x86_64.rpm
mysql-community-devel-5.7.25-1.el7.x86_64.rpm
mysql-community-libs-5.7.25-1.el7.x86_64.rpm
mysql-community-libs-compat-5.7.25-1.el7.x86_64.rpm
mysql-community-server-5.7.25-1.el7.x86_64.rpm
rpm -ivh mysql-community-common-5.7.25-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.25-1.el7.x86_64.rpm
rpm -ivh mysql-community-devel-5.7.25-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-compat-5.7.25-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.25-1.el7.x86_64.rpm
yum install net-tools
rpm -ivh mysql-community-server-5.7.25-1.el7.x86_64.rpm
set global validate_password_length=4;
set global validate_password_policy=LOW;
set password = password('root');
grant all on *.* to 'root'@'%' identified by 'root'; -- 这里最后的root填写自己的密码
flush privileges;
注意主机是 ip 地址
[root@localhost mysql]# yum list lrzsz
Failed to set locale, defaulting to C
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.nju.edu.cn
* extras: mirrors.nju.edu.cn
* updates: mirrors.nju.edu.cn
Available Packages
lrzsz.x86_64 0.12.20-36.el7 base
[root@localhost mysql]# yum install lrzsz.x86_64
安装完后输入 rz ,就会跳出一个窗口,选择文件后即可上传
通过 Maven 的 package 指令打包即可
jar 包会放在 target 包下
首先在 Linux 服务器创建要存储的位置的目录,并进入
[root@localhost mysql]# mkdir /usr/local/app
[root@localhost mysql]# cd /usr/local/app
然后使用 rz 命令上传打好的 jar 包
java -jar HelloWorld-1.0-SNAPSHOT.jar
[root@localhost ~]# firewall-cmd --zone=public --list-ports
8080/tcp 3306/tcp
在浏览器访问 Linux的ip:端口/路径 ,访问成功
nohup java -jar HelloWorld-1.0-SNAPSHOT.jar &> hello.log &
&> hello.log 将日志输出到hello.log文件
最后一个&:后台运行
[root@localhost app]# nohup java -jar HelloWorld-1.0-SNAPSHOT.jar &> hello.log &
[1] 91089
通过杀进程的方式停止
[root@localhost ~]# ps -ef | grep java
root 91089 1 7 20:58 ? 00:00:10 java -jar HelloWorld-1.0-SNAPSHOT.jar
root 94144 93109 0 21:00 pts/0 00:00:00 grep --color=auto java
[root@localhost ~]# kill -9 91089
[root@localhost ~]# ps -ef | grep java
root 94695 93109 0 21:00 pts/0 00:00:00 grep --color=auto java
浏览器访问程序,发现无法访问了
[root@localhost ~]# cd /usr/local/
[root@localhost local]# ls
apache-tomcat-7.0.57 app bin etc games include jdk1.8.0_171 lib lib64 libexec mysql sbin share src
若 git clone https://... 报错以下信息
[root@localhost local]# git clone https://github.com/woshizhangyingjie/HelloWorld.git
Cloning into 'HelloWorld'...
fatal: unable to access 'https://github.com/woshizhangyingjie/HelloWorld.git/': Failed connect to github.com:443; Connection refused
将 https 改为 git ,若还是报错
[root@localhost local]# git clone git://github.com/woshizhangyingjie/HelloWorld.git
Cloning into 'HelloWorld'...
fatal: unable to connect to github.com:
github.com[0: 20.205.243.166]: errno=Connection refused
执行下面的命令
git config --global url."https://github.com".insteadOf git://github.com
再使用 git clone git://...
tar -zxvf apache-maven-3.5.4-bin.tar.gz
vim /etc/profile
export MAVEN_HOME=/usr/local/apache-maven-3.5.4
export PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH
source /etc/profile
mvn -version
[root@localhost local]# mkdir repo
[root@localhost local]# cd apache-maven-3.5.4/
[root@localhost apache-maven-3.5.4]# cd conf/
[root@localhost conf]# vim settings.xml
在settings标签下加上这句话设置仓库位置
/usr/local/repo
[root@localhost local]# mkdir sh
[root@localhost local]# cd sh
[root@localhost sh]# vim bootStart.sh
#!/bin/sh
echo =================================
echo 自动化部署脚本启动
echo =================================
echo 停止原来运行中的工程
APP_NAME=helloworld
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 'Kill Process!'
kill -9 $tpid
else
echo 'Stop Success!'
fi
echo 准备从Git仓库拉取最新代码
cd /usr/local/HelloWorld
echo 开始从Git仓库拉取最新代码
git pull
echo 代码拉取完成
echo 开始打包
output=`mvn clean package -Dmaven.test.skip=true`
cd target
echo 启动项目
nohup java -jar HelloWorld-1.0-SNAPSHOT.jar &> helloworld.log &
echo 项目启动完成
查看对脚本拥有的权限
[root@localhost sh]# ll
total 4
-rw-r--r--. 1 root root 831 Sep 9 20:06 bootStart.sh
[root@localhost sh]# ./bootStart.sh
-bash: ./bootStart.sh: 权限不够
第一个 - 后每三位对应上图的权限
[root@localhost sh]# chmod 777 bootStart.sh
[root@localhost sh]# ll
total 4
-rwxrwxrwx. 1 root root 831 Sep 9 20:06 bootStart.sh
[root@localhost sh]# chmod 000 bootStart.sh
[root@localhost sh]# ll
total 4
----------. 1 root root 831 Sep 9 20:06 bootStart.sh
[root@localhost sh]# chmod 777 bootStart.sh
[root@localhost sh]# ll
total 4
-rwxrwxrwx. 1 root root 831 Sep 9 20:06 bootStart.sh
BOOTPROTO=static
IPADDR="192.168.44.128"
NETMASK="255.255.255.0"
GATEWAY="192.168.44.2"
DNS1="192.168.44.2"
编辑好后要重启网络服务
systemctl restart network