Linux环境搭建与基本指令(手把手带你在Linux部署项目)
⭐️前面的话⭐️
本文将介绍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/
第二步,安装,设置路径,一路next即可。
第三步,使用。
首先,点击新建。
输入相关信息和外网IP,点击链接。
输入云服务器账户和密码,账户一般为root
,密码就是你自己设的。
像下面这样就表示登成功了,你就可以操控云服务器的Linux系统了。
命令提示符:[用户名@主机名 当前目录(~表示home目录)]#
,比如:
命令操作的好处:
- 减少带宽
- 命令有助于基于脚本来完成重复性的工作
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 -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
保存退出,w
即write
,q
即quit
。
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位的。
我们安装的是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
命令实现的,但是rz
Linux默认没有,需要yum
进行下载,命令就是yum install rz
。
上传完成后,我们需要进行解压缩,需要使用unzip
命令,同理如果第一次使用,yum installer unzip
。
我们知道startup
的sh
文件可以启动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=utf8mb4
,esc
退出插入模式,输入: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
。
- 点赞
- 收藏
- 关注作者
评论(0)