目录
前言:
这节中主要是讲解一下Linux的一些基础知识,以及基础的一些操作,然后再基于Xshell将我们上次的编写的博客系统部署到云服务器上。
1.Linux
1.1Linux是什么
Linux是一个操作系统,他是和Windows是并列的关系。Linux在市场的分额是比Windows多的,它主要是在服务器、嵌入式、移动端等领域。
1.2Linux发行版
Linux准确来说是一个“统称”,或者可以认为是一个“操作系统的内核”,一个完整的系统=操作系统内核+配套的应用程序。于是就有很多的企业或者是组织,基于Linux内核搭配了不同的应用程序,从而诞生了不同的应用程序,从而诞生了不同的“操作系统”。此时就叫“发行版”。发行版有很多如下所示。
在企业中一般使用的是RedHat,但是它是收费的,所以这里我们是使用Centos来给大家演示的。
1.3Linux环境搭建
1.3.1环境搭建方式
那么如何获取得到一个Linux的环境呢?下面提供了三种方式。
- 使用虚拟机软件,但是它不能解决的让咱们的服务器被其他主机访问的问题,在虚拟机上会存在很多bug,经常会出现各种问题,所以这里并不推荐大家使用。
- 使用Windows自带的WSL功能,Windows subsystem Linux。这里相比于虚拟机是少了很多问题,但是仍然无法解决部署的问题。
- 买一个云服务器。这是我们最好的解决办法。大家可以自己去阿里云或者是腾讯云等去买一个云服务器。这里小编买了一个自己的服务器。后续的演示部署就直接在这个云服务器上了。大家可以点击这里进入购买☞https://cloud.tencent.com/act/campus
大家要注意在购买的时候要点击CentOS。
1.3.2使用云服务器
这里会显示一个IP地址,在我们后期让其他用户访问你的网站我们使用的都是这个IP。
此时有了一个云服务器之后我们就有了三个重要的信息:
- 服务器的IP地址。
- 服务器的用户名(root)。
- 服务器的密码(这里需要大家自己重置一下自己的密码)。
1.4使用终端软件连接到Linux
1.4.1什么是终端软件
终端软件是一类工具软件,可以和远程的主机建立网络连接,从而对主机进行一个操作。常见的终端软件有Xshell、Putty、MobaXterm、Iterm2....这里我们使用的是XShell。
1.4.2使用Xshell登录主机
这里我们先来新建一个会话。
点击连接之后输入用户名和密码就可以看到下面的提示,就是已经连接好了。
1.5Linux常用的命令
1.5.1ls
语法:ls [选项][目录或文件]。
功能:对于目录,该命令列出该目录下的所有目录与文件,对于文件,将列出文件名以及其他信息。相当于是双击了某个目录,查看里面的内容。
常用选项:
- -a:列出目录下的所有文件,包括以.开头的隐含文件。
- -d:将目录象文件一样显示,而不是显示其下的文件,如:ls -d指定目录。
- -k:以k字节的形式表示文件的大小。ls -alk指定文件。
- -l:列出文件的详细信息。
- -r:对目录反向排序。
- -t:以时间排序。
- -R:列出所有子目录下的文件。
代码展示:
其中蓝色的是目录,白色的是普通文件。
ls 后面跟上具体的目录就可以看到指定目录中的内容了。如下所示:
/ 表示Linux的“根目录”,对标Windows中的“此电脑”。
以下的两个命令ls 和 ls /root都是一样的。因为root用户的home目录就是/root,也就是以root身份登录之后默认所在的目录。
使用ls -l / ll可以看到目录中的详细信息。
1.5.2cd
cd 意思是change directory切换目录。这就相当于是咱们在Windows中双击进入到某一个目录中。
语法:cd 目录名。
功能:改变工作目录,将当前工作目录改变到指定的目录下。
cd后面跟上你要切换的目录的路径(路径可以使用绝对路径,也可以使用相对路径)。
在Linux中绝对路径是以/开头的,相对路径是以./和../开头的,其中./也可以省略。
在cd后面不跟任何东西就会回到home目录。
cd .. 返回上级目录。
cd - 访问最近访问的目录。
1.5.3pwd
![](https://img-blog.csdnimg.cn/48ed21ecc4f145298301a360e791948e.png)
![](https://img-blog.csdnimg.cn/be07f3a98286430dae3c8b6605e32f31.png)
1.5.4touch
语法:touch[选项]...文件.
功能:touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件。
使用:
1.5.5cat
![](https://img-blog.csdnimg.cn/acbc529f8b8f4019881eb7748b03ec63.png)
1.5.6mkdir
语法:mkdir [选项] dirname...
功能:在当前目录下创建一个名为“dirname”的目录。就是相当于是Windows中的右键新建目录。
使用:
1.5.7rm
- rm -f:是指即是文件属性为只读(即写保护),也直接删除,强制删除。
- rm -i:删除前逐一询问确认。
- rm -r:删除目录以及旗下的所有文件。
![](https://img-blog.csdnimg.cn/7483a8d6a9454e51a0811609c7d5cfb0.png)
![](https://img-blog.csdnimg.cn/b5086fe9d5864546ae4034d8e430bb1d.png)
注意:在Linux命令中是没有“回收站”这个概念的。所以删除的时候一定要小心。
1.5.8cp
- -f 或 --force强行复制文件或者是目录,不论目的文件或目录是否已经存在。
- -i 或 --intercative覆盖文件之前先询问用户。
- -r 递归处理,将指定目录下的文件与子目录一并处理,若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理。
- -R 或 --recursive递归处理,将指定目录下的文件及子目录一并处理。
![](https://img-blog.csdnimg.cn/d2763943fe0e429ebbf892434a9daa9c.png)
![](https://img-blog.csdnimg.cn/2e8f693f293a475da375d5872b81826f.png)
1.5.9mv
- 视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录中。
- 当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。
- 当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中。
常用选项:
- -f:force强制的意思,如果目标文件已经存在,不会询问而直接覆盖。
- -i:若目标文件已经存在时,就不会询问是否覆盖。
使用:
1.5.10man
![](https://img-blog.csdnimg.cn/551909c6129e4a87b9c596067a135c8b.png)
![](https://img-blog.csdnimg.cn/cb28cef0cf0b4a97846203038fb133e0.png)
1.5.11vim
vim是一个知名的文本编辑器,前面学的cat等命令只能查看文本,不能编辑文本,使用vim就可以进行编辑了。
使用如下所示:
①打开文件。
vim 文件名/文件路径。
②编辑文档。
点击i之后就会进入到编辑模式,vim是一个有特色的程序,为了追求效率就会大量引入快捷键。vim默认模式是处于normal mode普通模式。此时我们就需要切换到insert mode(插入模式)此时键盘按键才可以输入文本。
③保存退出。
先来使用esc回到普通模式。然后在输入:wq,最后按回车,即可保存退出。
注意:这里的保存不可以点击Ctrl + s,这在Linux中是冻结画面,如果冻结之后我们可以使用Ctrl+ q来进行解冻,这里使用:w是保存的意思,:q是退出的意思,这里也可以直接一步到位:wq。但是要注意的是这两个单词不可以写反。一定是先保存在退出!!!
然后我们来查看一下刚刚我们插入的数据。
1.5.12grep
语法:grep [参数]...[文件]
功能:用于查找文件中是否指定字符串,并显示对应的行。
选项:
- -n:显示函数。
- -w:全字匹配,要求整个单词都完全相同的结果才能匹配出来,而不仅仅是一个单词的一部分。
- -r:递归查找,可以搜索多级目录下的所有文件。
- --color:高亮查到的结果。
- --include:指定查找某些文件。
- --exclude:指定排除某些文件。
使用:
1.5.13ps
语法:ps [参数]
功能:用于查看当前系统上运行的进程。
选项:
- a:显示一个终端的所有进程。
- u:以用户为主的格式来显示程序状况。
- x:显示所有程序,不以终端机来区分。
使用:
这里也可以配合grep来使用。
这里我们使用的 | 是一个管道,用来连接两个命令,前一个命令输出,作为后一个命令的输入。
1.5.14netstat
- -a:显示所有正在或不在侦听的套接字。
- -n:显示数字形式地址而不是去解析主机、端口或用户名。
- -p:显示套接字所属进程的PID和名称
使用:
1.5.15echo
echo命令用来写文件,下面我们来将“hello world”写入到上面创建的test文件中。
注意:echo和cat操作只针对与简单的文件进行操作,如果文件太复杂或者是编辑的需求太复杂,就不太适合了。
2.部署到云服务器上
2.1准备工作
2.1.1jdk的安装
首先使用Linux中的“包管理器”来进行安装,这里的“包管理器”就当相当于是手机上的应用商城,当然Linux的包管理器有很多yum、apt、pacman...这里我们使用的是yum,它是centOS中自带的。
关于yum的基本指令:
- yum list :查看当前的软件包。
- yum install:安装指定的软件包。
这里我们搭配管道和grep来进行查询,选择下面的这个。
然后进行安装:
注意:
- 在Linux中的复制是Ctrl+insert,粘贴是shift + insert。
- 保证当前用户是root。
- 保证网络状态良好。
- 安装的时候会出现一个提示,直接按y即就可以了。
2.1.2Tomcat的安装
①将下载好的zip安装包,给上传到Linux服务器上。由于Tomcat是一个跨平台的,所以同一个zip既可以在Windows上使用,也可以在Linux上使用。这里小编之前在博客系统安装Tomcat的时候就已经下载好了,就直接使用了。不会的同学可以先去看看项目中的博客系统后端。
这里就直接将压缩包拖入到Xshell中就可以了。如果不行的话就需要先执行一下yum install lrasz。
②然后针对压缩包解压。使用unzip或者是yum install unzip进行解压。
③把Tomcat的启动脚本加上可执行权限。
进入到bin目录下,可以看到后缀为.sh的就是给Linux的启动脚本,它默认情况下是没有可执行权限的,需要先赋予它权限。
使用chmod +x *.sh就可以给他们赋予权限了。
④接下来就可以启动Tomcat了。
一般Tomcat在启动的时候会自动配好相关的环境变量。
此时检查Tomcat的运行状态。
或者直接在外网上面访问Tomcat的欢迎页面。
如果访问不到的话就先检查一下看自己的云服务器中的防火墙中的8080端口是否打开。如果没有打开就按照下面的操作将其打开。
2.1.3mysql的安装
此处我是使用yum来进行安装。
注意:以下操作都是以root用户进行操作的!!!
安装:
①安装 mariadb 服务
# yum install -y mariadb-server
②安装 mariadb 命令行客户端
# yum install -y mariadb
③安装 mariadb C library
# yum install -y mariadb-libs
④安装 mariadb 开发包
# yum install -y mariadb-devel
启动:
①启动服务
# systemctl start mariadb
②设置服务开启自启动
# systemctl enable mariadb
查看服务状态:
# systemctl status mariadb
测试连接
①使用命令行客户端尝试连接
# mysql -uroot
②可能的输出为
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 5.5.60-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]>
③查看 mariadb 版本号
MariaDB [(none)]> select version();
+----------------+
| version() |
+----------------+
| 5.5.60-MariaDB |
+----------------+
1 row in set (0.01 sec)
④创建数据库时为了支持中文,统一使用 utf8mb4 字符集
MariaDB [(none)]> create database demo_db charset utf8mb4;
⑤执行完上面的之后输入SQL语句就可以了。
2.2正式部署
2.2.1微调代码
根据自己的实际情况进行微调。 没有密码就直接写空字符串即可。
2.2.2建库建表
这里我们直接将之前写好的db.sql语句输入进行建库建表。
2.2.3打包部署
先来配置一下要打包的属性。
然后点击maven中的package进行打包。
退出mysql客户端,通过Ctrl + d。然后打开刚才打好的war包,将其拖入到下面的目录中。
2.3.4通过浏览器访问
此时我们就可以通过服务器输入地址就可以访问了。
结束语:
好了这节小编就给大分享到这里啦,希望这节对大家有关于项目的部署有一定帮助,想要学习的同学记得关注小编和小编一起学习吧!如果文章中有任何错误也欢迎各位大佬及时为小编指点迷津(在此小编先谢过各位大佬啦!)博客系统的整体项目的部署我上传至我的码云Gitee中了,有需要的同学可以点击这里哦☞https://gitee.com/YAUGAOLELE/project
博客系统的前端编写:http://t.csdn.cn/18iDm
博客系统的后端编写:http://t.csdn.cn/DJJWP