文章目录
- 1、课程介绍
- 2、为什么需要Linux
- 3、Linux简介
- 3.1、什么事Linux
- 3.2、Linux优点
- 3.3、常见的Linux系统
- 3.4、小结
- 4、虚拟机安装
- 4.1、引入
- 4.2、常见的虚拟机软件
- 4.3、安装vmware
- 4.4、vmware常用操作
- 4.4.1、全局配置虚拟机(Linux系统)存储位置
- 4.4.2、虚拟机操作
- 5、CentOS安装
- 5.1、CentOS是什么
- 5.2、配置虚拟裸机
- 5.3、CentOS7系统安装过程
- 5.4、安装完成后配置
- 5.4.1、备份系统
- 5.4.2、网络介绍
- 6、命令执行方式
- 6.1、引入
- 6.2、本地终端
- 6.2.1、打开本地终端
- 6.2.2、简单使用
- 6.3、远程访问Linux
- 6.3.1、引入
- 6.3.2、SSH服务端的验证
- 6.3.3、SSH客户端的安装
- 6.3.4、CentOS防火墙操作
- 7、Linux命令
- 7.1、常用命令
- 7.2、文件相关命令
- 7.2.1、文件系统
- 7.2.2、目录相关命令
- 7.2.3、文件相关命令
- 7.2.4、查看端口
- 1、查看端口占用情况:
- 2、杀死端口所占用的进程
- 8、CentOS中软件安装
- 8.1、解压源码包文件安装
- 8.2、RPM安装
- 8.3、yum在线安装
- 8.4、安装JDK
- 9、安装MySQL
- 9.1、MySQL卸载
- 9.2、安装MySQL
- 9.3、MySQL编码集设置
- 9.4、增加MySQL远程登录权限
- 9.5、关闭防火墙
- 10、安装Tomcat
- 10.1、准备安装包
- 10.2、开启服务和关闭服务:
- 10.3、解压
- 10.4、部署
- 11、部署项目
- 12、资源下载地址
- 13、总结
1、课程介绍
- Linux简介(了解)
- 虚拟机软件(掌握)
- CentOS安装(掌握)
- Linux常用命令命令(掌握)
- Linux中安装常用软件(掌握)
2、为什么需要Linux
- 程序开发完成之后需要部署到服务器,这样用户才能通过服务器访问到我们的程序
- 而在当今主流的三大系统(windows、linux、macOS)中,linux常被当成硬件服务器来使用
- Linux无需消耗其他资源维护大量UI界面,所以性能好很多,windows需要消耗资源维护UI界面
- Linux系统比windows系统更加稳定和安全
3、Linux简介
3.1、什么事Linux
和windows操作系统类似,Linux是一套性能稳定的多用户网络操作系统
3.2、Linux优点
- 源代码开放:任何人都可以获取到Linux源代码探索学习
- 稳定性和高效性:你也许会听到Windows服务器长时间运行而突然宕机,但你绝不会听到Linux系统服务器因为长时间不关机会卡死,在Linux上几乎是不会出现这种情况的。Linux服务器可以无休止的运行下去不宕机,甚至一两年不重启,因为它继承了Unix卓越的稳定性和高效性
- 可靠的安全性、稳定性能:其安全性相比其他系统也要安全很多,基本不需要安装杀毒软件
- 多用户多任务:Linux系统同时可以支持多个用户,每个用户对自己的文件设备有特殊的权利,能够保证各用户之间互不干扰。当硬件配置非常高时,每个用户还可以同时执行多个任务、多个线程同时工作、提高效率,简直是完美的一塌糊涂,单凭多用户而言就完爆其他操作系统
- 对硬件配置要求低:最低128M内存就可以运行
3.3、常见的Linux系统
1、rpm系(使用Red Hat(红帽子)的软件库管理系统):
(1) Redhat 红帽,收费,技术支持强大,资料完善,系统稳定安全;
(2) Fedora 被红帽赞助,适合个人使用,免费;
(3) Centos 被红帽收购,免费,系统稳定安全,很多公司在用;
2、dpkg系 (package manager for Debian):
(1) Debian 很多公司在用,基于ubuntu(乌班图);
(2) Ubuntu 基于debian的发行版,比较最受欢迎的免费操作系统,界面强大。比较适合个人用户;
(3) Pear os 基于Ubuntu,仿macos;
3、国产linux系统:
(1) 红旗Linux,真正的国产linux系统,2014年公司解散后被收购
3.4、小结
- Linux是一个操作系统,有很多发行版本;
- 服务器:centos、redhat、Ubuntu等;
4、虚拟机安装
4.1、引入
- Linux需要在一台电脑上进行安装,获得一台电脑的方式有很多,比如网上或者实体店购买
- 当然现在有了更加便宜的解决方案,那就是借助虚拟机软件,使用虚拟机软件可以模拟出计算机,从而可以在上面安装任何的操作系统,大大节约了成本
4.2、常见的虚拟机软件
- vmware:虚拟机软件中的NO.1,特点:模拟完善、有商业授权、收费软件(序列号),内存大
- virtualbox:原来的sun公司,现属于Oracle,免费开源,更新及时,体积小,内存优化,兼容性不是特别好
- virtual PC 微软的免费产品:仅支持windows系统(微软官方说只支持windows,其实别的系统也可以安装)现已停止更新
- Hyper:微软最新的虚拟机软件;
4.3、安装vmware
双击【VMware-workstation-full-10.0.0-1295980.exe】文件,安装即可:
选择自定义:
注意,这里的安装目录不要选择C盘,选择其他空间大点点盘,路径不要带中文,然后下一步:
这里的共享虚拟机存储路径需要选择一个非C盘,非中文目录的路径。下面的端口是443,如果你本地安装了SVN的话,那可能会冲突,那就修改成其他端口即可。
然后下一步:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Q8rVMLLH-1673165466128)(https://gitee.com/xiaochen1106/MyImages/raw/master/java/202301081607789.png)]
等待几分钟之后,就会弹出下面界面需要你输入密钥了:
打开课件里面的【密钥.txt】文件,拷贝密钥出来粘贴进去即可:
点击【输入】即可:
安装成功后桌面出现下面图标:
那么怎么验证我们安装成功呢?
打开本地网络链接:
如果出现两个VMware的网络的话,那就是安装成功了,没有这个的话,到时候是无法和虚拟机中的系统进行通信的。
可能出现的问题:安装完成后不能看到屏幕,即红蜘蛛控屏出现问题;
分析原因:红蜘蛛客户端使用了vmware的虚拟网卡作为网卡了,而该网卡的Ip和教师机不在同一网段;
解决方法:
- 重新启动红蜘蛛客户端
- 先把VMware的两个虚拟网卡禁用,再启动红蜘蛛客户端
4.4、vmware常用操作
4.4.1、全局配置虚拟机(Linux系统)存储位置
1、vmware是一个虚拟机软件,在Vmware上可以新建不同的虚拟机,而虚拟机是作为宿主机的一个文件而存在的,默认Vmware是安装在C盘,而虚拟机又安装在vmware目录下面的,也就是说虚拟机是在系统盘(C盘),如果宿主机重新安装系统,会导致C盘被格式化,就会让已经安装好的虚拟机被格式化了。所以需要修改虚拟机存储位置,来规避这个问题;
2、修改虚拟机的默认位置(也可以在安装时修改):编辑 -> 首选项
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vLAapZbk-1673165466133)(https://gitee.com/xiaochen1106/MyImages/raw/master/java/202301081607798.png)]
4.4.2、虚拟机操作
1、创建虚拟机
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BTx106hO-1673165466134)(https://gitee.com/xiaochen1106/MyImages/raw/master/java/202301081607799.png)]
2、导入导出:可以把已经安装好的虚拟机导出,以后需要时再导入
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wAhEnaFt-1673165466134)(https://gitee.com/xiaochen1106/MyImages/raw/master/java/202301081607800.png)]
3、备份还原
注意:初学者配置快照非常重要,如果Linux中软件安装失败了,可以恢复到指定的快照版本再来一次,否则删除不干净需要重新安装Linux,非常麻烦;
5、CentOS安装
5.1、CentOS是什么
- CentOS(Community Enterprise Operating System,中文意思是:社区企业操作系统)是Linux发行版(红帽子)之一,它是来自于Red Hat Enterprise Linux依照开放源代码规定释出的源代码所编译而成。由于出自同样的源代码,因此有些要求高度稳定性的服务器以CentOS替代商业版的Red Hat Enterprise Linux使用。两者的不同,在于CentOS并不包含封闭源代码软件;
- CentOS就是一个红帽系列的开源免费的可以用做服务器的Linux系统;
- 此系统需要在wmware(虚拟机软件)中先新建一个虚拟机,然后再虚拟机中安装CentOS
5.2、配置虚拟裸机
打开我们的虚拟机:
我们开始新建虚拟机:
选择自定义即可:
这一步不用改什么,直接下一步:
选择稍候安装操作系统
这里选择Linux和CentOS 64位,因为给大家准备的镜像文件是CentOS 64位的
这里给虚拟机取个名字,容纳后指定一个位置即可:
这里我为虚拟机分配了4个G的内存,根据你电脑实际内存去分配
默认下一步即可:
这里选择单个文件,磁盘大小我分配了20G,根据实际情况分配即可(必须大于9G):
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mTFzvO8F-1673165466140)(https://gitee.com/xiaochen1106/MyImages/raw/master/java/202301081607817.png)]
此处,点击【自定义硬件】,将不需要的全部移除,像打印机、声卡、USB等去掉:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1sfUkubl-1673165466141)(https://gitee.com/xiaochen1106/MyImages/raw/master/java/202301081607818.png)]
然后点击关闭
最后虚拟机新建完的效果如下:
5.3、CentOS7系统安装过程
选择第一个即可
安装需要等待一会,如果静止不动了点话,按回车即可,鼠标移不出来的了的话,按Alt+Ctrl即可将鼠标移出来
等一会之后就会出现如下界面:
这里我们选择中文即可:
点击继续:
软件选择:默认是最小安装的,这里可以选择带有桌面的选择这种模式,选择图示:
安装位置,选择如下:
KDUMP选择如下:不用勾
点击【网络和主机名】:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-m5fc0MUT-1673165466144)(https://gitee.com/xiaochen1106/MyImages/raw/master/java/202301081607829.png)]
点击完成
到此就全部设置完毕了,点击【开始安装】
点击【ROOT密码】,然后设置超级管理员密码即可:
我这里设置的是123456,自己设置的记住就可以了:
等一段时间安装完成之后就是如下界面:
点击【重启】即可
选择第一个,等会后出现下面界面:
点击第一项,需要勾选统一许可:
然后点击【完成配置】,等会后出现下面界面:
直接点击【前进】
继续点击【前进】
点击【前进】
不管,直接点击【前进】
不选择,直接点击【跳过】
这里可以输入你的名字,然后点击【前进】
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xmt0pOqK-1673165466150)(https://gitee.com/xiaochen1106/MyImages/raw/master/java/202301081607844.png)]
我这里设置的是:itsource123456,然后点击【前进】
设置完毕:
5.4、安装完成后配置
5.4.1、备份系统
5.4.2、网络介绍
我们这里介绍vmware给我们提供的3中模式,它们分别是:
- Nat网络地址转换模式
- Bridged Adapter 桥接模式
- Host-only Adapter 主机模式
1、Nat网络地址转换模式
(1) 只能单向访问,虚拟机可以通过网络访问到宿主机,宿主机无法通过网络访问到虚拟机;
(2) 如果linux上的ip地址是自动获取的,是可以通过宿主机访问虚拟机的,但是要保证linux的ip地址网段和宿主机的虚拟网卡的网段一致;
(3) 只要宿主机可以联网,那么虚拟机就可以联网,因为net方式联网是依靠宿主机的ip;
(4) Net方式的ip地址是由虚拟网卡分配的;
2、Bridged Adapter 桥接模式
(1) 可以相互访问,因为虚拟机在真实网络段中有独立IP,主机与虚拟机处于同一网络段中,彼此可以通过各自IP相互访问;
(2) 桥接模式的ip地址是由路由器分配的;如果宿主机能联网,虚拟机不一定能联网,如果宿主机不能联网,虚拟机也可以联网;
3、Host-only Adapter 主机模式
Host-Only模式其实就是NAT模式去除了虚拟NAT设备,然后使用VMware Network Adapter VMnet1虚拟网卡连接VMnet1虚拟交换机来与虚拟机通信的,Host-Only模式将虚拟机与外网隔开,使得虚拟机成为一个独立的系统,只与主机相互通讯
通过上图,我们可以发现,如果要使得虚拟机能联网,我们可以将主机网卡共享给VMware Network Adapter VMnet1网卡,从而达到虚拟机联网的目的
注:宿主机,就是提供给虚拟机环境的主机。这里指的就是我们的windows系统主机;
6、命令执行方式
6.1、引入
- Linux最开始是没有图形界面的,都是通过命令操作。后面为了方便操作一些版本的操作系统把常用的操作封装图形操作,这样我们可以使用图形界面操作Linux
- 但并且不是所有的功能都有图形界面的,有的操作必须得命令完成。并且一般服务器都是不安装图形界面
- Linux操作命令分两种:本地终端执行和远程终端执行
6.2、本地终端
类似于windows下面的cmd:
6.2.1、打开本地终端
注意:此种方式要求你必须在Linux电脑旁边
出现如下界面:
6.2.2、简单使用
- 查看IP:Linux(ifconfig)、 windows(ipconfig)
- 结束当前执行命令:ctrl + C
- 清屏:clear
- 查看命令的使用方法:help
注:如果Linux处理休眠状态:按下回车键和ESC键或者EXIT重新登录
6.3、远程访问Linux
6.3.1、引入
- 虽然可以通过本地终端,访问linux,但是有的时候服务器不在咱们身边。需要远程连接并操作。
- 要想远程访问Linux,需要通过SSH(英文全称Secure Shell,是一种安全的协议),也是用于远程登入的。既然是远处登入工具,那么就需要有一台主机作为客户端,另一台主机作为服务器端。且在客户端上面必须要有能够远处登入的软件工具才行;
即:服务端有ssh的支持,客户端需要有连接linux的客户端软件;
6.3.2、SSH服务端的验证
- 客户端远程访问服务端必须通过SSH服务(安全协议)才行
- CentOS中默认安装了SSH服务,可以通过以下指令验证:(在本地终端执行)
ps -ef|grep ssh
注意进程号为1268的进程,就是ssh服务正在运行
思考:如要在windows中连接linux,使用什么软件呢?
6.3.3、SSH客户端的安装
- 常见的SSH客户端软件有SecureCRT、Xshell、Putty、finalshell等,一般用于Windows客户端计算机
- 课件为大家都准备了,大家用哪个用的习惯就可以使用哪个,作用都是一样的
6.3.4、CentOS防火墙操作
- 远程访问linux时,需要关闭防火墙,否则访问linux上的tomcat,mysql等服务可能会失败;
- 查看防火墙状态: systemctl status firewalld.service(绿的running表示防火墙开启)
- 执行关闭命令(立即关闭 - 立即生效): systemctl stop firewalld.service
- 再次执行查看防火墙命令:systemctl status firewalld.service
- 执行开机禁用防火墙自启命令(永久关闭 - 重启生效): systemctl disable firewalld.service
- 开启防火墙:systemctl start firewalld.service
7、Linux命令
7.1、常用命令
1、查看当前所在目录(用处:拷贝目录到一些配置文件):pwd
2、切换目录(需要到特定的目录执行命令):cd 目录名
3、文件名和目录名称补全:Tab
4、查看目录文件信息:
(1) ls //列出文件信息
(2) ls -l //以详细信息方式列出文件信息
(3) ls –a //列出所有文件和文件夹,包含隐藏文件
(4) ls -al //以详细信息方式列出所有文件信息,包含隐藏文件
(5) ls 目录名 //查看该目录的文件信息
(6) ll //等于ls -l
5、查看当前用户:
(1) whoami //查看当前操作用户
(2) who am i //查看当前登录用户(有可能是有多个的)的信息
6、查找命令:
(1) 最强大的搜索命令:find 查找各种文件的命令
(2) 在文件资料中查找文件:locate
(3) 搜索命令所在的目录及别名信息:which
(4) 搜索命令所在的目录及帮助文档路径:whereis
7、切换用户:
(5) su 用户名:切换用户
(6) su root:普通用户切到root用户,需要输入密码;
(7) su itsource:切换到itsource的用户
(8) exit //注销当前用户,返回前一用户
7.2、文件相关命令
在学习文件相关命令之前,我们先来看一Linux的文件系统
7.2.1、文件系统
- Linux有个基本思想:一切都是文件。就是系统中的所有都可以归结为一个文件,包括命令、硬件和软件设备、操作系统、进程等等对于操作系统内核而言,都被视为拥有各自特性或类型的文件。而这些文件是以一定的结构组织的
- Linux系统的目录结构是一个以/(根目录)为根节点的树形结构
- 系统目录介绍
/bin 存放二进制可执行文件(命令),所有用户都可以使用
/sbin 存放二进制可执行文件,只有root用户可以使用
/boot 系统启动需要的核心文件
/dev 设备文件
/home 用户的主目录,每一个非root用户都会在home有一个为用户名的文件夹
/lib 系统共享动态链接库
/mnt 挂载目录,通常挂载到该目录下
/etc 存放系统配置文件目录
/etc/passswd 用户信息文件
/etc/group 用户组信息文件
/var 用来存放常态性变动的文件,经常发生变化的文件。比如缓存、登录文件,mysql数据库文件等
/tmp 临时目录,用来存放临时文件
/proc 虚拟目录,是内存的映射,可以访问到内存中的系统信息
/sys 和proc类似,存放和内核相关的信息和数据
/root root用户的主目录
/usr 存放应用程序和文件(类似于windows的system32、program files目录)
/usr/local/src 所有应用程序包都放这儿
/usr/local/ 所有的应用程序都安装在这个目录。
/usr/bin、/usr/sbin:这是对/bin、/sbin的一个补充
注:
/usr:系统级的目录,可以理解为C:/Windows/,/usr/lib理解为C:/Windows/System32
/usr/local:用户级的程序目录,可以理解为C:/Program Files/,用户自己编译的软件默认会安装到这个目录下;
/opt:用户级的程序目录,可以理解为D:/Program Files/,opt有可选的意思,这里可以用于放置第三方大型软件(或游戏),当你不需要时,直接rm -rf掉即可
- 一般跟系统有关的程序或软件或需要进行配置的程序安装到/usr/local中(jdk,tomcat等),安装包可以放在/usr/local/src中;
- 一般第三方与系统不是很挂钩的软件放在/opt中,安装包也可以放在这里;
7.2.2、目录相关命令
1、相对路径和绝对路径:
(1) 绝对路径:以/(根目录)开头的路径(例如:/home、/etc/passwd)
(2) 相对路径:以./开头的路径,很多时候./可以省略(指相对于当前路径):
① ./ 表示当前目录(可以省略)./usr/loccal/=usr/local
② …/ 表示上一级目录
注:路径的最后一个斜杠可以省略
2、创建目录:
(1) mkdir 目录名 //创建一个目录
(2) mkdir -p 目录1/目录2/目录3 //递归创建目录
3、删除目录:rm -rf 路径 //可以删除文件和目录 -r(递归) -f(暴力)
4、移动目录/修改文件名:mv dir1 dir2 如果dir2不存在,将dir1目录名修改为dir2(重命名),否则将dir1目录移动到dir2中;
5、复制目录:
(1) cp -rf dir1 dir2 //将dir1复制一份到dir2目录(包含目录内容一起复制)
(2) cp -rf dir1/* dir2 //直接复制内容(非常重要)
6、打包和解压:
(1) tar -czvf tom.tar.gz tom – 打包
(2) tar -xzvf tom.tar.gz -C /usr/local – 解包
(3) 参数:
-c 创建一个新的tar文件 -t 参看压缩文件内容
-v 显示运行过程信息 -j 调用bzip2压缩命令执行压缩
-f 指定文件名称 -C 指定需要解压到的目录
-z 调用gzip压缩命令执行压缩
-x 解开tar文件
7.2.3、文件相关命令
1、创建文件:touch 文件路径 //创建一个空白文件
2、查看文件内容:cat //将文件内容直接显示出来
3、打开文件、保存、关闭文件(vi命令模式下使用)
vi filename //打开filename文件
:w //保存文件
:w vpser.net //保存至vpser.net文件
:q //退出编辑器,如果文件已修改请使用下面的命令 ,q(quit)
:q! //退出编辑器,且不保存
:wq //退出编辑器,且保存文件
注意:按i(insert)进入编辑,按Ctrl + C 退出编辑,退出编辑输入:wq退出编辑器
小结:
我们学习了一些常用命令和文件相关命令,其实Linux还有有很多命令,不用死记硬背。会使用一些常用的就ok,用到时查看命令文档或网上搜索即可
注意:在linux中Ctrl+s表示锁住屏幕,按住Ctrl+q解除锁定;
7.2.4、查看端口
1、查看端口占用情况:
lsof -i:端口号
注意:slof -i 需要 root 用户的权限来执行
案例:
更多 lsof 的命令如下:
lsof -i:8080:查看8080端口占用
lsof abc.txt:显示开启文件abc.txt的进程
lsof -c abc:显示abc进程现在打开的文件
lsof -c -p 1234:列出进程号为1234的进程所打开的文件
lsof -g gid:显示归属gid的进程情况
lsof +d /usr/local/:显示目录下被进程开启的文件
lsof +D /usr/local/:同上,但是会搜索目录下的目录,时间较长
lsof -d 4:显示使用fd为4的进程
lsof -i -U:显示所有打开的端口和UNIX domain文件
还可以使用下面方式查看端口使用情况:
netstat -tunlp 用于显示 tcp,udp 的端口和进程等相关情况:
netstat -tunlp | grep 端口号
- -t (tcp) 仅显示tcp相关选项
- -u (udp)仅显示udp相关选项
- -n 拒绝显示别名,能显示数字的全部转化为数字
- -l 仅列出在Listen(监听)的服务状态
- -p 显示建立相关链接的程序名
案例:
更多命令:
netstat -ntlp //查看当前所有tcp端口
netstat -ntulp | grep 80 //查看所有80端口使用情况
netstat -ntulp | grep 3306 //查看所有3306端口使用情况
2、杀死端口所占用的进程
上面查询到端口占用情况之后,一般需要杀死这个程序或者进程的话,用下面命令
kill -9 PID
彻底杀死进程PID
8、CentOS中软件安装
8.1、解压源码包文件安装
特点:
- 这种安装方式解压即安装,有的软件需要配置下环境变量(例如JDK的安装需要配置环境变量)
- 卸载时只需要将解压包删除即可
命令:tar -zxvf 压缩包名(后缀为.tar.gz)
例如:将jdk的tar.gz包解压到指定文件夹:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-00mu3NbG-1673165466155)(https://gitee.com/xiaochen1106/MyImages/raw/master/java/202301081607857.png)]
8.2、RPM安装
特点:
- 这种安装方式,软件包会自动配置jdk的环境变量,不用手动配置。也是最方便快捷的一种方式
命令:
rpm -qa 软件名称 :查询软件是否被安装
rpm -ivh 软件包路径 需要安装的包文件 : rpm –ivh xxx.rpm
rpm -e --nodeps 需要卸载的软件包 : 卸载软件(–nodeps 忽略依赖关系并继续操作)
rpm -qa | grep 查询名称 :利用管道模糊查询软件安装情况:
例如: rpm -qa | grep java 检测系统自带的jdk安装包
参数说明:rpm [选项] [参数]
-a:查询所有软件包
-e:删除指定的软件包
-f<文件>:查询拥有指定文件的套件;
-h或–hash:显示进度信息 ,以#显示进度
-i:显示包的详细信息
-i<软件包>或–install<软件包>:安装指定的软件包
-l:显示包的文件列表
-p:查询指定的RPM包
-q:使用询问模式
-U<软件包>或–upgrade<软件包>:升级指定的程序包
-v:显示指令执行详细过程
-vv:详细显示指令执行过程,便于排错
例子:
先检查是否安装JDK:
rpm -qa | grep java
这里默认就有一些,我们先将这些删除掉:
rpm -e --nodeps javapackages-tools-3.4.1-11.el7.noarch
npm:管理套件
-e:删除
--nodeps:不验证套件的相关关联性,就是强制删除
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3dJ5MnZC-1673165466156)(https://gitee.com/xiaochen1106/MyImages/raw/master/java/202301081607859.png)]
报错,说我权限不够,那么可以用下面命令切换用户:
su root
然后输入root密码,我这里是123456
再执行下面命令删除:
rpm -e --nodeps javapackages-tools-3.4.1-11.el7.noarch
rpm -e --nodeps tzdata-java-2019c-1.el7.noarch
rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.242.b08-1.el7.x86_64
rpm -e --nodeps java-1.8.0-openjdk-1.8.0.242.b08-1.el7.x86_64
rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.251-2.6.21.1.el7.x86_64
rpm -e --nodeps python-javapackages-3.4.1-11.el7.noarch
rpm -e --nodeps java-1.7.0-openjdk-1.7.0.251-2.6.21.1.el7.x86_64
然后再输入:rpm -qa | grep java,查看下是否还存在Java相关软件
已经清除干净了,现在我们可以安装我们自己下载到JDK了
先到官网上下载JDK,需要下载的格式不是.exe的,而是.rpm的
网址:https://www.oracle.com/java/technologies/downloads/#java8
然后将文件上传到Linux的opt目录中:
然后通过以下命令安装:
rpm -ivh jdk-8u311-linux-x64.rpm
安装完成后,看下JDK是否安装成功,输入下面命令
java
说明已经安装成功了
8.3、yum在线安装
特点:将所有软件包放到官方服务器上,当进行yum在线安装时,可以自动解决依赖性问题;
缺点:安装过程中,rpm包依赖性太强
yum命令:
1、查询:
(1) yum list --查询所有可用软件包列表
(2) yum search 关键字 --搜索服务器上所有和关键字相关的包
2、安装:
(1) yum -y install 包名 (-y 自动回答yes)
(2) yum安装只写包名即可! eg:yum -y install gcc --c语言编译器
3、升级/卸载
(1) 升级:yum -y update 包名
① update:升级;
② -y:自动回答yes;
(2) 卸载:yum -y remove 包名
① remove:卸载;
② -y:自动回答yes;
8.4、安装JDK
首先下载Linux环境下JDK的安装包,网址:https://www.oracle.com/java/technologies/downloads/#java8
我给大家准备好了,地址如下:
链接:https://pan.baidu.com/s/1iCqdBFTyibdwmT7g6sK52w
提取码:w0h4
然后将【jdk-8u341-linux-x64.tar.gz】包上传到【/opt】目录下
然后在opt目录下使用下面命令解压即可:
tar -xvf jdk-8u341-linux-x64.tar.gz
如下,已解压成功:
然后配置环境变量,方法如下:
编辑文件:
vim /etc/profile
再按字母【i】进入编辑模式,然后将下面配置全部拷贝进去,放到文件最后:
export JAVA_HOME=/opt/jdk1.8.0_341
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
然后按【Esc】后再输入【:wq】,表示保存并退出
然后运行下面命令重新加载一下配置:
source /etc/profile
至此,JDK就安装成功了,下面我们来测试下看安装成功没有
依次输入下面命令:
java -version
javac -version
OK,测试成功了,JDK环境就安装好了
9、安装MySQL
上面我们已经安装了JDK了,现在我们开始安装MySQL,我们这里是以RPM方式安装MySQL
9.1、MySQL卸载
先查看当前mysql的安装情况
rpm -qa|grep -i mysql
-q就是 --query ,-a就是--all
|grep mysql就是查含有mysql的包名(grep正则表达式)
可以看到,目前是没有安装mysql的
如果有的话,可以使用下面命令删除:
rpm -e --noscripts 包名 --nodeps
卸载MySQL:
yum remove mysql mysql-server mysql-libs mysql-common
查找之前老版本mysql的目录、并且删除老版本mysql的文件和库
find / -name mysql
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Lvy8yRiS-1673165466160)(https://gitee.com/xiaochen1106/MyImages/raw/master/java/202301081607869.png)]
如果需要删除mysql的目录,则使用下面命令:
rm -rf 目录
确认全部删除了
9.2、安装MySQL
我这里安装的版本是5.7.40
首先进入opt目录,执行下面命令进行下载:
wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
然后执行下面命令进行安装:
rpm -ivh mysql57-community-release-el7-9.noarch.rpm
执行完成后会在/etc/yum.repos.d/
目录下生成两个repo文件mysql-community.repo
mysql-community-source.repo
必须进入到 /etc/yum.repos.d/目录后再执行安装
cd /etc/yum.repos.d/
yum install mysql-server --nogpgcheck //nogpgcheck表示不校验key
下面就表示安装成功了
运行下面命令进行启动:
systemctl start mysqld
设置开机自动启动:
systemctl enable mysqld
其他命令:
# 关闭开机启动
systemctl stop mysqld
# 关闭MySQL
systemctl stop mysqld
# 重启MySQL
systemctl restart mysqld
运行下面命令查看MySQL运行状态:
systemctl status mysqld
如下:
那么如何设置root账户的登录密码呢?
可按照下面步骤修改root账户密码:
1、进入MySQL数据配置文件进行修改
vi /etc/my.cnf
再按字母【i】进入编辑模式,然后将下面这一行拷贝进去,放到最后一行,含义是免密码登录
skip-grant-tables
然后按【Esc】后再输入【:wq】,表示保存并退出
然后重启:
systemctl restart mysqld.service
2、直接免密登录
mysql -uroot -p
此时提示要你输入密码,什么都不用输入,直接回车就可以进入数据库了
3、设置密码
你可以使用以下命令来重置root账户的密码:(我这里设置的是AaBa123456,设置最好不要设置的太简单)
5.7以上版本运行:
update user set password= password("123456")where user='root';
5.7以下版本运行:
update user set authentication_string= password("123456")where user='root';
4、删除免密设置
按照刚才的步骤,进入【my.cnf】文件中,将【skip-grant-tables】代码删除,并保存退出,再重启MySQL服务器即可,这样以后就可以使用123456这个密码进行登录了
9.3、MySQL编码集设置
安装完的MySQL的默认字符集为 latin1 ,那么如果此时创建表和数据库,或者导入外部带中文的数据,mysql是不支持的。为了要将其字符集改为用户所需要的(比如utf8),就必须改其相关的配置文件。查看默认字符集
show variables like 'character_set%';
执行上面语句如果报下面错:
就执行下面语句:
SET PASSWORD = PASSWORD('123456');
如果报错:Your password does not satisfy the current policy requirements
那就是密码等级设置的太低了,需要执行下面语句:(需要先登录MySQL,然后执行:use mysql)
//设置密码的验证强度等级(目前我设置等级为低)
set global validate_password_policy=LOW;
还可以设置密码长度:
set global validate_password_length=6;
修改字符集,修改 /etc/my.cnf文件(输入exit或Ctrl + C退出mysql命令窗口):
vi /etc/my.cnf(没有就自己创建一个,vi会自动创建)
执行这个命令后,发现里面没有设置编码的地方,那我们就把下面的配置添加进去,到第三行即可:
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
character-set-server=utf8
先按【i】进入编辑模式,然后将上面配置添加进去,如下:
然后按【Esc】再按【:wq】,表示保存退出,修改完配置,需要重启一下mysql服务,命令如下:
systemctl restart mysqld
重启完之后可以再使用如下命令进入到mysql检查下
mysql -uroot -p123456
-u跟用户名
-p跟密码
输入下面命令检查下:
show variables like 'character_set%';
此时我们发现,编码都已经改成utf8了
9.4、增加MySQL远程登录权限
上面步骤做完,可以实现本地登录,但如果使用navicat登录的话,会报下面错误:
为了解决这个问题,允许远程访问,需要本地登陆MySQL后执行如下命令
进入MySQL,授权远程连接
grant all privileges on *.* to root@'%' identified by '123456';
这句话的意思是:任意用户使用root用户使用123456密码访问,可以设置成mysql的密码
然后再刷新授权
flush privileges;
然后再使用navicat连接Linux中的mysql,就可以连成功了
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CvXCBSEV-1673165466164)(https://gitee.com/xiaochen1106/MyImages/raw/master/java/202301081607881.png)]
9.5、关闭防火墙
如上增加远程登录权限后,还是报如下错误的话,就是你的虚拟机上的防火墙没有关
关闭防火墙相关命令:
查看防火墙状态: systemctl status firewalld.service(绿的running表示防火墙开启)
执行关闭命令(立即关闭,立即生效,临时关闭,Linux重启后又会打开): systemctl stop firewalld.service
执行开机禁用防火墙自启命令(永久关闭 - 重启生效,Linux重启后也是关闭状态): systemctl disable firewalld.service
开启防火墙:systemctl start firewalld.service
10、安装Tomcat
安装步骤如下:
10.1、准备安装包
将安装包【apache-tomcat-8.5.15.tar.gz】解压解压到/usr/local目录中
tar -zxvf /opt/apache-tomcat-8.5.15.tar.gz -C /usr/local/
10.2、开启服务和关闭服务:
cd /usr/local/apache-tomcat-8.5.15/bin
./startup.sh
./shutdown.sh
10.3、解压
解压文件中目录结构如下:
- bin目录:tomcat启动命令(./startup.sh)、tomcat服务关闭命令(./shutdown.sh )
- webapps目录:工程目录,war包放在这里,在启动tomcat时会自动解压成文件夹
10.4、部署
- 通过Eclipse或者IDEA将我们的web项目打成war包
- 使用xftp或其他工具将安装包war包上传至linux系统(一般直接放到tomcat的webapps目录中)
- 启动tomcat
- 浏览器测试,访问:http://127.0.0.1:8080
11、部署项目
将SpringBoot项目打包,注意pom.xml中需要加入打包插件:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>LinuxSpringBootDemo</artifactId>
<version>1.0-SNAPSHOT</version>
<!--导入springboot相关的jar包-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.5.RELEASE</version>
</parent>
<dependencies>
<!--web依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.3.5.RELEASE</version>
</plugin>
</plugins>
<!--打包生成jar包的名字-->
<finalName>boot</finalName>
</build>
</project>
我这里生成一个boot.jar,然后上传到opt目录中,如下:
我这个项目非常简单只有一个启动类和一个application.yml,启动类代码:
package cn.itsource;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>启动类</p>
*
* @author 波波老师(微信 : javabobo0513)
*/
@SpringBootApplication
@RestController
public class App {
@GetMapping("/test")
public String test(){
System.out.println("恭喜你,SpringBoot项目运行成功啦.......");
return "恭喜你,SpringBoot项目运行成功啦.......";
}
public static void main(String[] args){
SpringApplication.run(App.class);
}
}
yml内容:
server:
port: 8001
然后进入opt目录中:cd /opt,然后使用下面命令启动项目:
java -jar boot.jar
然后我们通过浏览器访问:http://120.26.60.94:8001/test,可以返回数据:恭喜你,SpringBoot项目运行成功啦…
页面每刷新一次,控制台就会打印一次日志:恭喜你,SpringBoot项目运行成功啦…,如下:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DCo7lca2-1673165466166)(https://gitee.com/xiaochen1106/MyImages/raw/master/java/202301081607886.png)]
此时项目虽然启动了,但是当前页面就无法输入其他命令了,此时如果想在后台运行项目的话,可以使用下面命令:
java -jar boot.jar &
此时需要关闭项目的话,需要杀死进程,先通过下面命令查询我们8001占用的进程ID:
netstat -tunlp | grep 8001
然后再杀死进程:
kill -9 20294
如下:
12、资源下载地址
CentOS7下载地址:
链接:https://pan.baidu.com/s/1fSxiUYucG7xWvyN70dGdZg?pwd=1069
提取码:1069
其他相关工具下载地址:
链接:https://pan.baidu.com/s/1zhJiM5QZNlD4ym4iJGtBqQ
提取码:7777
13、总结
- 在自己本机能独立安装虚拟机并成功运行CentOS
- 能用相关工具连接Linux系统,并上传软件进行安装
- 能在Linux系统中部署前后端项目
如果本文对你有帮助的话,记得点个赞哦