【Java EE初阶二十九】Linux 系统的学习

        当前写的博客系统程序,只是部署在咱们自己的电脑上,其他用户是无法直接访问的.由于 NAT 机制的存在,导致了IP 地址就被分成了 内网 IP 和 外网 IP.

        云服务器,包括公司中使用专用服务器,一般都是 Linux 系统,这个系统的使用和 Windows 差异很大.(通过命令行来操作的系统)

1  初识Linux

        Linux 不仅仅是使用在服务器领域. 也用于嵌入式设备(冰箱,洗衣机)和移动端设备(安卓系统,也是基于 Linux 发展而来的);

        Linux 发行版,严格的说, Linux 不是一个"操作系统"而是一个"操作系统内核",所谓的操作系统= 内核 + 配套的应用程序,公司中使用的一般都是如下的配套linux的应用程序:

1.1 购买云服务器

        云服务器是在遥远的机房,要通过网络来进行操作,所部署的程序,也是要通过这个外网 ip 来访问的;

1.2 XShell来连接云服务器

        安全成功的下载xshell,如下所示:

        要想使用 xshell 连上云服务器,就需要明确云服务器的几个信息:

1、外网IP:49.235.129.183;

2、用户名:大部分 Linux 默认的用户名是 root;

3、密码:首次使用需要进行重设置密码;

        开始建立xshell与云服务器的连接:

        出现上图所示之后,点击连接,点了之后会弹出一个对话框,问你是否要保存密钥(选择是),如下图所示:


又会弹出对话框,让你输入用户名(勾选保存),又会弹出密码,让你输入密码(勾选保存),上述操作都成功之后,就能进入linux 命令行界面了,如下图所示:

名词介绍:

 2. Linux 常用命令

        ls:list 列出当前目录下都有哪些内容 (文件/目录),直接输入ls是查看当前目录的情况;

        ls /:跟上/意思就是看看/这个目录下的情况,/称为"根目录”就是 Windows上的"此电脑“的意思,因为Linux 中没有盘符,所有的目录和文件都是在/目录下的.注意ll和/之间是有一个空格的;

上述这些就都是/目录下包含的内容,且这些文件都是系统自带的文件和目录;

        ll,也就是ls -l的写法,将当前目录下的文件竖着向我们展示出来;如下图所示:

        下面简单介绍一下上图中的相关消息,如下图所示:

        权限字符串的第一个字母,表示了文件的类型
- 表示普通的文件(显示成白色)
d 表示目录文件(文件夹)(显示成蓝色)
l 表示链接文件(快捷方式)(显示成浅蓝色)

使用 linux 的时候,按 ctrl +|可以清屏哦!!!

        cd :change directory 修改(当前)目录

cd / 指的是来到根目录, 就相当于点击"此电脑“,如下图所示

        cd指令的小技巧:

通过上述连续的 cd 操作,已经进入到 /etc文件里面

       pwd: 使用 pwd 可以查看到当前所处的路径的绝对路径.

在 linux 的命令中, 但凡涉及到目录相关的操作,都是可以支持绝对路径 和相对路径的,Linux 上,绝对路径,是以/开头的,相对路径,以.或者..开头的;

        touch:创建空的文件

对于linux来说,输入一个命令,没有任何提示此时就是"成功”,如果失败, 就会告诉你一些报错信息;

        cat:查看文件内容(把文件内容打印到控制台上)

       echo: 打印内容到控制台上

注意:这里的 echo + 重定向,只能写一些简单的字符串内容,如果你的需要写的内容很多,不太方便,更不方便修改。

        简单介绍vim:

        vim 是 Linux 上自带的一个文本编辑器,使用 vim 就可以更灵活的对文件进行编辑了.
虽然和记事本的差不多,但实际上 vim 的使用要复杂很多,接下来只是简单介绍 vim 最基础的操作.

1)、打开文件

        指令操作:vim 文件名,如下图所示:

2)、编辑内容

        vim 包含很多快捷键, 快捷键的画风和其他的软件截然不同,vim 更期望输入单个按键,就能起到快捷键的效果,所以vim 引入了"模式"概念;

        启动 vim 之后, 默认处于 normal mode (普通模式),键盘按键,都是快捷键,而不是输入文本,此时下图就是普通模式:

        要想输入文本, 就需要进入 insert mode (插入模式).进入插入模式的方法,有很多,最简单的就是i,下图就是插入模式;

