快速上手: Linux环境配置, 基本指令与项目部署要点

文章目录

  • 1. Linux前置知识
    • 1.1. 什么是Linux
    • 1.2. Linux环境的搭建
  • 2. Linux常用命令
    • ls
    • cd pwd
    • touch cat more echo mkdir
    • vi/vim
    • rm cp mv
    • grep ps netstat 管道符
    • yum相关
    • Linux权限
  • 3. 使用Linux部署Servlet项目
    • 3.1. 安装JDK
    • 3.2. 安装Tomcat
    • 3.3. 通过yum安装MariaDB
    • 3.4. 部署Servlet项目

1. Linux前置知识

1.1. 什么是Linux

Linux 是由林纳斯·托瓦兹(Linus Torvalds)在 1991 年创立并发展至今成为服务器操作系统领域的核心系统。

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

Linux 可以称之为当今第一大操作系统,在桌面端, Linux 大概落后 Windows 20 年左右的水平(相当于windows xp),所以人们日常使用的主要是 Windows;而在服务器端,Linux 基本上吃掉了绝大部分市场份额(Windows 也有 Windows Server);在移动端,Linux 也是大哥大, Android 系统本质上就是个 Linux,IOS 虽然不算是 Linux,但是是表兄弟关系,嵌入式设备(冰箱洗衣机空调路由器…),还得是Linux;Linux 的实际市场份额是更多的。

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

快速上手: Linux环境配置, 基本指令与项目部署要点_第1张图片

Windows 主要操作都是通过图形化界面,而 Linux 主要是通过命令行操作的,因为 Linux 操作系统的图形化页面不好用且(经常有 bug),使用命令行的形式操作更加高效且稳定资源占用低。

1.2. Linux环境的搭建

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

  1. 使用物理机:直接将 Linux 装在电脑上(不要 Windows),如果你真这么搞,我敬你是一条汉子;Linux 桌面使用起来是不太不友好的,一天能崩溃好几次,操作难度也比较大,不推荐。
  2. 使用虚拟机:在你的电脑上装个虚拟机软件(使用软件模拟硬件),此时就能在虚拟机上装系统了,但是目前的虚拟机软件存在一些 bug,会莫名其妙出现一些问题,而且没有外网 IP 推荐。
  3. 使用 WSL:WSL (Windows Subsystem for Linux)是 Windows 近几年开发的新功能,在 Windows 系统内集成了一个 Linux,但是目前这个技术还不够成熟,不能作为生产环境,不推荐。
  4. 使用云服务器:强烈推荐,它会有一个外网 IP,可以将项目部署被外部访问;学生买一个云服务器很便宜,学习阶段,腾讯云、阿里云、华为云这些厂商哪个便宜买哪一个就成。
  5. 实体服务器:这个更香,但是要求比较高,你得有一些基本的服务器维护的技能,是比较麻烦的。

至于云服务器的使用,登录你所买的云服务器官网管理平台,安转系统镜像( CentOS 7),找到服务器的 IP,然后设置一下云服务器的用户名(默认是 root)与密码就可以使用了。

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

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

快速上手: Linux环境配置, 基本指令与项目部署要点_第2张图片

快速上手: Linux环境配置, 基本指令与项目部署要点_第3张图片

快速上手: Linux环境配置, 基本指令与项目部署要点_第4张图片

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

3️⃣第三步,使用。

首先,点击新建创建一个会话。
快速上手: Linux环境配置, 基本指令与项目部署要点_第5张图片
输入相关信息和外网 IP,点击链接。
快速上手: Linux环境配置, 基本指令与项目部署要点_第6张图片
输入云服务器账户和密码,账户一般为root,密码就是你自己设的。
快速上手: Linux环境配置, 基本指令与项目部署要点_第7张图片
快速上手: Linux环境配置, 基本指令与项目部署要点_第8张图片
像下面这样就表示登成功了,你就可以操控云服务器的 Linux 系统了。
快速上手: Linux环境配置, 基本指令与项目部署要点_第9张图片

命令提示符:[当前登录的用户名@主机名:当前目录(~表示home目录,是用户存放数据的目录)]#(管理员)/$(普通用户),root 用户的 home 目录就是 /root, 是以 root 身份登录后,默认所在的目录。

比如:

img
命令行操作的好处:

  1. 带宽、系统资源的占用非常低
  2. 适合通过脚本来实现批量的重复的操作

2. Linux常用命令

Linux 中ctrl+c表示取消当行输入,ctrl+insert表示复制,shift+insert表示粘贴,ctrl+l清屏。

