Linux环境搭建与基本指令(手把手带你在Linux部署项目)

举报
未见花闻 发表于 2022/08/31 21:48:14 2022/08/31
【摘要】 本文将介绍Linux环境的搭建,XShell的安装与使用,Linux基础指令,如何在Linux上安装jdk,Tomcat与数据库,如何部署一个项目。

⭐️前面的话⭐️

本文将介绍Linux环境的搭建,XShell的安装与使用,Linux基础指令,如何在Linux上安装jdk,Tomcat与数据库,如何部署一个项目。

📒博客主页:未见花闻的博客主页
🎉欢迎关注🔎点赞👍收藏⭐️留言📝
📌本文由未见花闻原创!
📆首发时间:🌴2022年8月31日🌴
✉️坚持和努力一定能换来诗与远方!
💭推荐书籍:📚《鸟哥的Linux私房菜》,📚《Vim实用技巧》
💬参考在线编程网站:🌐牛客网🌐力扣
博主的码云gitee,平常博主写的程序代码都在里面。
博主的github,平常博主写的程序代码都在里面。
🍭作者水平很有限,如果发现错误,一定要及时告知作者哦!感谢感谢!

1.Linux前置知识

1.1什么是Linux

Linux操作系统是基于UNIX操作系统发展而来的一种克隆系统,它诞生于1991 年的 [Linux桌面] 10 月5 日(这是第一次正式向外公布的时间)。以后借助于Internet网络,并通过全世界各地计算机爱好者的共同努力,已成为今天世界上使用最多的一种UNIX 类操作系统,并且使用人数还在迅猛增长。

Linux与Windows一样,是一种操作系统,Linux 严格意义来说只是一个 “操作系统内核”。
一个完整的操作系统 = 操作系统内核 + 配套的应用程序。

由于 Linux 是一个完全开源免费的内核, 因此有些公司/开源组织又基于 Linux 内核, 提供了不同的配套程序。这就构成了不同的 “发行版”,企业中使用最多的发行版是RedHat(红帽),但是它是付费的,所以使用基于红帽系统的的社区免费版本 CentOS。

1.2XShell的安装与使用

想要学习Linux就得先有Linux环境,Linux的环境搭建有以下方法:

  • 在自己电脑上安装Linux,什么,你要在自己电脑安装Linux?Linux桌面使用起来太不友好了,如果你使用Linux作为主桌面,我敬你是一条汉子。
  • 虚拟机搭建Linux环境,但是目前的虚拟机软件存在一些bug,会莫名其妙出现一些问题,不推荐。
  • 使用 WSL (Windows Subsystem for Linux). 这个是 Windows 近几年开发的新功能, 在 Windows 系统内集成了一个 Linux, 但是目前这个技术还不够成熟。
  • 使用云服务器,最为推荐,毕竟学生买一个云服务器也不贵,并且还会有一个外网IP,至于买哪一个,对于我们学习阶段,哪个便宜买哪一个。

至于云服务器的使用,登录你所买的云服务器官网管理平台,购买后设置一下云服务器的账号与密码就可以使用了,注意系统选择CentOS 7。

毕竟云服务不在我们主机上,这里推荐使用XShell来远程控制云服务器来使用Linux。

下面来介绍xshell的安装预使用:
第一步,下载,点击下方官网链接,下载免费版的XShell。
https://www.xshell.com/zh/xshell/
1
2

3

4

第二步,安装,设置路径,一路next即可。

第三步,使用。

首先,点击新建。
1
输入相关信息和外网IP,点击链接。
2
输入云服务器账户和密码,账户一般为root,密码就是你自己设的。
3
4
像下面这样就表示登成功了,你就可以操控云服务器的Linux系统了。
5

命令提示符:[用户名@主机名 当前目录(~表示home目录)]#,比如:在这里插入图片描述
命令操作的好处:

  1. 减少带宽
  2. 命令有助于基于脚本来完成重复性的工作

2.Linux常见命令

2.1最基本的Linux指令

ls:查看当前目录里所包含的文件和目录。
ls[路径]:查看目标路径下的文件和目录,比如.表示当前目录,/表示根目录。

对于Linux很多的命令都可以跟上选项来表示不同的功能,比如ls -l表示使用列表的方式来列出详细的内容,可以使用ll来替代。

pwd:告诉我们当前所在目录的路径。
cd [路径]:切换目录,cd ./路径可以简写为cd 路径
Linux中ctrl+c表示取消当行输入,ctrl+insert表示复制,shift+insert表示粘贴,ctrl+l清屏。

touch:创建一个空文件。
cat:显示一个文件的内容。
echo:打印文件名在控制台,也可以用来写文件,比如echo+字符串就是打印一个字符串,echo 字符串 > 文件名.后缀表示将字符串写入后面的文件中,叫做重定向。

