一:Linux环境搭建
(1)虚拟机
💗将Linux搭建在虚拟机上
🖤缺点:由于当前的虚拟机软件(如VMWare之类的)存在一些bug,会导致环境上出现各种莫名其妙的问题
🌟非常不推荐
(2)WSL(Windows Subsystem for Linux)
💗Windows系统内集成了一个Linux内核
🖤缺点:目前这个技术还不够成熟
🌟暂时不推荐
(3)云服务器
💗可以直接在腾讯云、阿里云或华为云等服务器厂商处直接购买一个云服务器
💜优点:使用云服务器不仅环境搭建简单,避免折腾,同时还有一个最大的好处,部署在云服务器上的项目可以直接被外网访问到,这个时候就和一个公司发布一个正式的网站没有任何区别!也就能让我们自己写的程序真的去给别人去使用!到时候我们面试的时候就可以提前部署好项目, 现场给面试官演示了
🖤缺点:要钱;虽然这么说,但是比如腾讯云阿里云等为在校学生提供了优惠,只要通过学生认证,最低可以10块钱一个月,少买一杯奶茶又何妨
🌟强烈推荐
二:使用终端软件连接到Linux
(1)终端软件
💗终端软件是一类工具软件,可以和远程的主机建立网络连接,从而对主机进行一些操作
(到时候就可以和你买的云服务器的主机进行连接)
(2)Xshell
🌟XShell是一个知名的终端软件
下载安装XShell➜XShell
(3)Xshell连接云服务器
①云服务器的信息
(1)公网IP
例:以阿里云为例
(2)服务器的管理员账户
(Centos的固定为root;Ubuntu的固定为ubuntu;或者你可以在云服务器中查询)
(3)服务器的管理员密码
(自行设置的)
②Xshell页面
(1)点击页面所示
(2)新建会话
1.名称可以任取
2.主机填的就是云服务器给的公网IP(上图红色框框的地方)
(3)登录用户
🌟这里的密码是云服务器上自己去定义的
(4)进入Xshell页面
(4)关于Xshell的小细节
①关于复制和粘贴:
🌟或者右键命令行界面也可以进行粘贴
②关于登陆成功后的左侧命令提示符:
③关于回车:
1.什么都不输入,直接回车,就是另起一行
2.输入相关命令后再回车,就会执行该命令
(如果输入的是非法命令,就会提示报错,同时会出现一些反馈信息)
④关于文件:
🌟Xshell中会把不同的文件按照不同颜色表示出来
(1)白色:普通文件
(2)蓝色:文件夹/目录
(3)青色:快捷方式(链接文件)
(4)红色:压缩包
⑤关于Tab键:
🌟在敲命令的时候,有时候不用把全部命令都敲完,按Tab键可以进行补全
⑥关于清屏:
🌟Ctrl+L
⑦关于找到之前的输入的命令:
🌟鼠标上下滑动
三:关于Linux小知识
(1)主目录
💜Linux中,~表示主目录,也称为home目录
(一般我们的操作都是在主目录这里完成的)
🌟相当于Windows下的C盘/用户/86188
(2)根目录
💜Linux中,/ 表示根目录
🌟相当于Windows下的"此电脑"
(3)当前目录和上级目录
①. :表示当前目录
②.. :表示上级目录
(4)绝对路径和相对路径
①绝对路径:以 / 开头的
(/ 表示根目录)
②相对路径:以 .或者..开头的
(. 表示当前目录;..表示上级目录)
四:Linux常用命令
(1)ls
1.功能
💗对于目录,该命令列出该目录下的所有子目录与文件
💗对于文件,将列出文件名以及其他信息
2.语法
💙ls [常用选项] [目录或文件]
(ls不加任何参数,表示查询当前目录下的文件/文件夹)
3.常用选项
-a:列出目录下的所有文件,包括以 . 开头的隐含文件
-d:将目录象文件一样显示,而不是显示其下的文件
-k:以k字节的形式表示文件的大小
-l:列出文件的详细信息
-r:对目录反向排序
-t:以时间排序
-R:列出所有子目录下的文件(递归)
(2)cd
1.功能
💗切换目录
2.语法
💙cd 目录名
3.使用示例
cd 或者 cd ~:进入用户家目录,即home目录
cd -:返回最近访问目录
cd /:进入根目录
cd ./指定目录:相对路径方式;进入当前目录的指定目录
(一般来说,这个.和/可以省略)
🌟这两者没有区别
cd .. : 返回上级目录
(3)pwd
1.功能
💗显示用户当前所在的目录,即找到当前目录所在位置
2.语法
💙pwd
3.使用示例
(4)touch
1.功能
💗创建一个文件
💗可更改文档或目录的日期时间,包括存取时间和更改时间
2.语法
💙touch [选项]... 文件...
3.使用示例
(5)cat
1.功能
💗查看指定文件的内容
2.语法
💙cat [选项] [文件]
3.常用选项
-n:对输出的所有行编号
(6)echo
1.功能
💗往指定文件写入内容
2.语法
💙echo [输入的内容] > / >> [指定文件]
🌟注意一个大于号和两个大于号的区别:
(1)>:表示覆盖之前的内容
(2)> >:表示追加,之前的内容不会覆盖
3.使用示例
(7)vim
1.概念
💗vim是一个知名的文本编辑器
(相当于Windows系统下的记事本)
💛cat, less, head, tail等命令只能查看文本,不能编辑文本;使用vim就可以进行编辑了
2.创建文件 / 打开文件
💙vim [文件名]
3.进入插入模式
vim打开文件后默认是普通模式
(此时键盘上按下的键,都属于快捷键,不会对文件进行真正的编辑)
💓使用i键可以进入到插入模式,然后就可以像记事本一样正常编辑了
(左下角提示 --INSERT-- )
4.保存
💗在插入模式下不能保存文件,需要先回到普通模式
🌟按下 Esc 回到普通模式,在普通模式下输入 :w ,再按下回车, 即可保存文件
5.退出
💗在插入模式下不能退出,需要先回到普通模式
🌟在普通模式下输入 :q,再按下回车,即可退出
💚(也可以直接使用 :wq 同时执行保存和退出)
6.使用示例
①进入之前创建的java108.txt
②此时默认是进入普通模式
③按i进入插入模式
④任意编辑文件,就跟记事本一样
⑤先按Esc键退出插入模式来到普通模式,然后按:wq保存并退出
(记得要先按Esc键退出插入模式)
(8)mkdir
1.功能
💗创建一个目录
2.语法
💙mkdir [选项] 目录名字...
3.常用选项
-p:可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多级目录
🌟例如:
mkdir –p test/test1 : 递归建立test和test目录下的子目录test1
4.使用示例
(1)创建一个java108的目录
(2)在java108目录下创建111目录,在111目录下创建222目录
(9)rm
1.功能
💗删除文件或目录
2.语法
💙rm [常用选项] [目录/文件]
3.常用选项
①-f:即使文件属性为只读(即写保护),亦直接删除
②-i:删除前逐一询问确认
③-r:删除目录及其下所有文件
4.使用示例
①删除文件
②删除目录
(10)cp
1.功能
💗复制文件或目录
2.语法
💙cp [选项] 源文件或源目录 目标文件或目标目录
3.常用选项
①-f:强行复制文件或目录, 不论目的文件或目录是否已经存在
②-i:覆盖文件之前先询问用户
③-r:将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理
(复制目录一般带-r选项)
④-R:将指定目录下的文件及子目录一并处理
4.使用示例
(11)mv
1.功能
💗①当第二个参数是目标文件时,mv命令完成文件重命名
(此时,源文件/源目录只能有一个,它将所给的源文件或源目录将重命名为目标文件名)
💗②当第二个参数是已存在的目标目录名称时,mv命令完成文件移动
(源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中)
2.语法
💙mv [选项] 源文件或源目录 目标文件或目标目录
3.常用选项
①-f :强制;如果目标文件已经存在,不会询问而直接覆盖
②-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖
4.使用示例
①第二个参数为目标文件时:
②第二个参数为目标目录时:
(12)man
1.功能
💗Linux的命令有很多参数,我们不可能全记住,我们可以通过man指令查看联机手册获取帮助
2.语法
💙man [选项] 命令
🌟按Q退出
3.常用选项
①-k:根据关键字搜索联机帮助
②num:只在第num章节找
③man man:能够看到 man 手册中的若干个章节及其含义
(13)grep
1.功能
💗用于查找文件中是否包含指定字符串,并显示对应的行
2.语法
💙grep [参数]... 指定的字符串 [文件]...
3.常用选项
①-n:显示的行数
②-w:全字匹配. 要求整个单词都完全相同的结果才能匹配出来,而不仅仅是一个单词的一部分
③-r:递归查找. 可以搜索多级目录下的所有文件
④--color:高亮查找到的结果
⑤--include:指定查找某些文件
⑥--exclude:指定排除某些文件
4.使用示例
(14)ps
1.功能
💗用于查看当前系统上运行的进程
2.语法
💙ps [参数]...
3.常用选项
①a:显示一个终端的所有进程
②u:以用户为主的格式来显示程序状况
③x:显示所有程序,不以终端机来区分
④aux:可以看到Linux上所有的进程
4.使用示例
①显示Linux上所有的进程
②显示包含vim的所有进程
💖(这里的 | 称为管道;能够把多个命令连接到一起,即把前一个命令的输出作为后一个命令的输入)
(15)netstate
1.功能
💗查看系统上的网络状态
2.语法
💙netstat [参数]...
3.常用选项
①-a:显示所有正在或不在侦听的套接字
②-n:显示数字形式地址而不是去解析主机、端口或用户名
③-p:显示套接字所属进程的PID和名称
④-anp:常用的方式去查看
4.使用示例
根据端口号去筛选出对应的线程
五:搭建Java部署环境
(1)yum/apt
1.定义
💗yum和apt是Linux下非常常用的一种包管理器
(包管理器就好比 "应用商店", 我们可以在应用商店上下载一些 app)
💜yum和apt起到的功能和Maven的依赖管理功能类似;使用Maven能帮我们方便的安装一些第三方jar包,而yum和apt方便我们方便的安装第三方程序
①yum:centos发行版上的包管理器
②apt:Ubuntu发行版上的包管理器
2.查看软件包列表
①centos发行版上的yum
yum list | grep [软件包关键字]
②Ubuntu发行版上的apt
apt search [软件包关键字]
③示例:因为我的是Ubuntu,所以使用apt
3.安装软件包(需要管理员权限)
①centos发行版上的yum
yum install [软件包名字]
②Ubuntu发行版上的apt
apt install [软件包名字]
🌟安装软件包,需要确保你是管理员身份,即root身份
(1)如果你使用的是centos,你就已经是root身份
(2)如果你使用的是Ubuntu,你可能需要通过sudo root这个命令切换到管理员身份,也有可能已经是root身份
4.卸载软件包(需要管理员权限)
①centos发行版上的yum
yum remove [软件包名字]
②Ubuntu发行版上的apt
(2)JDK
1.下载jdk的版本
🌟我们选择jdk1.8
①apt包管理器
②yum包管理器
2.下载jdk8
①apt包管理器
(输入Y就代表确认下载)
②yum包管理器
3.查看jdk是否成功安装
(输入javac也行)
(3)Tomcat
1.下载Tomcat的版本
🌟我们选择Tomcat8
2.查看Tomcat软件包的版本
①centos发行版上的yum
yum list | grep tomcat
②Ubuntu发行版上的apt
apt search tomcat
(由于这里的Tomcat版本比较低,我们另寻捷径,下文会讲到)
3.如何下载Tomcat
1.进入到Tomcat官网:Tomcat官网
2.左侧DownLoad,点击Tomcat8,下拉,然后点击如下图所示的zip进行下载
3.在Linux上,先在home目录下创个目录,进入新建的目录,拖住zip包放到Linux页面上即可完成上传
🌟把zip包拖到Linux页面之前,需要先下载点东西
(1)对于Centos的指令:yum install lrzsz
(2)对于Ubuntu的指令:apt install lrzsz
4.解压缩Tomcat
🌟使用unzip解压缩:unzip 压缩包名
5.修改可执行权限
(1)先进入到bin目录下
🌟cd apache-tomcat-8.5.94/bin
(至于版本,看你下载的是什么版本,修改后缀即可)
(2)给.sh 后缀的文件加上可执行权限
🌟chmod +x *.sh
6.启动Tomcat
(1)当你不在bin目录下
🌟sh bin/startup.sh
(2)当你在bin目录下
🌟sh startup.sh
7.验证Tomcat是否启动成功
4.强制关闭Tomcat
🌟kill Tomcat进程的id
5.外网IP访问Tomcat默认页面
1.首先需要开启云服务器的安全组/防火墙功能
🌟以阿里云为例:
2.访问Tomcat默认页面
🌟云服务器的IP:8080
(4)MySQL
(1)Centos安装MySQL5.7版本
(2)Ubuntu安装MySQL5.7版本
(3)Ubuntu安装MySQL8.0版本
①输入apt search mysql,找到如下图所示
②输入apt install mysql-server-8.0即可完成安装
③输入mysql -uroot进行访问mysql
④在mysql命令行输入exit即可完成退出
⑤通过输入mysql -uroot -p即可完成输入密码登录mysql
(由于我的mysql密码为空字符串,即“ ”,因此在Enter password这一行按一下回车即可)
⑥关于如何修改mysql密码可参考文章:ubuntu20.04 上 mysql8.0 用户密码修改
六:部署博客系统
🌟关于博客系统的文章:简略版博客系统(使用前后端分离)
(1)进行Java代码的微调
💗打开DButil文件,安装下图完成代码修改
(这里数据库的密码必须要和云服务器上安装的数据库密码相同;而我这里密码是"")
(2)在云服务器的数据库建库建表
💗打开db.sql文件,把里面的内容复制到云服务器安装的数据库上
(3)打包程序成war包
①先打开pom.xml,然后加入红色框框这些内容,确保下载的是war包
②双击最右侧的maven面板,点击lifecycle,双击package即可进行打包
③打包完成后,可以看到左侧target目录多了一个war包,名字即finalName标签里写的名字
(4)把war包上传到Tomcat的webapps目录下
①先进入到webapps目录下
②把war包拖到Linux页面,即可完成上传
(5)使用云服务IP打开博客系统
🌟[云服务器IP]:8080/war包名/html页面