JavaEE初阶学习:Linux 基本使用和 web 程序部署

news2024/12/30 3:11:39

1.Linux的基本认识

Linux 是一个操作系统.(搞管理的系统)
和Windows都是同类产品~~

Linux 实际的场景:

1.服务器

2.嵌入式设备

3.移动端(手机)Android 其实就是Linux

在这里插入图片描述

1991年,还在读大学的 芬兰人 Linus Benedict Torvalds,搞了一个Linux 这样的系统0.01版,正式发布了~

后续为了管理Linux代码,又开发了一个代码管理工具,git

Linux准确来说,是一个"统称",或者可以认为是一个"操作系统内核"

一个完整的系统 = 操作系统内核 + 配套的应用程序

于是就有很多的企业,基于Linux内核,搭配了不同的应用程序,从而诞生了不同的"操作系统" —> 发行版

在这里插入图片描述
企业中最主要使用的发行版是 RedHat (红帽). 但是 RedHat 是一个收费的系统

我们使用CentOS

2.获取到一个Linux环境

1. 使用虚拟机软件(下策)

不能解决前面说的,让咱们的服务器被其他主机访问的问题,虚拟机软件存在很多bug,经常会出现很多奇怪的问题

电脑上装一个程序,这个程序通过软件来模拟硬件.(在你的电脑里,虚拟出来一个假的电脑)
接下来就可以在虚拟的电脑里安装Linux了~~

2. 使用 Windows 自带的 WSL 功能.widows subsystem linux(中策)

linux 影响力太大了,Windows 内部集成了 linux 的内核!!

相比于虚拟机,问题是少了很多,但是任无法解决部署的问题

3. 买一个云服务器(上策)

大的厂商,有很多的服务器(配置贼高的服务器),这些机器反正也是闲着~
干脆就把多余的这些机器/算力,租出去,供一些中小企业使用~

云服务器还会有一个外网IP!!!

后续只要把咱们的程序部署到云服务器上,此时,你的程序就可以被别人访问到了!!

3.使用云服务器

在这里插入图片描述

选择进行购买

在这里插入图片描述

地域随便选

镜像统一选择 centos 7

购买后,点击控制台,就可以看到你的机器了

上面有个IP地址十分重要,你登录这个机器
或者后续让其他用户访问你的服务器都是通过这个IP

用户名:root(固定)
密码:这里重置的时候设定的(这个密码尽量设置的复杂点)

