Linux的基本使用和Web程序部署(JavaEE初阶系列18)

目录

前言:

1.Linux

1.1Linux是什么

1.2Linux发行版

1.3Linux环境搭建

1.3.1环境搭建方式

1.3.2使用云服务器

1.4使用终端软件连接到Linux

1.4.1什么是终端软件

1.4.2使用Xshell登录主机

1.5Linux常用的命令

1.5.1ls

1.5.2cd

1.5.3pwd

1.5.4touch

1.5.5cat

1.5.6mkdir

1.5.7rm

1.5.8cp

1.5.9mv

1.5.10man

1.5.11vim

1.5.12grep

1.5.13ps

1.5.14netstat

1.5.15echo

2.部署到云服务器上

2.1准备工作

2.1.1jdk的安装

2.1.2Tomcat的安装

2.1.3mysql的安装

2.2正式部署

2.2.1微调代码

2.2.2建库建表

2.2.3打包部署

2.3.4通过浏览器访问

结束语:


前言:

这节中主要是讲解一下Linux的一些基础知识,以及基础的一些操作,然后再基于Xshell将我们上次的编写的博客系统部署到云服务器上。

1.Linux

1.1Linux是什么

Linux是一个操作系统,他是和Windows是并列的关系。Linux在市场的分额是比Windows多的,它主要是在服务器、嵌入式、移动端等领域。

1.2Linux发行版

Linux准确来说是一个“统称”,或者可以认为是一个“操作系统的内核”,一个完整的系统=操作系统内核+配套的应用程序。于是就有很多的企业或者是组织,基于Linux内核搭配了不同的应用程序,从而诞生了不同的应用程序,从而诞生了不同的“操作系统”。此时就叫“发行版”。发行版有很多如下所示。

在企业中一般使用的是RedHat,但是它是收费的,所以这里我们是使用Centos来给大家演示的。 

1.3Linux环境搭建

1.3.1环境搭建方式

那么如何获取得到一个Linux的环境呢?下面提供了三种方式。

  1. 使用虚拟机软件,但是它不能解决的让咱们的服务器被其他主机访问的问题,在虚拟机上会存在很多bug,经常会出现各种问题,所以这里并不推荐大家使用。
  2. 使用Windows自带的WSL功能,Windows subsystem Linux。这里相比于虚拟机是少了很多问题,但是仍然无法解决部署的问题。
  3. 买一个云服务器。这是我们最好的解决办法。大家可以自己去阿里云或者是腾讯云等去买一个云服务器。这里小编买了一个自己的服务器。后续的演示部署就直接在这个云服务器上了。大家可以点击这里进入购买☞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

语法 : pwd
功能 :显示用户当前所在的目录
pwd主要就是防止用户迷路。不记得自己所在的位置了,此时就可以使用pwd来查看自己的位置。
就像是你在Windows中复制目录的路径一样可以查看到你所在的路径。

1.5.4touch

语法:touch[选项]...文件.

功能:touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件。

使用:

1.5.5cat

语法 cat [ 选项 ] [ 文件 ]
功能 : 查看目标文件的内容
使用:

1.5.6mkdir

语法:mkdir [选项] dirname...

功能:在当前目录下创建一个名为“dirname”的目录。就是相当于是Windows中的右键新建目录。

使用:

1.5.7rm

语法 rm [-f-i-r-v] [dirName/dir]
功能 :删除文件或目录
  • rm -f:是指即是文件属性为只读(即写保护),也直接删除,强制删除。
  • rm -i:删除前逐一询问确认。
  • rm -r:删除目录以及旗下的所有文件。
使用:

注意:在Linux命令中是没有“回收站”这个概念的。所以删除的时候一定要小心。 

1.5.8cp

语法 cp [ 选项 ] 源文件或目录 目标文件或目录
功能 : 复制文件或目录
说明 : cp 指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在 的目录,则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的 目的地并非一个已存在的目录,则会出现错误信息。
  • -f 或 --force强行复制文件或者是目录,不论目的文件或目录是否已经存在。
  • -i 或 --intercative覆盖文件之前先询问用户。
  • -r 递归处理,将指定目录下的文件与子目录一并处理,若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理。
  • -R 或 --recursive递归处理,将指定目录下的文件及子目录一并处理。