3)、保存退出

        在 xshell 中,按 ctrl +s是冻结屏幕的意思,有的时候,服务器打印的日志太快了,滚动太快看不清,就可以冻结屏幕按 ctr + q 就能解除冻结;

        先按 esc, 回到普通模式,再按:进入命令模式

        mkdir:make directory 创建目录;

        rm:remove 删除文件/目录;

有的系统上(centos) 输入 rm 删除,就会有个提示,是否确认要删除.输入y就是删除.n 就是不删除,所谓的删除目录,不仅仅是删除目录本身,还要删除目录包含的其他目录和文件.故此需要使用 rm -r 来删除,其中 -r 表示"递归”;

        有的系统上删除的时候,也会和上面一样,提示你是否要真的删除,如果是删除目录的话,递归过程比较麻烦,同时每个目录都会提示你要进行确认,我们就可以使用 rm -rf 的方式直接删除,f表示“强制删除”不需要进行确认;

        需要注意的是:

        mv: move 移动(剪切,粘贴)要移动的源  要移动的目标地方,也可以移动目录(把目录内部包含的所有内容都进行移动),使用 mv 还可以针对文件/目录进行重命名;

        cp: 要复制的源 要复制的目标,可以拷贝普通文件,也可以拷贝目录拷贝目录的时候,和 r 类似,都是要加上 -r 选项,表示要递归的拷贝目录里的内容;

        grep: 字符串匹配/查找,比如,想查找某个文件中是否包含某个关键字,这个关键字在第几行,都可以使用 grep 来查看;

 

        ps:process show 展示进程 显示出当前系统上都有哪些进程

        很多时候 ps 都会搭配 grep 来使用,比如,查看 mysql 进程的进程 pid.

        一般主要有下面两种用法:

ps aux| grep 进程名
ps aux|grep 进程id;

        netstat :查看网络信息,可以用来查看某个端口是否被某个进程使用.也可以查询某个进程使用了哪个端口;

3. 在linux上搭建博客系统

        在 Linux 系统上搭建 Java web 程序的运行环境,需要有一些其他的程序把这个环境搭起来,我们需要安装JVM (JDK),Tomcat,MySQL 数据库,这三个运行所需要的环境;

        Linux 通过命令的方式来安装的,我们就主要使用最简单的方式.即基于包管理器 进行安装;

Linux 会把一些软件包,放到对应的服务器上,通过包管理器这样的程序,来把这些软件包给下载安装;其中ubuntu 系统的包管理器是 apt

3.1 安装jdk

        这里需要确保是处于 root 用户下.(如果不是管理员,需要使用 sudo su 切换到管理员)

1、使用 apt 命令查看服务器上有哪些软件包,apt list l grep jdk;

2、使用 apt 安装软件包

        apt install 软件包名,其中在 Linux 命令行中,复制 ctrl + insert,粘贴 shift + insert;

当出现下图界面时,即jdk安装成功:

root@VM-4-5-ubuntu:/home/ubuntu# javac
Usage: javac <options> <source files>
where possible options include:-g                         Generate all debugging info-g:none                    Generate no debugging info-g:{lines,vars,source}     Generate only some debugging info-nowarn                    Generate no warnings-verbose                   Output messages about what the compiler is doing-deprecation               Output source locations where deprecated APIs are used-classpath <path>          Specify where to find user class files and annotation processors-cp <path>                 Specify where to find user class files and annotation processors-sourcepath <path>         Specify where to find input source files-bootclasspath <path>      Override location of bootstrap class files-extdirs <dirs>            Override location of installed extensions-endorseddirs <dirs>       Override location of endorsed standards path-proc:{none,only}          Control whether annotation processing and/or compilation is done.-processor <class1>[,<class2>,<class3>...] Names of the annotation processors to run; bypasses default discovery process-processorpath <path>      Specify where to find annotation processors-parameters                Generate metadata for reflection on method parameters-d <directory>             Specify where to place generated class files-s <directory>             Specify where to place generated source files-h <directory>             Specify where to place generated native header files-implicit:{none,class}     Specify whether or not to generate class files for implicitly referenced files-encoding <encoding>       Specify character encoding used by source files-source <release>          Provide source compatibility with specified release-target <release>          Generate class files for specific VM version-profile <profile>         Check that API used is available in the specified profile-version                   Version information-help                      Print a synopsis of standard options-Akey[=value]              Options to pass to annotation processors-X                         Print a synopsis of nonstandard options-J<flag>                   Pass <flag> directly to the runtime system-Werror                    Terminate compilation if warnings occur@<filename>                Read options and filenames from file

