前言
Xshell下载地址
点击连接
常见命令
ls
ls:显示当前目录下的文件
ll:可以显示隐藏文件和非隐藏文件与ls -l一样
ls -a -l这两个掌握就可以了
ls --help就可以知道这个后面可以跟什么
ls -al还可以这样
cd
cd:进入文件夹
cd后面可以跟相对路径,也可以是绝对路径
linux根目录是/
可以cd …/
这个是上一级目录
如果名称很长,可以按tab,这个是自动补全
如果tab选项只有一个,按tab就自动补偿
cd .这个是变到上一次cd的地方
cd ~是回到自己的目录
mkdir
这个就是创建文件夹
如果要创建多个目录,要加上-p
这个就是创建多级目录
设置
在工具–》选项里面
设置这个
这样的话,我们要复制的话
就只需要选中这个,然后按右键就可以粘贴了
这个也是粘贴复制的
pwd
查看当前路径
touch
创建文件
sz与rz
rz
我们先安装这两个命令
apt-get install lrzsz
这个命令安装
rz表示上传
sz表示下载
这个就表示下载
就可以下载到windows了
注意我们可以直接在Windows拖动来上传
权限那一列,分别为自己,别人,组的权限
cat
这个就是读文件
直接在终端显示文件的全部内容
more
只显示一页,敲空格就表示翻下一页
翻上一页就是b建
或者直接鼠标翻
ctrl+c结束查看more这个命令
clear
清屏,但是内容还是在上面的
结束公式
ctrl+c
两次ctrl+c
exit
:q
:q!
less
less也是查看一页
ctrl+c,exit都结束不了
要用:q来结束
不知道用什么来翻页
可以用上下键翻动
less浏览不会留在终端
而前面more和cat会在终端显示
/+字符串就是查找功能,搜索功能
more也是这样来查找
head
head +文件名也是显示文件
默认显示前十行
-数字就可以查看前n行了
tail
就是查看最后的
默认查看最后十行
tail -100 pom.xml
就是查看最后n行
在命令行显示
vi或者vim
编辑文件
vi进入文件
i编辑模式
这样就可以写入了
先按esc退出编辑模式
:wq就是保存并退出
:q!强制退出,不保存,如果修改了文件,是不能正常退出的
如果两个用户同时去修改这个文件
同时在修改这个文件
第一个用户正常保存退出了
第二个用户就不能正常保存退出了
只能强制保存退出
:wq!
这个的缺点就是会造成代码的覆盖
-f就是循环读取
就是倒着看
rm
文件的删除
rm 文件名
这个只能删文件,不能删文件夹
rm -r 文件夹
这样就可以了
删除多级目录就是要-r,一级目录也要-r
这个是删除文件夹以及里面的文件
-f 就是只读(保护)的文件也是直接删除
这个就是删除全部
sudo rm -rf /
就是用管理员的权限来试一下
cp
copy
这个就是复制的意思
这个意思就是把文件复制到哪个文件夹的意思
如果是复制目录也就是文件夹的话,就要加上-r
mv
move
就是把某个文件移动到某个目录
这个命令就是直接改名了
grep
这个是查找的命令
查找的东西
后面跟的是哪个文件
ps
这个用于查看当前系统上运行的进程
ps -ef 表示也是查看所有进程,就是显示的格式不一样而已
ef显示不全,只显示部分
这些就是进程
这个就是查看含有一些字符的指定进程
因为grep本身也是一个进程
所以找redis的时候,也会把自己打印出来
而且grep后面的引号也可以不加
netstat
查看系统上的网络状态
这个就是显示所有的网络端口那些了
因为这个是查看网络的端口号,不是查看进程,所以不会显示自己的
管道
搭建java的部署环境
apt
这个是软件包管理工具,是ubuntu的,不是ctenos的
这个是用来下载东西的,比如jdk
比较方便
但是可能某些软件和某些软件版本没有
当然我们可以用官方的方法去安装
列出
现在开始介绍一些常用命令
apt的命令需要sudo权限,就是root的权限
apt -list
是列出所有的软件包
这个非常多,会卡死的
直接ctrl+c关闭就可以了
我们可以用grep指定查看
更新
apt-get update
这个是更新软件包数据库,就是相当与更新,我们手动更新
安装软件时
先更新一下apt数据库
在安装
sudo su可以切换到root用户
安装与移除
sudo apt install package_name
package_name是软件包名
sudo apt remove package_name
这个是移除
remove 是删除二进制文件,会留下配置文件
但是apt purge就可以删除配置文件了
一般用apt remove
我们想要彻底卸载用apt purge
jdk
先更新软件包
在安装
我们先来查找一下
我们安装jdk17
而且是openjdk
因为这个是免费的
我们安装这个
apt install openjdk-17-jdk
直接这个就可以安装了
安装得有点久
java -version
输入这个可以查看自己是否安装成功
这样就安装成功了
mysql
安装mysql了
还是先要查找
apt list | grep “mysql-server”
我们装这个
apt install mysql-server
然后就可以了
如果已经安装好了mysql需要先卸载
先停止他
systemctl stop mysql
然后卸载
apt-get remove --purge mysql-星
删除mysql配置文件
rm -rf /etc/mysql /var/lib/mysql
清理残存文件和目录
apt-get autoremove
apt-get autoclean
检查是否有残留
dpkg --list | grep -i mysql-*
移除相关包
apt-get purge mysql-星
最后查看版本
mysql --version
如果没有找到这个mysql命令就成功了
反之
这样就是成功了
部署Web项目到Linux
环境介绍
开发环境:开发人员使用的环境
测试环境:测试人员使用的环境,造一些测试的数据去测试–》f发布到预发布环境
生产环境:真实用户使用的环境
预发布环境:和生产环境一样,就是不对外—》最后变为生产环境
就是外部人员访问不了,无法用www.jd.com访问,但是可以用域名访问
但是这个可以正常使用,正常访问
www.jd.com访问生产环境
灰度发布就是先发布10%这样慢慢的发布
但是企业中一般是自动化部署
1.打包(从git上拉程序)
2. 上传jar包
3. 3.启动jar包
环境配置
安装jdk和mysql
我们直接sudo mysql就可以操作mysql了
但是不安全
我们先确认一下我们的mysql是不是启动的状态
默认安装之后是启动的状态
如果出现了running就是在启动中
mysql安全设置
mysql_secure_installation
接下来里面有三个选项
第一个是问你是不是要进行这个安全设置
第二个叫你设置密码强度
但是我们只能选2,最强的强度
第三个就是我们的mysql有一个匿名的用户,要不要删除,直接y删除
第四个是问你当前数据库是不是只允许locallhost链接只能本地连接,y
意思就是我们当前安装的数据库只能在我们这台服务器上连接,不可能用windows去连接 ,如果要连接,就要授权,mysql grant,表示这个用户可以操作哪些表
直接设置y
第五个是mysql上有一个数据库test,所有人都可以访问,要不要删除,y
第六个是问你要不要让你刚刚的修改生效,y
安全设置的目的是,数据库不允许外部连接,因为端口号3306很容易被黑掉
要访问数据库,就只能连接到我们的服务器才可以连接了
直接sudo mysql就可以访问我们的数据库了
这里就可以写sql语句了
输入exit退出
如果要本地windows来连接,可以用隧道的方式来连接,可以在网上搜
开启隧道(简单了解)
点这里的隧道
然后添加
目标端口号,如果是mysql的话就是3306
改mysql密码
先sudo mysql
然后就是输入修改mysql密码的sql语句
ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘@yyds.666’;
最后一个就是密码@yyds.666
然后我们退出之后
再次sudo mysql就进不去了
因为有密码了
我们输入mysql -uroot -p
就可以输入密码了
数据准备
就是直接在mysql上建立我们以前的数据库
直接把这个复制过去
直接粘贴复制
这样就成功了
上传jar包
这里的密码要改一下,就是刚刚Linux上修改的密码
但是我们本地的时候又要改为123456
就很麻烦
而且Linux上我们可以不用打印mybatisPuls的日志
所以开发环境与我们的日志环境的配置不一样
代码改来改去很麻烦
所以我们讲一下多平台的配置
不同平台的配置文件是不一样的
所以我们可以根据不同的平台弄不同的配置文件
接下来我们prod这个文件就要改一下了
改一下密码还有不要打印日志
现在的问题就是到底哪个生效的问题
我们配置端口就可以了
这样的话Linux我们用8082端口就可以了
但我们启动默认是8081,就是第一个
而且默认生效的就是只有application.yml这个文件
其他文件是不生效的
如何进行生效呢
我们去掉所有的端口号
我们写上这个,就可以指定哪个文件去生效了
dev就是我们本地的环境
这里的dev就说明生效了
默认这里的日志是default
就是application.yml
但是我们这样还是要改代码
我们代码的禁忌就是不要改代码
因为git那里会改来改去的
我们可以把这个变成一个变量
变成一个可以传递的变量
这里就要用maven了
我们在pom.xml文件中
与dependencies和build并列加一个profiles
这样我们的yml就可以从maven中读取我们配置的一些属性了
怎么拿值呢
这样就可以拿值了
密码那里可以不用定义到profile中
因为yml中已经定义了
我们使用的是哪个profile
怎么判断呢
这个就是右边的maven多了两个dev和prod
你要打包谁的,就勾谁
勾谁就是用的谁的profile
勾上之后还要刷新maven
如果要让dev默认生效,还要设置
加上这个true之后,就是默认的了
这样就成功了
可以正常启动了
这里补充一下
我们可以给
url添加这个
防止报错
这样就可以正常运行了
发布环境
我们打包,必须要有这个插件
因为这个打包会打第三方的东西
没有的话就不会打第三方的
点上prod,记得刷新maven
然后点击package
但是我们出错了
正常来说
我们点击package,会自动执行clean的,就是会自动执行它前面的指令的
还有一个值得注意的就是我的密码是以@开头的
这个开头的话
整个密码还是用字符串的表示两个单引号引起来吧
不然会出错的
但是如果我们在测试里面增加一个对mybatis的测试的话
打包就会出错了
为什么会这样呢
因为我们现在使用的是prod
但是我们这个测试类使用的数据库是我们本地的数据库
但是prod的密码不是本地的密码123456了
所以访问会出错的
我们连的是本地的数据库
密码是服务器的数据库
所以会出错的
报错的话
打包就会出错了
我们点击package的时候
会把它上面的命令从上往下执行
我们只需要跳过test就可以了
跳过测试的时候点这个
或者我们专业版的这个
这样的话
test就消失了
就可以正常打包了
我们再看一下
为什么我们的prod配置的是127.0.0.1
而不是云服务器的iq地址呢
因为127.0.0.1表示的是本机
没有问题的
我们打的包在这里
然后我们去打开就可以了
就是第一个比较大的
然后我们上传到我们的服务器上
直接拖过去
欧克了
改个名字
启动jar包
java -jar blog.jar
这样就启动了
我们还不能访问
我们还需要开通一下端口号
默认的情况下
我们的端口号别人是不能访问的
还要开通一下
开通端口号
要去我们的服务器那里开通
我们点到我们服务器的详情信息那里
然后点击安全组
然后点击添加规则
http协议就是TCP
这样就可以了
1代表优先级最高
0.0.0.0/0代表接受所有地址、
然后确定就开通这个端口号了
这样不要动
我们的程序就可以访问了
这样我们就成功了
但是我们的数据库还没改
登录不了的
看日志
我们不可能一直盯着xshell吧
而且关掉xshell,就无法访问http://139.159.230.105:8080/blog_login.html了
因为我们采用的java -jar的方式来启动的
只要我们的会话关掉了
或者ctrl+c了就无法执行了
所以我们要后台执行才行
如何后台启动呢
nohup
这个命令就是后台执行的,其余的命令该是啥还是啥,最后加个&
nohup java -jar blog.jar &
敲两次回车就可以了
这样就可以正常访问了
关掉xshell,关掉电脑都是可以访问的
日志2
注意我们的日志就默认在这个目录生成了
接下来我们就要用tail来看日志了
tail -f spring-blog.log
-f是滚动看
就是一直看一直看的意思
我们登录一下
登录失败
我们的日志就会实时的在这个文件更新了
如果只是cat 日志的话
是不会实时更新的,实时打印出来的
more也是这样
tail -f就是查看滚动日志了
改数据库
现在改一下数据库
mysql -uroot -p
use java_blog_spring;
select * from user_info;
密码我们在idea中生成拿过来就可以了
update user_info set password = ‘’;
这样就更新了
这样就成功了
这样就成功了
可能遇到的问题
程序无法访问
看一下我们启没启动
就看一下8080端口号开没开就可以了
ps -ef|grep java
看得出来开了的
接下来看端口
netstat -nltp|grep 8080
我们就可以通过看java程序和服务的端口号就可以了
53298就是进程id
还不行就看端口号是否开发
最后再看程序是否可以访问
我们如何通过自己的云服务器就是linux来访问呢
用
curl http://127.0.0.1:8080/blog_list.html
这样就可以在本机访问了
直接返回了一个html页面
说明这个url是通的
还要可能是防火墙的问题
看防火墙是否打开了
默认是关闭的,防火墙是关闭的
可以去网上搜一下Ubuntu的防火墙的打开
sudo ufw status
这个是查看防火墙状态
显示这个就是没有打开防火墙
显示active就是打开了防火墙
如果防火墙打开了----》还需要再打开防火墙的端口号
可以去网上搜资料,如何打开防火墙或者找客服
如何开放端口号
sudo ufw allow 22----->开放防火墙的端口号,不一定是22
然后重启
最后还可能是到底是不是tcp协议,一般遇不到这个问题
还要可能是服务没启动
看端口号是否正确
第二看是否有错误日志–》数据库等等
密码纯数字也要加单引号
杀掉进程
如果我们重新又打包一个
同样去启动这个程序
就会发生端口号已被占用的错误
所以我要杀掉进程
可以去日志里面去看
就是53298这个就是进程id
或者用上面的查看端口号8080的方式
也可以得到进程id
也可以用ps -ef|grep java
都可以得到
kill 53298就可以杀掉了
所以重新发布的时候就要杀掉进程了
修改项目
主要是改图片
改文字那些东西
还可以加上注册的功能—》就是单独的一个注册界面
还有文章和分类那些东西
还有头像上传的功能
头像上传就是文件上传的知识了
要有url–》图片内容–》直接上传到服务器,所有的图片都放在服务器的一个文件夹中
上传文件在springmvc那里讲过的
这个就是上传文件到指定的路径----》以/为根目录
我们这个还是要去网上搜资源来实施
文章和分类也可以拓展
文章和分类不存储,还是实时查询的
添加一个sql就可以了
还可以添加分页的操作
如果不认识这个@该怎么办呢
可能是要刷新一下maven就可以了