在这个环节我们最重要的是得到三个信息:

  1. 服务器的外网 IP
  2. 服务器的管理员账户 (固定为 root)
  3. 管理员账户密码(在腾讯云网站上设置的

这样我们就可以远程登录到服务器了

4.使用终端软件连接到 Linux

我们使用的是xshell 这样的软件来进行远程登录.

下载安装 XShell

下载地址:https://www.xshell.com/zh/free-for-home-school/

在这里插入图片描述

和每个 linux 主机建立连接,都可以使用会话来保存起来,一旦保存好以后,后续直接一点就可以连接上.

在这里插入图片描述

主机这里写外网IP

同时,填写用户名,填写密码,每一步都勾选记住~,就可以连接了

5.Linux 常用命令

在这里插入图片描述
命令提示符
~ 表示当前所在目录
~ 在 linux 中有特定的含义,表示 home 目录.(用户数据存放的目录)

#表示当前是管理员
$ 表示是普通用户

在 linux 上,不像 Windows 有一个图形化的界面,操作的时候都是靠输入命令的方式来进行的!!

其实, linux 也是有图形化界面的,但是在实际工作中,一般不会使用,甚至不会安装!!

图形化的优势,是适合小白快速上手~~

命令行的优势,更高效,更准确,生产力工具
1.带宽占用非常低
2.系统资源的占用也非常低~~
3.命令行适合通过脚本来实现批量的重复的操作~

ls

list 列出当前目录/指定目录 中都有那些文件~

相当于双击了某个目录,查看里面的内容~

在这里插入图片描述
其中,蓝色的是目录
白色的是普通文件

ls 后面跟上一个具体的目录,就可以看到指定目录中的内容.

在这里插入图片描述
/ 表示 linux 的"根目录",对标 Windows 中的此电脑.
云服务器上任何一个文件,都是从属于 / 目录的~~

使用ls -l 能够查看目录中的内容细节~(等价于ll)

在这里插入图片描述
在这里插入图片描述

-a 列出目录下的所有文件,包括以 . 开头的隐含文件。
-d 将目录象文件一样显示,而不是显示其下的文件。 如:ls –d 指定目录
-k 以 k 字节的形式表示文件的大小。ls –alk 指定文件
-l 列出文件的详细信息。
-r 对目录反向排序。
-t 以时间排序。
-R 列出所有子目录下的文件。(递归)

这些选项,也叫做是"命令行参数"
参数和参数之间,需要至少用一个空格来分割.

cd

change directory 切换目录

Linux系统中,磁盘上的文件和目录被组成一棵目录树,每个节点都是目录或文件。

就相当于,咱们在Windows资源管理器中,双击某个目录~

cd 后面跟上你要切换的目录的路径(路径,可以使用绝对路径,也可以使用相对路径)

linux 上的绝对路径是以/开头的,相对路径是以.和…开头的

在这里插入图片描述

在这里插入图片描述

随着 cd 的进行,当前所在目录就会发生变化.

在输入命令/输入目录文件的时候,可以使用 tab 来补全!!

直接使用 cd 后面不加任何选项/路径,此时就会返回到 home 目录!!

pwd

防止用户迷路

有时候,cd了太多次,都记不得当前处在哪个路径中了.
就可以使用 pwd 查看当前的完整路径是啥~~

touch

创建一个空的文件

在这里插入图片描述

在这里插入图片描述

cat

concatenate

读取文件内容~

针对简单短小的文件,还好,如果文件很大,很长,cat就不方便了

在这里插入图片描述

在这里插入图片描述

man

也是一个 linux 命令,用来查看用户手册~

在这里插入图片描述

echo

用来写文件

在这里插入图片描述

在这里插入图片描述

此处的操作,没有把hello显示到控制台上,而是写入了后面java_1.txt 的文件中

“>” 重定向

在这里插入图片描述

每次进行echo+重定向,会清空原有内容.

echo 和 cat 这样的命令,只是适合针对简单的文件进行操作~~
如果文件复杂,或者编辑的需求复杂,就不太适合了~

echo 和 cat 一般适用于需要使用脚本批量处理很多操作的时候~

vim

用来针对复杂文件,进行复杂的编辑

vim 是 linux 上自带的文本编辑器,就相当于 Windows 的记事本.

1.打开文件

使用 vim + 文件名/文件路径

在这里插入图片描述

2.编辑文件

vim 是一个有特色的程序,为了追求编辑效率,引入了大量的快捷键~

默认情况下,键盘上的按键都是按照快捷键的方式来进行作用的~
此时,键盘按键都被赋予了特殊的含义~~不再是单纯的输入文本了!!

vim中的模式(mode)
默认情况下,vim处于 normal mode (普通模式)
此时,键盘按键都是快捷键

切换到 insert mode (插入模式)
此时键盘按键才是输入文本~
通常我们使用 按 i 来进入插入模式.

在这里插入图片描述
在这里插入图片描述

在这个模式下,vim 的各种行为就和记事本基本一致了~~

linux 的命令行中,如果要复制粘贴,不是使用Ctrl c 和 Ctrl v
使用Ctrl + insert 复制
使用shift + insert 粘贴

3.保存退出

没有x让你点击退出

也不要按Ctrl + s,不是保存~~

ctrl + s 是 xshell 的功能,冻结当前画面~(终端显示太快)

ctrl + q 解除冻结

(1)要先回到普通模式,按esc

在这里插入图片描述
(2)输入 :wq

输入:的时候,光标来到了最下面一行,此时vim处在命令模式
接下来的操作就是vim命令~

mkdir

创建目录

在这里插入图片描述

在这里插入图片描述

rm

删除文件/删除目录

在这里插入图片描述
在这里插入图片描述
使用 rm-r 进行递归删除
删除目录的时候,需要同时删除目录中的所有文件和子目录~~

rm -rf
此处的f表示"强制删除",不需要确认了~

rm -rf *
此处 * 就是通配符,能够匹配到当前目录的所有文件.

rm -rf /
最顶级的删除,执行该操作,就是砸自己饭碗了!!切记
在linux中,未定义的变量不会报错,而是直接当做空字符串处理!!

cp

复制文件或目录

在这里插入图片描述
此处就是把 test.txt 复制一份,同时重命名成 test2.txt

cp 不光可以复制文件,还可以复制目录.
但是复制目录的时候,必须要加上一个 -r 选项.(r 表示递归)

拷贝的操作,有时候是比较危险的!!

如果拷贝的目标文件,已经存在,就会发生"覆盖"的情况!

cp 是比较慢的~因为它需要大规模的读写硬盘

mv

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

在这里插入图片描述

mv 则比较快~因为文件系统中,每个文件的"路径"就是一个简单的属性

mv就只是修改了这个路径属性而已~~ O(1)

linux 没有回收站,经常会使用 mv 来模拟回收站的效果~~

想删除某个东西,并不是直接 rm ,而是通过 mv 移动到一个单独的目录中~

grep

字符串匹配

快速搜索某个文件中,是否包含某个特定的字符串~

在这里插入图片描述
在这里插入图片描述

grep 可以同时在很多文件中操作

grep “xxx” * -r

ps

查看进程

在这里插入图片描述

直接使用ps 查看的内容非常有限.
往往要使用一些固定选项~

在这里插入图片描述

使用 ps aux 能够列出系统上的所有进程~

但是很多时候,我们不会关心所有的进程,只关心咱们想看到的进程~~

配合 grep 就可以快速筛选

在这里插入图片描述

| 我们称为"管道"
用来连接两个命令
前一个命令的输出作为后一个命令的输入

可以通过 ps 来查看到某个进程的pid

netstat

查看网络状态

在这里插入图片描述

很多时候,只关注这里的一部分信息~~

搭配grep进行查询~

在这里插入图片描述
也需要通过 netstat 查看某个进程绑定的端口号~

6.搭建 Java 部署环境

例如,我们写的博客系统,部署到 linux 云服务器上!!

咱们的博客系统,都依赖哪些软件程序??

1.jdk

2.tomcat

3.mysql

jdk

jdk 在 linux 上安装有很多方式
此处就只是介绍最简单的方式~~ 使用"包管理器"进行安装

centos 自带的包管理器 --> yum

yum list 查看当前的软件包有哪些
yum install 安装指定的软件包

在这里插入图片描述

在这里插入图片描述

devel --> development 开发

在这里插入图片描述
在这里插入图片描述

使用 javac 命令,观看jdk是否下载完成

Tomcat

yum 安装tomcat是存在问题的,因为 yum 上默认的软件包可能是比较老的~~

更简单的办法,tomcat 手动安装即可~~ tomcat 本身安装就很容易

tomcat 是跨平台的!
同一个zip,既可以在 Windows 上使用,也可以在 linux 上使用.

吧下载好的zip压缩包,上传到 linux 服务器上~~

1.直接把zip压缩包往 xshell 中一拖,就可以完成文件上传(xshell zmode 功能)

2.使用 unzip 命令解压缩

unzip apache-tomcat-8.5.47.zip

3.修改可执行权限

cd apache-tomcat-8.5.47/bin
# 将所有 .sh 后缀的文件加上可执行权限(后面会介绍)
chmod +x *.sh

4.启动Tomcat

先检查下,Tomcat端口是否被占用,使用netstat看看

sh startup.sh

在这里插入图片描述

还可以直接在外网访问 Tomcat 的欢迎页面~

看到欢迎页面,说明Tomcat正常工作!

在浏览器地址栏中

http://[服务器外网ip]:8080/

在这里插入图片描述

MySQL

我们还是通过 yum 安装

参考https://zhuanlan.zhihu.com/p/49046496

在这里插入图片描述

在这里插入图片描述

上述命令执行完成以后,就可以直接使用 MySQL 客户端连接了

MySQL -uroot 来进行连接,默认没有密码~~

在这里插入图片描述

7.部署 Web 项目到 Linux

1.微调代码,保证代码能够连得上云服务器的数据库~

在这里插入图片描述

2.建库建表

之前吧建库建表的sql都写下来了,我们直接复制粘贴.

ctrl + d 退出mysql客户端.

3.打包部署

在IDEA中,基于IDEA 打一个war包,拖到Tomcat的目录中即可~

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

4.通过浏览器访问

在这里插入图片描述

如果部署完成之后,程序有什么问题,咋办?

1.先抓包,判定是前端还是后端问题

2.如果是后端,学会看 Tomcat 日志~~

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[量化投资-学习笔记007]Python+TDengine从零开始搭建量化分析平台-布林带

布林带(Bollinger Bands)也称为布林通道、保力加通道,是由约翰布林格(John Bollinger)发明的技术分析指标。布林通道通常被用来确认资产价格波动范围。 布林通道是由三条平滑的曲线组成的趋势线图表,中线为…

HDPE双壁波纹管存在缺点,在选择使用时需要根据实际情况进行考虑

惠洁友情提醒HDPE双壁波纹管脆性较大:HDPE双壁波纹管的脆性较大,容易受到冲击和碰撞的影响,如果使用过程中出现破损或裂缝,可能会影响到其密封性能和使用寿命。 对温度敏感:HDPE双壁波纹管的性能受温度影响较大&#…

安全测试,接口返回内容遍历~

最近公司被人大量爬取数据,查了一下发现,用户主页接口,没有加用户登录校验,返回了用户的敏感信息有手机号和邮箱,其实这个接口是用不到这些信息的。再加上用户id是自增长的,所以很容易被别人爬取。 既然这…

【milkv】添加LCD屏GC9306

前言 本章介绍如何添加LCD屏GC9306驱动。 电路图 dts build\boards\cv180x\cv1800b_milkv_duo_sd\dts_riscv\cv1800b_milkv_duo_sd.dts &spi2 {status "okay";/delete-node/ spidev0;gc9306: gc93060{compatible "sitronix,gc9306";reg <0&g…

[PHP]得推跑腿O2O系统 v3.41

得推跑腿系统是一个以phpMySQL进行开发的主要针对本地跑腿服务的O2O系统&#xff0c;支持wap\\小程序\\App。 主要功能模块&#xff1a; 用户端&#xff1a; 1.跑腿任务发布 2.跑腿任务管理追踪 3.在线支付 4.常用地址管理 跑腿端&#xff1a; 1.跑腿任务抢单 2.跑腿员认证 3.…

Win11 Edge浏览器进入朔日考试系统(无纸化测评系统)的方法

Win11 Edge浏览器进入朔日考试系统&#xff08;无纸化测评系统&#xff09;的方法 笔记本型号&#xff1a;联想 使用浏览器&#xff1a;edge浏览器 操作系统&#xff1a;Windows11 网址&#xff1a;http://172.31.0.139/WZHEDU/ 注意:使用此方法打开edge浏览器会频繁出现弹窗&a…

第17章 反射机制

通过本章需要理解反射机制操作的意义以及Class类的作用&#xff0c;掌握反射对象实例化操作&#xff0c;并且可以深刻理解反射机制与工厂模式结合意义。掌握类结构反射操作的实现&#xff0c;并且可以通过反射实现类中构造方法、普通方法、成员属性的操作。掌握反射机制与简单J…

19.13 Boost Asio 发送TCP流数据

Boost框架中默认就提供了针对TCP流传输的支持&#xff0c;该功能可以用来进行基于文本协议的通信&#xff0c;也可以用来实现自定义的协议。一般tcp::iostream会阻塞当前线程&#xff0c;直到IO操作完成。 首先来看服务端代码&#xff0c;如下所示在代码中首先通过GetFileSize…

2023.11.08 homework

小学五年级数学

Vim编辑器学习

B站学习vim指令链接 1&#xff1a;vim下有两种模式&#xff0c;一种是命令模式&#xff0c;一种是编辑模式 2&#xff1a;命令到编辑模式&#xff0c;按键盘i&#xff0c;编辑到命令格式按Esc 3&#xff1a;&#xff1a;wq 保存并退出 &#xff1a;wq code.c保存并把文件命名为…

【机器学习基础】机器学习概述

目录 前言 一、机器学习概念 二、机器学习分类 三、机器学习术语 &#x1f308;嗨&#xff01;我是Filotimo__&#x1f308;。很高兴与大家相识&#xff0c;希望我的博客能对你有所帮助。 &#x1f4a1;本文由Filotimo__✍️原创&#xff0c;首发于CSDN&#x1f4da;。 &#x…

Mysql数据库 11.SQL语言 储存过程 下 储存过程管理和游标

一、存储过程管理 1.查询存储过程 查询所有储存过程 语法 show procedure status; 代码实现 #查询存储过程 show procedure status; 运行结果 加入条件查询储存过程 语法 show procedure status where db储存过程名; 代码实现 #查询带有条件的储存过程 查询名字为pro…

第五届泰迪杯数据分析技能赛B题源码图片分享

需要B题源码以及第六届带队”指导“请私信本人&#xff0c;团队包含技能赛双一等&#xff0c;数学建模省一&#xff0c;泰迪杯挖掘国一&#xff0c;研究生队友。 去年一等作品可视化图如下&#xff0c;私信获取源码

clickhouse通过java jdbc实现增删改查,保姆级教程

一、clickhouse是一款开源的用于在线分析处理查询(OLAP :Online Analytical Processing)MPP架构的列式存储数据库。 二、clickhouse可以做用户行为分析&#xff0c;流批一体 三、我们现在用java通过jdbc的方式来操作clickhouse 四、先安装clickhouse&#xff0c;安装资料自行…

长春理工大学漏洞报送证书

获取来源&#xff1a;edusrc&#xff08;教育漏洞报告平台&#xff09; url&#xff1a;主页 | 教育漏洞报告平台 兑换价格&#xff1a;10金币 获取条件&#xff1a;提交长春理工大学任意中危或以上级别漏洞

尚硅谷大数据项目《在线教育之实时数仓》笔记007

视频地址&#xff1a;尚硅谷大数据项目《在线教育之实时数仓》_哔哩哔哩_bilibili 目录 第9章 数仓开发之DWD层 P053 P054 P055 P056 P057 P058 P059 P060 P061 P062 P063 P064 P065 第9章 数仓开发之DWD层 P053 9.6 用户域用户注册事务事实表 9.6.1 主要任务 读…

kafka笔记要点和集群安装、消息分组、消费者分组以及与storm的整合机制

kafka笔记 1/kafka是一个分布式的消息缓存系统 2/kafka集群中的服务器都叫做broker 3/kafka有两类客户端&#xff0c;一类叫producer&#xff08;消息生产者&#xff09;&#xff0c;一类叫做consumer&#xff08;消息消费者&#xff09;&#xff0c;客户端和broker服务器之间…

SAP BASIS SET_PARAMETER_ID_TOO_LONG

ji 原因 DATA:curvbelnid(40) TYPE c,"问题在这里curposnrid(40) TYPE c. "问题在这里curvbelnid sy-uname && VN.curposnrid sy-uname && PR.SET PARAMETER ID curvbelnid FIELD i_vbeln . SET PARAMETER ID curposnrid FIELD i_posnr . 改成 D…

【Proteus仿真】【STM32单片机】汽车尾灯控制设计

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真STM32单片机控制器&#xff0c;使用按键、LED模块等。 主要功能&#xff1a; 系统运行后&#xff0c;系统运行后&#xff0c;系统开始运行&#xff0c;K1键控制左转向灯&#xff…

web前端-Gulp入门

web前端-Gulp入门 gulp的概述使用gulp准备工作gulp的常用APIgulp的常用插件gulpfile.js的初体验打包css文件打包scss文件打包js打包html打包images创建一个默认任务创建一个删除任务gulp启动服务创建一个监控任务 gulp的概述 gulp&#xff1a; 前端自动化打包固件工具&#xf…