Linux系统的使用:
当前写的博客系统程序,只是部署到自己电脑上,其他用户无法访问到。
由于NAT机制的存在,IP地址被分为了内网IP和外网IP
外网IP,云武器厂商提供的一些机器
不同的局域网之间可以重复。
云服务器是Linux系统,使用命令行操作。
Linux不仅仅使用在服务器领域,也用于嵌入式设备和移动端设备。
嵌入式设备:冰箱,洗衣机 ---》可以用来刷短视频
移动端设备: 安卓系统也是基于Linux发展而来的
桌面端(PC)主流的系统依然是Windows。
操作系统 = 内核 + 配套的应用程序
Linux严格来说是一个操作系统内核
云服务器的购买:
1.阿里云、腾讯云、华为云....
哪个便宜买哪个,对学生有优惠,双11买。
买的话最好一下买好几年,到期之后续费很贵
购买之后,会弹出一个页面,让我们选择服务器
机房(国内机房都可以)
系统镜像(操作系统,选择Ubuntu20.04 或者 Ubuntu 22.04)
其它各种配置 默认就行
找到买好的轻量应用服务器
使用xshell(通过网络连接到云服务器(相当于另外一台电脑)的客户端软件)连接使用云服务器
注:得先启动服务器,才能连接上。
xshell的安装
免费使用xshell
下载之后一路next
使用xshell连上服务器,要明确云服务器的几个信息。
1.外网IP
2.用户名
大部分linux默认的用户名是root
对于ubuntu系统来说,可能是root或者ubuntu
3.密码(首次使用,需要设置初始密码)
密码不要太简单
开始连接
1.在xshell新建会话
2.会弹出一个是否要保存密钥,点击接收并保存
3.会弹出一个对话框,让你输入用户名(root或者ubuntu)
4.弹出密码,输入并保存
成功之后就会进入Linux命令行界面
Linux常用的命令:
1. ls :
list,列出当前目录下有哪些内容(文件/目录)
ls / :
查看 / 这个目录下的情况, / 称为 "根目录"(相当于Windows上的此电脑)
linux没有盘符,所有目录/文件都在 / 目录下
2. cd :
change directory 修改(当前)目录
使用linux的时候,可以使用ctrl + l 来清屏
写的命令都在自己的主目录下操作
3. touch:创建空的文件
4. cat:查看文件内容(把文件内容打印到控制台)
5. echo:打印内容到控制台上
6.vim(Linux自带的文本编辑器,对文件操作)
1)打开文件
vim 文件名
2)编辑内容:
vim
快捷键搭配组合键(ctrl + alt)完成,vim通过单个按键,起到了快捷键的效果
引入模式的概念
启动vim,进入normal mode(普通模式),按键都是快捷键,不是输入文本
只有进入insert mode(插入模式),才能输入文本。
输入 i,进入插入模式
3)保存退出
ctrl + s:冻结屏幕,有时候服务器日志打印的太快,方便看
ctrl + q:解除冻结
先按esc,回到普通模式
再按:(shift + ;)进入命令模式
输入 wq(write表示保存,quit表示退出)
7. mkdir
make directory 创建目录
8. rm
remove 删除文件/目录
删除目录不仅仅是删除目录本身,它所包含的文件和目录也都会被删掉。
所以删除目录时,我们需要递归删除。
(如果有的系统删除目录比较麻烦,每个目录都会提醒你要进行确认,可以使用rm -rf直接删除,不需要进行确认)
使用rm -rf一定要注意,这个目录是不是真的不用了,而且不要rm -rf / 把此电脑删了,删掉之后机器(数据库,tomcat.....)就用不了了。
root在linux上是管理员,拥有最高权限。
在linux命令里面可以定义变量
9.mv
move 移动(剪切和粘贴),文件和目录都可以移动
mv 移动的源 移动的目标
mv 原来的名字 新的名字
10. cp
copy 复制(复制和粘贴) 文件和目录都可以拷贝
cp 要复制的源 要复制的目标
-r 表示递归,目录里的所有内容都会拷贝。
11. man
查看命令的手册
12. grep 字符串匹配 / 查找
想要查找某个文件中是否包含某个关键字,这个关键字在第几行。
13.ps
process show 展示进程 显示出当前系统上都有哪些进程
ps aux | grep 进程名
ps aux | grep 进程id
14.netstat
查看网络信息
可以用来查看某个端口是否被某个进程使用
也可以查询某个进程采用了哪个端口
主要关注tcp,udp涉及到的网络信息
下面的unix域套接字(属于一种进程间通信的方式)
在Linux系统上搭建Java web程序的运行环境
基于包管理器(Linux是apt)进行安装
Linux会把一些软件包,放到对应的服务器上,通过包管理这样的程序,把这些软件包下载安装。(不一定全)
1)JVM(JDK)
要确保是处于root用户下(如果不是管理员,需要使用sudo su切换到管理员)
a. 使用apt命令查看服务器上有哪些软件包
apt list | grep jdk
自己电脑上的jdk得和云服务器上的jdk一致
b. 使用apt安装软件包
apt update 更新一下数据库
apt install 软件包名字
在Linux命令行中,复制ctrl + insert, 粘贴 shift + insert
ctrl + c:终止当前程序
安装成功:
2)Tomcat
如果没有自己想要的版本,就手动安装。
因为tomcat是基于java来实现的。java是跨平台的
a) 把windows上的tomcat上传到Linux上
把要上传的压缩包往shell上拖
1)一次只能拖一个文件(打成压缩包)
2)需要先安装lrzsz这样的软件包
apt install lrzsz
b) 对zip压缩包进行解压缩
unzip 压缩包名字
当然需要先安装unzip这样的软件包
apt install unzip
c)修改.sh文件的可执行权限,让.sh都可以执行
先cd到bin目录
chmod +x *.sh(给所有.sh文件都进行修改,x表示可执行)
成功之后没有报错,.sh文件都变绿了。
d)启动tomcat
在bin目录下
sh startup.sh
e)验证启动是否成功
使用ps查看java进程有无
(使用kill进程id就可以干掉某个进程)
使用netstat查看8080是否被绑定
通过浏览器访问tomcat的欢迎页面
访问之前得确认云服务器的防火墙/安全组是否打开
(不是firewalld,不用敲任何命令)
别人可以访问到你的8080端口
【 为了保护服务器安全,云服务器厂商,对端口做出了访问限制;默认情况下,只有22(xshell登陆时使用的端口)和3389(windows的服务器远程桌面) 能够访问】
8080安全性还行
3306和6379开放出去会被黑客入侵,往你的账号打比特币,删库等等
3)MySQL数据库
apt list | grep mysql
apt install mysql-server-8.0
注意:以上的软件包,安装过一次就好了,云服务器上不要重复安装
部署程序
1.把数据库/表在云服务器上创建好
把程序放在云服务器上执行,访问的就是服务器上的数据库。
把在db.sql中的内容复制到云服务的mysql客户端,执行即可
在linux中,使用ctrl + d退出mysql控制台界面
2.对程序进行打包(打包之前确认一下mysql相关的配置是否需要修改)
windows上数据库的密码是自己设置的,
Linux没有设置过,就是没有密码
打成war包:
3)把war包上传到tomcat的webapps目录中
tomcat会自动对war包进行解压缩,解压缩成功,基本上就是部署成功。
4)通过浏览器访问
打开云服务器的博客系统,可能会出现背景图卡顿情况(服务器网络带宽比较低)
查看tomcat的日志
当出现mysql服务器连接不上时,
之后重启一下mysql
service mysql restart
程序未跑通
1.可以通过 curl 127.0.0.1:8080 来访问一下当前的服务器能不能跑通
跑通
2.端口号是否加在防火墙/安全组中