3.2 安装 tomcat

        如上图所示,咱们用的是 tomcat 8.5,tomcat 8.5 搭配的是 servlet 3.1,所以就需要手动安装 tomcat 了,由于 Tomcat 就是 基于 java 来实现的,且java 是跨平台的.

故此只需要把之前 Windows 上的 Tomcat 上传到 Linux 上即可.

1、把之前 Windows 上的 Tomcat 上传到 Linux 上

        把要上传的压缩包,往 xshel l上一拖, 就可以了,但是
1)、一次只能拖一个文件.(打成压缩包)
2)、要想能拖上去,需要先安装 lrzsz 这样的软件包

ubuntu apt install lrzsz,下面是简单的指令:
        sz 把 linux 上的文件传到 Window.
        rz 把 windows 上的文件传到 linux;

2、对 zip 压缩包进行解压缩
        unzip 压缩包名字
        ubuntu: apt install unzip

3、修改 .sh 文件的可执行权限,让这些 sh 都可执行
        先 cd 到 bin 目录中,进行下图操作:

        执行完这个操作,顺利完成没报错,说明就成功了,此时这些 .sh 文件都变绿了,如下图所示:

4、 启动 tomcat

        还是 cd 到 bin 目录下,sh startup.sh,代码如下:

root@VM-4-5-ubuntu:/home/ubuntu/java109/apache-tomcat-8.5.98/bin# sh startup.sh 
Using CATALINA_BASE:   /home/ubuntu/java109/apache-tomcat-8.5.98
Using CATALINA_HOME:   /home/ubuntu/java109/apache-tomcat-8.5.98
Using CATALINA_TMPDIR: /home/ubuntu/java109/apache-tomcat-8.5.98/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /home/ubuntu/java109/apache-tomcat-8.5.98/bin/bootstrap.jar:/home/ubuntu/java109/apache-tomcat-8.5.98/bin/tomcat-juli.jar
Using CATALINA_OPTS:   
Tomcat started.

5、验证启动是否成功
        使用 ps 查看java 进程有没有
        使用 netstat 查看 8080 是否被绑定
        访问 tomcat 的欢迎页面

还可以通过浏览器来访问 tomcat 的欢迎页面,我们访问的是项目的登录界面:

        云服务器是另外一台电脑,不是一个程序,这个电脑你需要通过网络连接的方式来进行操作,xshell 就是连接到云服务器的客户端软件;

        同时这里还有一个问题,就是要确保云服务器的 防火墙/安全组 确认是否打开:

        登录到云服务器的后台,找到对应的机器.选择防火墙标签页,如下图所示:

        为了保护你的服务器安全,云服务器厂商就对那些端口能够访问做出限制,默认情况下,就只有 22 (xshell 登录的时候使用 端口)和 3389(Windows 的服务器远程桌面) 能够访问
),为了确保我们的项目能够顺利被访问,就需要把 8080 这个端口添加到上述防火墙中.

        

        当你把端口号开放之后,外界才能够访问到你的这个 8080 端口;

3.3  安装 mysql

        安装 mysql,直接通过 apt 来安装,这里就直接装 mysql8 ,

        安装完毕之后,一般来说, mysql 的服务器就自动启动了;

        

root@VM-4-5-ubuntu:/# service mysql status
● mysql.service - MySQL Community ServerLoaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)Active: active (running) since Fri 2024-02-02 14:50:22 CST; 1 month 1 day agoMain PID: 1779280 (mysqld)Status: "Server is operational"Tasks: 41 (limit: 2220)Memory: 368.5MCPU: 2h 21min 6.061sCGroup: /system.slice/mysql.service└─1779280 /usr/sbin/mysqldFeb 02 14:50:21 VM-4-5-ubuntu systemd[1]: Starting MySQL Community Server...
Feb 02 14:50:22 VM-4-5-ubuntu systemd[1]: Started MySQL Community Server.

4. 正式进行程序的部署

4.1 把数据库/数据表都在云服务器上创建好

        当把程序放到云服务器上执行,程序访问的就是云服务器上的数据库了.需要确保数据库里面有数据 (有表,有库),把之前代码中的 db.sql 中的内容 复制到 云服务器的 mysql 客户端中,执行

4.2 针对程序进行打包

        打包之前,还需要确认一下 mysql 相关的配置是否需要修改,这里一般是针对linux上mysql数据库的密码的修改:

        打成 war 包:

 