mkdir [目录名]:创建目录。
rm [文件名]:删除文件,会提示是否删除,输入y就删除。
rm

rm -r [目录名]:删除目录,会提示是否确认删除。
rm -rf [目录名]:删除目录,不会提示是否确认删除,直接删除目录,rm -rf /表示删除系统上的所有文件,危险操作,慎重使用rm命令,因为将rm -rf /路径命令中的路径前面多敲了一个空格,系统会认为要删除/目录和./路径目录,一样会触发删除所有文件的操作。
tree:查看目录结构,是第三方的Linux命令,需要先下载安装,安装命令为yum install tree,其中yum命令相当于“应用商店”。

yum list [条件]:搜索指定条件的资源(指令也算),条件可以没有,相当于手机的应用商店。
我们敲的所有的 Linux 命令, 都可以使用 tab 键来尝试补全, 加快效率。
yum install [资源名称] :下载指定资源。

vim:编辑文件内容,进入vim后需要使用i命令切换到上编辑模式,(insert),vim命令默认进入普通模式,不能对文件内容进行修改。

文件内容修改完毕以后,按esc退出编辑模式,回到默认的普通模式,输入:wq保存退出,wwrite,qquit

Linux权限:
r:可读权限
w:可写权限
x:可执行权限

例如:
rx表示可读可写但是不可执行
rx表示可读可执行但是不可写
rwx表示可读可写可执行

可以使用chmod指令进行权限的修改。

2.2使用Linux部署项目(Servlet项目为例)

假设我们已经使用Servlet写好了一个博口系统项目,我们想让这个项目部署到云服务器,就需要使用Linux来进行部署,下面来介绍项目的部署。

我们要部署项目,首先我们需要下载部署Servlet项目需要什么,我们代码是java写的,所以需要jdk,我们项目需要实现数据持久化,需要数据库,我们的项目需要一个HTTP服务器,所以需要Tomcat,所以我们至少需要准备以上的东西。

2.2.1安装JDK

基于yum来安装即可。
grep可以进行字符串过滤。

查询yum list | grep jdk,查询含有jdk的结果。

结果
我们选择jdk8,64位的。
结果2
结果3
我们安装的是open jdk,与我们在Windows上面的jdk并不是一样的,我们Windows上面的jdk是oracle的,而我们使用yum在Linux上安装的是开源组织的jdk,但是由于使用的jvm都是一样的,因此没有很大的区别。

在这里插入图片描述
选择y即可。

安装完成后,输入javac来判断是否安装成功,如果安装成功,输入javac会有如下的页面。

在这里插入图片描述

2.2.3安装Tomcat

我们使用yum在Linux上搜索Tomcat发现版本比较老了,由于不同版本的jdk需要不同版本的Tomcat,jdk8需要8.5系列版本的Tomcat,所以我们需要去其他的地方去下载Tomcat,最好的地方就是官网。

在这里插入图片描述
下载的过程与Windows上的下载一模一样,包括Tomcat安装包,我就不多说了,然后就是将Tomcat安装包上传到Linux上。

怎么上传呢?直接在Xshell拖拽就行,但是它是基于rz命令实现的,但是rzLinux默认没有,需要yum进行下载,命令就是yum install rz
在这里插入图片描述
上传完成后,我们需要进行解压缩,需要使用unzip命令,同理如果第一次使用,yum installer unzip

在这里插入图片描述
我们知道startupsh文件可以启动Tomcat程序,但是在此之前我们需要给这些文件赋予权限。
步骤就是先到bin目录,然后执行chmod +x *.sh

加权限之前:
在这里插入图片描述
加上权限之后:
在这里插入图片描述
使用sh startup.sh启动Tomcat。

在这里插入图片描述
如何验证Tomcat是否工作?

方式1:查看进程ps aux |grep tomcat
在这里插入图片描述
方式2:查看端口netstat -anp | grep 8080

在这里插入图片描述

最好的验证方式就是访问公网IP:8080端口号,看有没有Tomcat页面,但是第一次访问是大概率访问不了了,因为云服务器对大部分端口默认是不支持外部访问的,原因是减少黑客的攻击,需要设置云服务器的防火墙,设置过程如下:

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
按照下图填写即可。
在这里插入图片描述

点击确定,过一段时间,就能通过访问8080端口访问Tomcat主页了。
在这里插入图片描述

2.2.3安装与配置数据库

安装MySQL,因为历史原因,MySQL被oracle收购后,MySQL创始人又发明了MariaDB,语法可以说与MySQL一模一样,所以准确说是安装MariaDB。