使用:

1.5.9mv

语法 : mv [ 选项 ] 源文件或目录 目标文件或目录
功能 :
  • mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录中。
  • 当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。
  • 当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中。

常用选项:

  • -f:force强制的意思,如果目标文件已经存在,不会询问而直接覆盖。
  • -i:若目标文件已经存在时,就不会询问是否覆盖。

使用:

1.5.10man

Linux 的命令有很多参数,我们不可能全记住,我们可以通过查看联机手册获取帮助。
语法 : man [ 选项 ] 命令

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

语法: netstat [ 参数 ]...
功能 :查看系统上的网络状态 .
选项:
  • -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 ServerCopyright (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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/125341.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CMU15445 fall 2022/spring 2023 项目环境搭建+选择合适的版本

前言 CMU15445是一门关于数据库管理系统(DBMS)的设计和实现的优秀课程。由数据库领域大佬Andy主讲,同时还有迟策大佬所设计和维护的BusTub,其名声在外之处更是有着极高质量的作业(HOMEWORKS)和项目&#x…

Java之Collection集合的详细解析

1.Collection集合 1.1数组和集合的区别【理解】 相同点 都是容器,可以存储多个数据 不同点 数组的长度是不可变的,集合的长度是可变的 数组可以存基本数据类型和引用数据类型 集合只能存引用数据类型,如果要存基本数据类型,需要存对应的包装类 1.2集合类体系结构【理解】 …

uniapp打包微信小程序。报错:https://api.weixin.qq.com 不在以下 request 合法域名列表

场景:在进行打包上传测试时,发现登录失效,但在测试中【勾选不效应合法域名】就可以。 出现原因:我在获取到用户code后,直接使用调用官方接口换取openid 解决方案: 可以把code带给后端,让他们返…

Linux命令200例:man用于显示和阅读关于Linux内置命令的使用说明

🏆作者简介,黑夜开发者,CSDN领军人物,全栈领域优质创作者✌。CSDN专家博主,阿里云社区专家博主,2023年6月csdn上海赛道top4。 🏆数年电商行业从业经验,历任核心研发工程师&#xff0…

WordPress(5)在主题中添加文章字数和预计阅读时间

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 样式图一、添加位置二、找到主题文件样式图 提示:以下是本篇文章正文内容,下面案例可供参考 一、添加位置 二、找到主题文件 在主题目录下functions.php文件把下面的代码添加进去: // 文章字数…

Java jvm 内存溢出分析

1.如何分析jvm内存溢出呢 我们经常用visualVm监控Jvm的内存,cpu,线程的使用情况,通常可以根据内存不断增长来判断内存是否存在不释放。但是我们不可能时时盯着去看,这里涉及jvm堆内存配置,堆内存参数配置和调优会在其…

鼠标右键使用VSCode打开文件或文件夹配置

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…

英诺森 “供应链智能数据平台”荣获“科技进步奖”

近日,2023年中国物流与采购联合会科学技术奖正式公布,该奖项经国家科技部批准,在国家科学技术奖励工作办公室登记备案,是我国物流行业最具影响力的奖项之一。 英诺森联合客户申报的科技项目“英诺森供应链智能数据平台”&#xf…

Qt day2

目录 1.多态,虚函数,纯虚函数 1.多态性(Polymorphism): 2.虚函数(Virtual Function): 3.纯虚函数(Pure Virtual Function): 将引用作为函数参…

leetcode 205. 同构字符串

2023.9.6 本题维护两个映射表map&#xff0c;若发现无法对应则返回false。 代码如下&#xff1a; class Solution { public:bool isIsomorphic(string s, string t) {unordered_map<char,char> m1;unordered_map<char,char> m2;for(int i0; i<s.size(); i){//相…

Matlab进阶绘图第27期—水平双向堆叠图

在上一期文章中&#xff0c;分享了Matlab双向堆叠图的绘制方法&#xff1a; 进一步&#xff0c;再来看一下水平双向堆叠图的绘制方法&#xff08;由于Matlab中未收录水平双向堆叠图的绘制函数&#xff0c;因此需要大家自行设法解决&#xff09;。 先来看一下成品效果&#xff…

CPU 伪共享是如何发生的?又该如何避免?

CPU 如何读写数据的&#xff1f; 先来认识一下 CPU 的架构 一个 CPU 里通常会有多个 CPU 核心&#xff0c;并且每个 CPU 核心都有自己的 L1 Cache 和 L2 Cache&#xff0c;而 L1 Cache 通常分为&#xff08;数据缓存&#xff09;和&#xff08;指令缓存&#xff09;&#xff0…

【Apollo学习笔记】——规划模块TASK之PIECEWISE_JERK_NONLINEAR_SPEED_OPTIMIZER(二)

文章目录 TASK系列解析文章OptimizeByNLP1.get_nlp_info()定义问题规模2.get_bounds_info()定义约束边界约束3.get_starting_point()定义初值4.eval_f()求解目标函数5.eval_grad_f()求解梯度6.eval_g()求解约束函数7.eval_jac_g()求解约束雅可比矩阵8.eval_h()求解黑塞矩阵9. f…

2023数模A题——定日镜场的优化问题

A题——定日镜场的优化问题 思路&#xff1a;该题主要考察的几何知识和天文学知识&#xff0c;需要不同角度下的镜面和遮挡情况。 资料获取 问题1&#xff1a; 若将吸收塔建于该圆形定日镜场中心&#xff0c;定日镜尺寸均为 6 m6 m&#xff0c;安装高度均为 4 m&#xff0c;且…

多目标应用:基于多目标哈里斯鹰优化算法(MOHHO)的微电网多目标优化调度研究MATLAB

一、微网系统运行优化模型 参考文献&#xff1a; [1]李兴莘,张靖,何宇,等.基于改进粒子群算法的微电网多目标优化调度[J].电力科学与工程, 2021, 37(3):7 二、多目标哈里斯鹰优化算法MOHHO 多目标哈里斯鹰优化算法&#xff08;Multi-Objective Harris Hawks Optimizer&#…

day-41 代码随想录算法训练营(19)动态规划 part 03

343.整数拆分 思路&#xff1a; 1.dp存储的是第i个数&#xff0c;拆分之后最大乘积2.dp[i]max(dp[i],max(j*(i-j),j*dp[i-j]));3.初始化&#xff1a;dp[0]dp[1]0,dp[2]1;4.遍历顺序&#xff1a;外层循环 3-n&#xff0c;内层循环 1-i 2.涉及两次取max&#xff1a; dp[i] 表…

【C语言】错题本(2)

题目: 将题目代码粘贴在下面便于分析: #define MAX_SIZE AB struct _Record_Struct {unsigned char Env_Alarm_ID : 4;unsigned char Para1 : 2;unsigned char state;unsigned char avail : 1;}*Env_Alarm_Record;struct _Record_Struct *pointer (struct _Record_Struct*)m…

0基础学习VR全景平台篇 第95篇:VR实景智慧导航操作手册

一、实景导航前期准备工作及点位采集 &#xff08;一&#xff09;实景导航前期准备工作 &#xff08;1&#xff09;拍摄设备 1.推荐相机&#xff1a;全画幅的佳能 Canon EOS​ 5D Mark IV 2.搭配镜头&#xff1a;原厂的佳能 Canon EF卡口 8-15mm 全画幅鱼眼镜头 3.三角架 …

算法通关村16关 | 堆与滑动窗口问题结合

1. 堆与滑动窗口问题结合 题目 LeetCode239 给你一个整数数组nums&#xff0c;有一个大小为k的滑动窗口从数组的最左侧移动到数组的最右侧&#xff0c;你可以看到在滑动窗口内的k个数字&#xff0c;滑动窗口每次只向右移动一位&#xff0c;返回滑动窗口中的最大值。 思路 对于…

IT运维:使用数据分析平台监控飞塔防火墙

概述 本文可以认为是基于《FortiGate防火墙日志审计运维》文章做的进一步延伸。主要介绍在飞塔防火墙日志进入到鸿鹄后&#xff0c;如何进行字段抽取&#xff0c;以及图表的展示。 字段抽取&#xff1a;采用键值抽取 图表展示&#xff1a;本文将增加一下略复杂的语句&#xff…