4.3 把这个 war 上传到 linux 的 tomcat 的 webapps 目录中

        在 linux 中,退出 mysql 控制台界面使用ctrl+d;

        如下图所示,tomcat 会自动针对 war 包进行解压缩,解压缩成功,基本上就是部署成功了.

4.4 通过浏览器来访问

        

最终我们的博客系统就成功的传到了与云服务器上;

ps:本次的内容就到这里了,如果大家感兴趣的话就请一键三连哦!!!

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

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

相关文章

ABAP - SALV教程12 显示图标和提示信息

ALV要求字段的值为图标的需求并不多见&#xff0c;一般都用于红黄绿灯&#xff0c;来表示单据的执行状态&#xff0c;添加图标的方式也可以实现红黄绿灯的功能&#xff0c;也可以参考SALV实现红黄绿灯这篇文章&#xff1a;http://t.csdnimg.cn/Dzx7x效果图SAVL列设置为图标图标…

【Web - 框架 - Vue】随笔 - Vue的简单使用(01) - 快速上手

【Web - 框架 - Vue】随笔 - Vue的简单使用(01) - 快速上手 Vue模板代码 代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>模板</title> </head> <body> <div></di…

新能源车高压线束更换VR虚拟互动教学保障了培训安全可控

随着新能源汽车市场的快速发展&#xff0c;对于新能源汽车检修人才的需求也日益增长。然而&#xff0c;传统的培训模式往往存在一些限制&#xff0c;如培训周期长、成本高、实践机会少等。为了解决这些问题&#xff0c;新能源车检修VR互动培训应运而生&#xff0c;成为一种创新…

Go的安装

一. 下载地址 Go官方下载地址&#xff1a;https://golang.org/dl/ Go中文网&#xff1a;https://go.p2hp.com/go.dev/dl/ 根据不同系统下载不同的包。 二. 配置GOPATH GOPATH是一个环境变量&#xff0c;用来表明你写的go项目的存放路径。 GOPATH路径最好只设置一个&#xff0…

印象笔记 - Markdown 入门指南

一、Markdown 是什么&#xff1f; Markdown 是一种轻量级的「标记语言」&#xff0c;创始人为约翰格鲁伯&#xff0c;用简洁的语法代替排版&#xff0c;目前被越来越多的知识工作者、写作爱好者、程序员或研究员广泛使用。其常用的标记符号不超过十个&#xff0c;相对于更为复…

游戏视频怎么录制?超实用的干货来了!

随着游戏产业的蓬勃发展&#xff0c;游戏视频录制与分享已经成为许多玩家和游戏爱好者展示技巧、分享经验、记录精彩瞬间的重要方式。可是很多人不知道游戏视频怎么录制&#xff0c;本文旨在为广大游戏玩家提供两种简单易用的游戏视频录制方法&#xff0c;这两种方法各有特点&a…

OpenCV开发笔记(七十六):相机标定(一):识别棋盘并绘制角点

若该文为原创文章&#xff0c;转载请注明原文出处 本文章博客地址&#xff1a;https://blog.csdn.net/qq21497936/article/details/136535848 各位读者&#xff0c;知识无穷而人力有穷&#xff0c;要么改需求&#xff0c;要么找专业人士&#xff0c;要么自己研究 红胖子(红模仿…

SinoDB卸载

1.进入卸载目录程序 命令&#xff1a;cd /opt/uninstall/uninstall_ids/ 2.启动卸载程序&#xff0c;开始卸载SinoDB 命令&#xff1a;./uninstallids 我们需要删除 SinoDB 数据库组件和全部的数据库&#xff0c;输入 2 并回车。 3.卸载程序开始运行 4.SinoDB 数据库卸载成功…

音频库及分析软件介绍

搞音频的兄弟必须要看一下的&#xff0c;俗话说&#xff0c;工欲善其事必先利其器&#xff0c;好的音频分析软件&#xff0c;对于音频分析工程师来讲&#xff0c;可谓是非常重要的&#xff0c;下面由小编介绍一下&#xff1a;

DailyNotes个人笔记管理工具

DailyNotes 是记录笔记和跟踪任务的应用程序&#xff0c;使用markdown进行编辑 部署 下载镜像 docker pull m0ngr31/dailynotes创建目录并授权 mkdir -p /data/dailynotes/config_dir chmod -R 777 /data/dailynotes启动容器 docker run -d --restart always --name mynot…