安装教程如下:

安装 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

配置文件,使得字符编码为utf8mb4,为了保证博客系统的表情符号能够存进去。
下面的修改操作均以vim指令来实现。

第一步,更改 /etc/my.cnf.d/client.cnf 文件
输入命令vim /etc/my.cnf.d/client.cnf,在插入模式下,在[client] 下加一行配置 default-character-set=utf8mb4esc退出插入模式,输入:wq保存。

最终内容

#
# These two groups are read by the client library
# Use it for options that affect all clients, but not the server
#


[client]
default-character-set = utf8mb4

# This group is not read by mysql client library,
# If you use the same .cnf file for MySQL and MariaDB,
# use it for MariaDB-only client options
[client-mariadb]

第二步,更改 /etc/my.cnf.d/mysql-clients.cnf 文件

也是使用vim命令,过程上面说过一遍,这里就不多说了,在[mysql] 下加一行配置 default-character-set=utf8mb4

最终内容

#
# These groups are read by MariaDB command-line tools
# Use it for options that affect only one utility
#

[mysql]
default-character-set = utf8mb4

[mysql_upgrade]

[mysqladmin]

[mysqlbinlog]

[mysqlcheck]

[mysqldump]

[mysqlimport]

[mysqlshow]

[mysqlslap]

第三步,更改 /etc/my.cnf.d/server.cnf 配置

在[mysqld] 下加配置

character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
init_connect='SET NAMES utf8mb4'
sql-mode = TRADITIONAL

最终内容

#
# These groups are read by MariaDB server.
# Use it for options that only the server (but not clients) should see
#
# See the examples of server my.cnf files in /usr/share/mysql/
#

# this is read by the standalone daemon and embedded servers
[server]

# this is only for the mysqld standalone daemon
[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
init_connect='SET NAMES utf8mb4'
sql-mode = TRADITIONAL
# this is only for embedded server
[embedded]

# This group is only read by MariaDB-5.5 servers.
# If you use the same .cnf file for MariaDB of different versions,
# use this group for options that older servers don't understand
[mysqld-5.5]

# These two groups are only read by MariaDB servers, not by MySQL.
# If you use the same .cnf file for MySQL and MariaDB,
# you can put MariaDB-only options here
[mariadb]

[mariadb-5.5]

然后,输入以下命令即可:
启动服务

# systemctl start mariadb

设置服务开启自启动

# systemctl enable mariadb

查看服务状态

# systemctl status mariadb

可能的输出为,注意到 Active 状态为 active (running)

在这里插入图片描述
检查字符编码是否为utfmb4

show variables like '%char%';

在这里插入图片描述
如果不是,一定要配置成utf8mb4,不然后面发布博客功能不能发布含有表情符号的博客。

登录数据库,在Linux输入指令进入数据库,有密码它会提示你输入密码,没有密码就直接进入数据库:

# mysql -uroot -p

至于sql密码的设置,其实不用设置,毕竟你也没有重要的数据,数据库灰常安全,硬是要改,过程如下:
初始化密码(第一次修改)过程:
Linux下输入指令:

# mysql_secure_installation

选择 Y/N 的时候都选 Y,

New password:
Re-enter new password:

中设置你自己的 root 密码。

修改密码:
进入MariaDB,输入以下指令修改:
方式1:

UPDATE mysql.user SET Password=PASSWORD('New-Password') WHERE User='DB-UserName' AND Host='localhost';
flush privileges;

方式2:

SET PASSWORD FOR 'DB-UserName'@'localhost' = PASSWORD('New-Password');
flush privileges;

方式3:

ALTER USER 'DB-UserName'@'localhost' IDENTIFIED BY 'New-Password';
flush privileges;

2.3部署博客系统

第一步,在服务器建表,拿出我们之前写的sql语句,粘贴到服务器数据库建表。
第二步,微调java代码,主要就是DBUtil类中的数据源配置信息,主要是要修改为服务器数据库所对应的url,账户名和密码,我的服务器上的数据库上没有密码因此需要将密码设置为空字符串"",由于我的数据库账户名仍然为root,建的表也一样,因此账户名与url不变。
第三步,设置打包格式为war包和名称,就是在pom.xml配置文件加上下面的语句即可:

    <!-- 打包为war包 不写默认为jar包-->
    <packaging>war</packaging>

    <build>
        <!--指定war包名-->
        <finalName>blog_system</finalName>
    </build>

第四步,打包程序,上传到服务器Tomcat的webapps目录中,在指定目录拖拽即可。

然后,我们的程序就部署好了,我们使用公网IP来访问试一试,你们也可以试着访问一下地址为http://1.117.166.221:8080/blog_system/blog_login.html

1

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。