man是帮助指令,可以查看 Linux 中的指令帮助,配置文件帮助和编程帮助等信息。

Linux,命令通用格式:

command [-options] [parameter]

command:命令本身。
-options:[可选项]命令的一些选项,可以通过选项来控制命令的行为细节。
parameter:[可选项]命令的参数,多用于命令的指向目标等。

ls

ls:查看当前目录里所包含的文件和目录。

 ls [-a -l -h] [Linux路径]

当我们不使用选项和参数时,直接使用 ls 时,就会以平埔的方式列出当前目录下的内容,蓝色的是目录,白色的是普通文件。

img

-a选项,表示 all,即列出全部文件(包含隐藏的文件/文件夹),这里列出的是/(根目录的文件夹和文件),云服务器的任意一个文件都是从属于/目录的。

img

图中以./..开头的,就是 Linux 系统中隐藏的文件/文件夹。

-l选项,表示以列表的形式展示内容,展示更多信息,可以使用ll来替代ls -l

快速上手: Linux环境配置, 基本指令与项目部署要点_第10张图片

语法中的选项是可以组合使用的,比如 -a -l,下面几种写法效果都是一样的。

ls -l -a
ls -la
ls -al

-h的作用是列出文件的大小 K、M、G,-h 必须搭配 -l 一起使用,因为 -l 才会列出文件大小的属性。

快速上手: Linux环境配置, 基本指令与项目部署要点_第11张图片

-d将目录像文件一样显示,而不是显示其下的文件。

-r对目录反向排序。

-t以时间排序。

-R列出所有子目录下的文件(递归)。

cd pwd

cd:切换目录,cd ./路径可以简写为cd 路径

cd [Linux路径]

cd 无需选项,只有参数,表示切换到指定目录下,如果 cd 不写参数,会直接返回到 home 目录(回程)。

在使用 cd 的时候,切换的路径不一定要逐字母输入,可以使用tab键补全,如果只有一个匹配的选项直接就补全了,如果有多个选项,双击tab可以列出所有匹配结果。

我们敲的所有的 Linux 命令, 都可以使用tab键来尝试补全, 加快效率。

路径可以使用绝对路径(以/开头)和相对路径(使用特殊路径符)。

.    表示当前目录
..   表示上一级目录
~    表示初始目录

pwd:查看当前所在目录的路径。

touch cat more echo mkdir

touch:创建一个空文件。
cat:显示一个文件的内容。

more:显示一个文件的内容,cat 是直接将文件内容全部显示出来,more 支持翻页,如果文件内容过多,可以一页页的展示,查看过程中,按空格翻页,按q退出查看。

touch Linux路径
cat Linux路径
more Linux路径

echo:打印文件名在控制台,也可以用来写文件,比如echo+字符串就是在控制台打印一个字符串,echo 字符串 > 文件名.后缀表示将字符串写入后面的文件中,叫做重定向,每次重定向,会清空文件原有的内容;将>换成>>效果就会有覆盖变为拼接。

mkdir:创建目录。

mkdir [-p] Linux路径

参数是必填的,表示 Linux 路径,即要创建文件的路径,-p可选表示自动创建不存在的父目录,适用于我们创建连续多层级的目录。

vi/vim

vi\vim 是 Linux 最经典的文本编辑器,vim 是 vi 的加强版,兼容 vi 的所有指令,它为了为了追求编辑效率,引入了大量的快捷键,默认情况下,键盘上的按键都是按照快捷键的方式来进行作用的,此时,键盘按键都被赋予了特殊的含义,不再是单纯的输入文本了。

 vim 文件路径

vim 命令默认进入的是普通模式(normal),不能对文件内容进行修改,此时的键盘按键都是快捷键,要编辑文件内容,进入 vim 后需要使用i命令切换到插入模式(insert);

文件内容修改完毕以后,先按esc退出插入模式,回到默认的普通模式,输入:wq保存退出,wwriteqquit:的作用就是切换到底线命令模式。

底线命令模式命令:

命令 作用
:wq 保存并退出
:q 退出
:q! 强制退出
:w 保存
:set nu 显示行号
:set paste 设置粘贴

如果 vim 没有正确关闭,在下次启动的时候,就会报错(提示你说上次使用没有正确关闭),此时可以直接按D就是删除未保存的内容,按R就是恢复之前的编辑内容。

rm cp mv

rm: 删除文件/删除目录

rm [-r -f] 参数1 参数2 ... 参数n

rm 文件名:删除文件,会提示是否删除,输入 y 就删除。

