😹 作者: gh-xiaohe
😻 gh-xiaohe的博客
😽 觉得博主文章写的不错的话,希望大家三连(✌关注,✌点赞,✌评论),多多支持一下!!
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LeOYi7Kf-1662014921086)(%E7%91%9E%E5%90%89%E5%A4%96%E5%8D%96.assets/image-20220901113036345.png)]](https://1000bd.com/contentImg/2023/10/29/004908115.png)
echo ‘LANG=“en_US.UTF-8”’ >> /etc/profile 追加在/etc/profile 目录下
source /etc/profile 立即重新加载一下
说明:
注意:[]代表可选命令名、选项、参数之间有空格进行分隔
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uqyTjvAU-1662014921088)(%E7%91%9E%E5%90%89%E5%A4%96%E5%8D%96.assets/image-20220901142226850.png)]](https://1000bd.com/contentImg/2023/10/29/004908299.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cOp146Jq-1662014921089)(%E7%91%9E%E5%90%89%E5%A4%96%E5%8D%96.assets/image-20220901142315282.png)]](https://1000bd.com/contentImg/2023/10/29/004908202.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NNvDvRlp-1662014921089)(%E7%91%9E%E5%90%89%E5%A4%96%E5%8D%96.assets/image-20220901142134060.png)]](https://1000bd.com/contentImg/2023/10/29/004908204.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-udHlIRTP-1662014921090)(%E7%91%9E%E5%90%89%E5%A4%96%E5%8D%96.assets/image-20220901143253629.png)]](https://1000bd.com/contentImg/2023/10/29/004908022.png)
作用:vi命令是Linux系统提供的一个文本编辑工具,可以对文件内容进行编辑,类似于windows中的记事本
语法:vi fileName
说明:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lO53HSrf-1662014921090)(%E7%91%9E%E5%90%89%E5%A4%96%E5%8D%96.assets/image-20220901143722996.png)]](https://1000bd.com/contentImg/2023/10/29/004908376.png)
1、在IDEA中开发SpringBoot项目并打成jar包
2、将jar包长传到Linux服务器
3、启动SpringBoot程序
4、确认防火墙的端口开放
5、改为后台运行SpringBoot程序,并将日志输出到日志文件
目前程序运行的问题
线上程序不会采用控制台霸屏的形式运行程序,而是将程序在后台运行
线上程序不会将日志输出到控制台,而是输出到日志文件,方便运维查阅信息
nohup命令:英文全称no hang up(不挂起),用于不挂断地运行指定命令,退出终端不会影响程序的运行
语法格式:nohup Command [Arg …][&]
参数说明:
Command:要执行的命令
Arg:一些参数,可以指定输出文件
&:让命令在后台运行
举例:
- nohup java -jar demo6-1.0.0.jar &> 瑞吉外卖.log & 解释:后台运行java-jar命令,并将日志输出到瑞吉外卖日志文件
6、提示SpringBoot程序
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Fjj3CNXf-1662172403197)(%E7%91%9E%E5%90%89%E5%A4%96%E5%8D%96.assets/image-20220902152431238.png)]](https://1000bd.com/contentImg/2023/10/29/004908089.png)
[root@localhost ~]# yum list git # 列出git安装包
[root@localhost ~]# yum install git # 在线安装git
使用git克隆代码
[root@localhost ~]# cd /usr/local # 放置目录
[root@localhost ~]# git clone https://gitee.com/gh987/reggie-linux-test.git
# 输入账号和密码
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sCruby7h-1662172403198)(%E7%91%9E%E5%90%89%E5%A4%96%E5%8D%96.assets/image-20220902152705576.png)]](https://1000bd.com/contentImg/2023/10/29/004908184.png)
[root@localhost 瑞吉]# tar -zxvf apache-maven-3.5.4-bin.tar.gz -C /usr/local
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 # 查看maven 的版本信息
vim /usr/local/apache-maven-3.5.4/conf/settings.xml # 修改配置文件内容如下
mkdir /usr/local/repo # 在 usr/local 下创建 repo目录
<localRepository>/usr/local/repo</localRepository> # repo目录作为maven 的本地仓库目录
# 配置阿里镜像
<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
</mirror>
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WAPMjRLR-1662172403199)(%E7%91%9E%E5%90%89%E5%A4%96%E5%8D%96.assets/image-20220902215805254.png)]](https://1000bd.com/contentImg/2023/10/29/004908112.png)
Shell脚本(shell script),是一种Linux系统中的脚本程序。
使用Shell脚本编程跟JavaScript、Java编程一样,只要有一个能编写代码的文本编辑器和一个能解释执行的脚本解释器就可以了。
对于Shell脚本编写不作为本课程重点内容,直接使用课程资料中提供的脚本文件bootStart.sh即可。
存放脚本目录:/usr/local/sh; 文件名:bootStart.sh
#!/bin/sh
echo =================================
echo 自动化部署脚本启动
echo ================================= # 类似于java中System.out.println();
echo 停止原来运行中的工程
# 如果原先 reggie-linux-test 程序是运行状态 需要先停止 在从git仓库中拉取最新的数据,在重新编译打包
APP_NAME=reggie-linux-test # 定义了一个变量叫APP_NAME
# 查找进程 赋值 tpid
tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then # 找到 执行then后面的代码
echo 'Stop Process...' # 现在控制台输出 Stop Process...(准备结束进程)
kill -15 $tpid # 结束掉这个进程号 -15 和-9相比 相对温柔一些 -9强制
fi
sleep 2 # 睡眠 2s钟
# 再一次查询 双保险 强制结束
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/reggie-linux-test # 拉取文件的位置
echo 开始从Git仓库拉取最新代码
git pull
echo 代码拉取完成
echo 开始打包
output=`mvn clean package -Dmaven.test.skip=true` # 先清理 之后在打包 跳过单元测试
cd target # 进入 target 目录
echo 启动项目
nohup java -jar reggie-linux-test.jar &> helloworld.log &
echo 项目启动完成
chmod(英文全拼:change mode)命令是控制用户对文件的权限的命令
Linux中的权限分为:读(r)、写(w)、执行(x)三种权限
Linux的文件调用权限分为三级:文件所有者(Owner)、用户组(Group)、其它用户(Other Users)
只有文件的所有者和超级用户可以修改文件或目录的权限
要执行Shell脚本需要有对此脚本文件的执行权限,如果没有则不能执行
[root@localhost sh]# ll # 查看一下权限
total 4
-rw-r--r--. 1 root root 1206 Sep 2 07:13 bootStart.sh
[root@localhost sh]# ./bootStart.sh # 可以看出没有执行的权限
-bash: ./bootStart.sh: Permission denied
[root@localhost sh]# chmod 777 bootStart.sh # 权限授权(读写可执行)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oo3izz1O-1662172403199)(%E7%91%9E%E5%90%89%E5%A4%96%E5%8D%96.assets/image-20220902221926543.png)]](https://1000bd.com/contentImg/2023/10/29/004908178.png)

[root@localhost ~]# cd /etc/sysconfig/network-scripts/ [root@localhost network-scripts]# vim ifcfg-ens33
- 1
- 2
- 3
BOOTPROTO=static
IPADDR=192.168.28.100
NETMASK=255.255.255.0
NM_CONTROLLED=noDNS1=8.8.8.8
DNS2=8.8.4.4
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8tyL13wY-1662191432429)(%E7%91%9E%E5%90%89%E5%A4%96%E5%8D%96.assets/image-20220903154740621.png)]](https://1000bd.com/contentImg/2023/10/29/004908313.png)
[root@localhost ~]# systemctl restart network
[root@localhost ~]#
注意:重启完网络服务后ip地址已经发生了改变,此时XShell已经连接不上Linux系统,需要创建一个新连接才能连接到Linux。
公开仓库可以直接拉取
解决私有仓库拉取输入Gitee账号密码问题
# 1、配置本地账户密码:
[root@localhost /]# git config --global user.name "xxxx"
[root@localhost /]# git config --global user.email "xxxxxxxqq.com"
# 2、查看
[root@localhost /]# git config --list --global
user.name=xxxx
user.email=xxxxxxxqq.com
# 3、配置公钥,输入如下,邮箱和刚才一致即可
[root@localhost /]# ssh-keygen -t ed25519 -C "xxxxxxxqq@qq.com"
# 4、按回车三次
Generating public/private ed25519 key pair.
Enter file in which to save the key (/root/.ssh/id_ed25519):
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_ed25519.
Your public key has been saved in /root/.ssh/id_ed25519.pub.
The key fingerprint is:
SHA256:hinumxXNbmjHmbeeWCjyuiP/NQ/62hKS+lbBN4BYr7Y 2495140780@qq.com
The key's randomart image is:
+--[ED25519 256]--+
| o.. |
| . ... |
| ... |
| .o=o |
| +.+oS. |
| oooo* + |
| .Eo=.% o |
| o.o*.B B o |
| =O*=++.= |
+----[SHA256]-----+
[root@localhost /]#
# 5、查看公钥目录
[root@localhost /]# cat /root/.ssh/id_ed25519.pub
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIhoL0tnX1vQrbqMDyagLUMeYwAYZa2DMvKFgeg2CRcA 2495140780@qq.com
# 6、把公钥复制到仓库里,添加ssh公钥
# 7、测试能否链接上
[root@localhost /]# ssh -T git@gitee.com
The authenticity of host 'gitee.com (212.64.63.215)' can't be established.
ECDSA key fingerprint is SHA256:FQGC9Kn/eye1W8icdBgrQp+KkGYoFgbVr17bmjey0Wc.
ECDSA key fingerprint is MD5:27:e5:d3:f7:2a:9e:eb:6c:93:cd:1f:c1:47:a3:54:b1.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'gitee.com,212.64.63.215' (ECDSA) to the list of known hosts.
Hi gonghe! You've successfully authenticated, but GITEE.COM does not provide shell access.
# 8、创建一个目录用于接收
[root@localhost ~]# mkdir reggie-linux-test
# 9、进入这个目录,输入如下,初始化这个目录。
[root@localhost ~]# cd reggie-linux-test
[root@localhost reggie-linux-test]# git init
# 10、开始绑定远程仓库,输入如下,这里使用ssh绑定,也有https绑定方法
git remote add origin + ssh下载地址
[root@localhost reggie-linux-test]# git remote add origin git@gitee.com:gh987/reggie-linux-test.git
# 11、拉取分支最新代码。
[root@localhost reggie-linux-test]# git pull origin master
# 12、关联本地master和远程master,简化命令
[root@localhost reggie-linux-test]# git branch --set-upstream-to=origin/master master
Branch master set up to track remote branch master from origin. # 分支主机设置为从起点跟踪远程分支主机
# 13、如果不小心本地目录误删操作,可以使用如下命令,回退到当前版本。
[root@localhost reggie-linux-test]# git reset --hard HEAD