SMiC矩阵将于3月6日正式上线,开启数字化经济新纪元

在数字化浪潮的推动下&#xff0c;全球瞩目的SMiC矩阵将于2024年3月6日正式上线。这一里程碑式的事件标志着数字化经济迈入了一个全新的时代&#xff0c;为思洣客、合作伙伴和整个经济生态带来了前所未有的机遇和挑战。 SMiC矩阵作为引领数字化经济的新力量&#xff0c;始终致…

【Ubuntu 20.04 / 22.04 LTS】最新 esp-matter SDK 软件编译环境搭建步骤

仓库链接&#xff1a;esp-matter SDK官方软件说明&#xff1a;ESP Matter Programming Guide官方参考文档&#xff1a;使用 Matter-SDK 快速搭建 Matter 环境 (Linux) 环境要求 Ubuntu 20.04 或 Ubuntu22.04网络环境支持访问 Gihub 在安装 esp-matter SDK 软件编译环境之前&a…

CAN总线及通讯的工作原理

一、CAN总线 CAN是控制器局域网络(Controller Area Network)的简称&#xff0c; 它是由研发和生产汽车电子产品著称的德国BOSCH公司开发的&#xff0c; 并最终成为国际标准&#xff08;ISO11519&#xff09;&#xff0c;是国际上应用最广泛的现场总线之一。 二、工作原理 …

day13_微服务监控Nginx(微服务集成SBA)

文章目录 1 微服务系统监控1.1 监控系统的意义1.2 SBA监控方案1.3 SBA实战1.3.1 创建SBA服务端1.3.2 微服务集成SBA 1.4 微服务集成logback1.5 配置邮件告警 2 Nginx2.1 Nginx简介2.2 下载和安装2.2.1 方式1&#xff1a;window本地安装2.2.1.1 下载2.2.1.2 安装2.2.1.3 目录结构…

Spring Boot异常处理和单元测试

1.SpringBoot异常处理 1.1.自定义错误页面 SpringBoot默认的处理异常的机制&#xff1a;SpringBoot 默认的已经提供了一套处理异常的机制。一旦程序中出现了异常 SpringBoot 会向/error 的 url 发送请求。在 springBoot 中提供了一个叫 BasicErrorController 来处理/error 请…

[C++]类和对象,explicit,static,友元,构造函数——喵喵要吃C嘎嘎4

希望你开心&#xff0c;希望你健康&#xff0c;希望你幸福&#xff0c;希望你点赞&#xff01; 最后的最后&#xff0c;关注喵&#xff0c;关注喵&#xff0c;关注喵&#xff0c;大大会看到更多有趣的博客哦&#xff01;&#xff01;&#xff01; 喵喵喵&#xff0c;你对我真的…

数据中台开源技术栈:一图看懂全面的数据管理与应用架构

随着数字化时代的到来&#xff0c;数据管理和应用架构变得越来越重要。数据平台作为一个集中管理和利用数据的架构&#xff0c;为组织提供了促进数据驱动决策和业务创新的能力。本文通过一幅图表&#xff0c;将数据平台技术栈的组成部分清晰呈现&#xff0c;助您深入了解数据中…

在NAT模式下,局域网内的其他电脑要访问使用NAT模式的虚拟机或设备

在NAT模式下&#xff0c;局域网内的其他电脑要访问使用NAT模式的虚拟机或设备 可以通过以下几种方式&#xff1a; 1、端口映射&#xff1a;在NAT模式下&#xff0c;你可以配置端口映射&#xff0c;类似于Docker中的端口映射。这样&#xff0c;局域网内的其他电脑就可以通过特…

【机器学习】详解正则化思想

我们的生活当中真正有意义或者有价值的部分可以概括为两句话&#xff1a;一句话是&#xff1a;弄清楚某个东西是怎么一回事&#xff0c;另一句话是&#xff0c;弄清楚某个东西是怎么一回事。头一句话&#xff0c;我们弄清楚的那个东西对于我们而言是未知的&#xff0c;但是已经…

【CSS】简单的抽屉面板展开收起自然过渡效果的css

目录 效果展示css固定梯形按钮至抽屉面板中间梯形按钮css过渡动画 效果展示 1.收起时点击蓝色梯形按钮展开 2. 展开时点击蓝色按钮收起 3.展开收起时需要过渡自然&#xff0c;有抽屉推拉效果 css 固定梯形按钮至抽屉面板中间 .toggle{ position: absolute;left:-21px;top…