rm -r 目录名:递归式删除目录,会提示是否确认删除。
rm -rf 目录名:递归式删除目录,不会提示是否确认删除,直接强制删除目录,rm -rf /表示删除系统上的所有文件,危险操作,慎重使用rm命令,因为如果将rm -rf /路径命令中的路径前面多敲了一个空格,系统会认为要删除/目录和./路径目录,一样会触发删除所有文件的操作。

rm 命令支持通配符*(匹配任何内容,包含空)来做模糊匹配:

  • test*代表匹配任何以 test 开头的内容
  • *test代表匹配任何以 test 结尾的内容
  • *tets*代表匹配任何包含 test的内容

cp:用于复制文件/文件夹

cp [-r] 参数1 参数2

-r用于复制文件夹使用,表示递归,参数 1 表示被复制的文件或文件夹,参数 2 表示要复制去的地方,要注意,拷贝操作,有的时候是比较危险的,如果拷贝的目标文件已经存在,就会发生“覆盖”的情况。

mv:用于移动文件\文件夹,改名(Linux中没有单独的命令重命名)

mv 参数1 参数2

参数 1 表示被移动的文件或文件夹,参数 2 表示要移动的地方;如果参数 2 目标不存在,则将参数 1 则文件/文件夹移动到参数 2 路径的同时改名为参数 2 的文件/文件夹名(一边移动一边改名);如果两个参数都是在同一目录下,这个时候就是单纯的改名作用了;如果参数 1 和参数 2 都是文件,且参数 2 存在的情况下,参数 1 中的内容会覆盖掉参数 2 的内容,相当于将参数的文件删除。

grep ps netstat 管道符

grep:字符串查找,从文件中通过关键字过滤文件行

grep [-n -R] "关键字" 文件路径

选项-n显示匹配结果行的行号,-R表示递归搜索,如果当前目录下还有目录,就会自动进入目录中进行搜索,如果文件路径使用*就表示扫描当前目录下的所有文件。

快速上手: Linux环境配置, 基本指令与项目部署要点_第12张图片

管道符 |:将管道符左边命令的结果,作为右边命令的输入。

img

ps:用于查看当前系统上运行的进程

 ps [-a -u -x]

-a显示一个终端的所有进程,-u以用户为主的格式来显示程序状况,-x显示所有程序,不以终端机来区分。

快速上手: Linux环境配置, 基本指令与项目部署要点_第13张图片

可以结合管道符使用,快速筛选指定项进程状态。

ps aux | grep "关键字"

比如要查看 mysql 进程的 pid。

快速上手: Linux环境配置, 基本指令与项目部署要点_第14张图片

netstat:查看系统上的网络状态

netstat [-a -n -p]

-a显示所有正在或不在侦听的套接字,-n显示数字形式的网络地址而不去解析主机、端口或用户名,-p显示套接字所属进程的 pid 和名称。

快速上手: Linux环境配置, 基本指令与项目部署要点_第15张图片

也可以结合管道符使用。

 netstat -anp | grep "关键字"

比如,想查询 mysql 服务器的端口号。

快速上手: Linux环境配置, 基本指令与项目部署要点_第16张图片

yum相关

tree:查看目录结构,是第三方的 Linux 命令,需要先下载安装,安装命令为yum install tree,其中yum命令是一种“包管理器”相当于“应用商店”。

yum list [条件]:搜索指定条件的资源(指令也算),条件可以没有,相当于手机的应用商店。
yum install [资源名称]:下载指定资源。

Linux权限

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

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

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

chmod [-R] 权限 文件/文件夹

-R表示对文件夹内的全部内容应用同样的操作。

例如,将 test.txt 权限修改为 rwxr-x–x,u 代表 user(文件的拥有者),g 代表 group(同组成员),o 代表 other(其它人)。

chmod u=rwx,g=rx,o=x test.txt

3. 使用Linux部署Servlet项目

我们要部署 Servlet项目,首先我们需要下载 Servlet 项目相关的支持,我们代码是用 Java 写的,所以需要 JDK,我们项目需要实现数据持久化,就需要数据库,我们的项目还需要一个 HTTP 服务器,所以需要 Tomcat。

下面的通过yum完成的操作要保证当前登录使用的用户是 root 用户。

3.1. 安装JDK

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

查询yum list | grep jdk,查询含有jdk字样的软件包。

快速上手: Linux环境配置, 基本指令与项目部署要点_第17张图片
我们选择 jdk8,64 位的。
快速上手: Linux环境配置, 基本指令与项目部署要点_第18张图片

然后执行安装命令:

yum install java-1.8.0-openjdk.x86_64 //安装

在安装的过程中,有个提示你是否要确认安装,按 y 就行了。

我们这里安装的是 open jdk,与我们在 Windows 上面的 jdk 并不是完全一样的,我们 Windows 上面的 jdk 是 oracle 官方的,而我们使用yum在 Linux 上安装的是开源组织的 jdk,但由于使用的 jvm 是相同的,区别也不是很大。

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

快速上手: Linux环境配置, 基本指令与项目部署要点_第19张图片

3.2. 安装Tomcat

yum 上安转 Tomcat 是存在问题的,我们使用yum在 Linux 上搜索 Tomcat 会发现版本都比较老了,

快速上手: Linux环境配置, 基本指令与项目部署要点_第20张图片

由于不同版本的 Servlet 代码需要不同版本的 Tomcat,我这里需要的是 8.5 系列版本的 Tomcat,所以需要去其他的地方去下载 Tomcat,直接去官网下载即可。

下载好后就是将 Tomcat 安装包上传到 Linux 上(上传前要保证有 JDK),直接将安装包拖到Xshell上就行,但是它是基于rz命令实现的,但是rz在 Linux 中默认是没有的,需要使用yum进行下载,命令为yum install rzszrz是把文件从 Windows 上传到 Linux,sz是把文件从 Linux 传给 Windows。
快速上手: Linux环境配置, 基本指令与项目部署要点_第21张图片
上传完成后,我们需要进行解压缩,需要使用unzip命令,没有这个命令的话还是需要下载,yum installer unzip

upzip apache-tomcat-8.5.87.zip

在linux中startup.sh文件可以启动Tomcat程序,我们需要给这些启动脚本赋予权限。
bin目录,然后执行chmod +x *.sh即可。

加权限之前:
快速上手: Linux环境配置, 基本指令与项目部署要点_第22张图片
加上权限之后:
快速上手: Linux环境配置, 基本指令与项目部署要点_第23张图片
使用sh startup.sh启动 Tomcat,启动前先检查一下 Tomcat 需要的端口是否空闲(8080,8005)。

快速上手: Linux环境配置, 基本指令与项目部署要点_第24张图片
如何验证 Tomcat 是否工作?

方式1:查 看进程ps aux | grep tomcat
img
方式2:查看端口netstat -anp | grep 8080

img::::/:::*是 ipv6 的写法。

Tomcat 默认端口有 8080,8005 两个端口,再看一下 8005。

img

方式3:访问 Tomcat 的欢迎页面。

还可以是访问公网IP:8080,看有没有 Tomcat 的欢迎页面,但是第一次访问大概率是访问不了了,因为云服务器对大部分端口默认是不支持外部访问的,这样是为了减少黑客的攻击,需要我们去设置一下云服务器的防火墙,设置过程如下:

快速上手: Linux环境配置, 基本指令与项目部署要点_第25张图片

快速上手: Linux环境配置, 基本指令与项目部署要点_第26张图片
按照下图填写即可。
快速上手: Linux环境配置, 基本指令与项目部署要点_第27张图片

点击确定,小等一会儿,就能通过访问8080端口访问 Tomcat 的欢迎页面了。
快速上手: Linux环境配置, 基本指令与项目部署要点_第28张图片

3.3. 通过yum安装MariaDB

MariaDB 语法与 MySQL 是差不多的,它是 MySQL 被 Oracle 收购后,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

启动

启动服务

systemctl start mariadb

设置开机自动启动服务

systemctl enable mariadb

查看服务器状态

systemctl status mariadb

注意到 Active 状态为 active (running**)**

img

测试连接

默认是无密码的,使用命令行客户端尝试连接

mysql -uroot

快速上手: Linux环境配置, 基本指令与项目部署要点_第29张图片

查看mariadb版本号:

select version();

快速上手: Linux环境配置, 基本指令与项目部署要点_第30张图片

创建数据库时为了支持中文,统一使用 utf8mb4 字符集

MariaDB [(none)]> create database demo_db charset utf8mb4;

可以使用 ctrl+d 退出 mysql 客户端。

3.4. 部署Servlet项目

我这里部署的是我写的一个 Servlet 版的博客系统。

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

<!-- 设置打包方式为war包, 不写默认为jar包-->
<packaging>war</packaging>
<build>
    <!--指定war包名-->
    <finalName>blog_system</finalName>
</build>

4️⃣第四步,打包部署,上传到服务器 Tomcat 的webapps目录中,即将war包拖拽到webapps目录。

此时程序算部署好了,就可以公网使用 IP 来访问进行访问,地址为http://101.42.25.148:8080/blog_system/login.html

你可能感兴趣的:(JavaWeb,linux,运维,服务器,xshell,项目部署)