当前位置: 首页 > news >正文

Java Linux --- 基本命令,部署Java web程序到线上访问

文章目录

  • Linux
    • Linux系统使用
    • Linux的常用命令
      • ls,cd,pwd
      • touch,cat,echo
      • makdir,rm
      • mv,cp
      • man
      • grep,ps
      • netstat
    • 搭建Java web程序
      • jdk安装
      • tomcat安装
      • mysql安装
      • 程序的部署

Linux

学习Linux是为了把网站程序,部署上去,能够让别的用户直接访问到,用到外网IP(云服务器)

Linux系统使用

当前写的博客系统程序,只是部署在我们自己的电脑上,其他用户是无法直接访问的(由于NAT机制的存在,导致了IP地址就被分成了内网IP和外网IP)
在这里插入图片描述
云服务器,包括公司中使用的专用服务器,一般都是Linux系统。这个系统的使用,和Windows差异很大(通过命令行来操作的系统)

  1. Linux不仅仅是使用在服务器领域,也用于嵌入式设备和移动端设备。
    在这里插入图片描述
    桌面端(PC)主流的系统仍然是Windows。Linux也是有这种桌面版本的(带有图形化界面的,这种版本使用体验非常差,可能会存在很多的bug)

  2. Linux发行版
    严格来说,Linux不是一个操作系统,而是一个操作系统内核
    操作系统 = 内核 + 配套的应用程序

在这里插入图片描述
3. 如何拥有一个云服务器(Linux环境)
保证你在秋招中,云服务器也是可用的,秋招中需要你把你写好的项目部署到云服务器上,给面试官现场演示
在这里插入图片描述

  1. 如何找到你的云服务器
    在这里插入图片描述
    在这里插入图片描述
  2. 这里更推荐使用更专业的工具,来连接云服务器。
    终端工具种类非常多,但是xshell比较好用
    在这里插入图片描述
    在这里插入图片描述
  3. 进行登录
    在这里插入图片描述
    登录成功与失败
    在这里插入图片描述

Linux的常用命令

ls,cd,pwd

  1. 这里只介绍最常用的命令
    ls(list):列出当前目录下都有哪些内容(文件/目录)
    ls / :直接输入ls,是查看当前目录的情况,跟上 / 意思就是看看 /(根目录) 这个目录下的情况

在这里插入图片描述
ls /
在这里插入图片描述
ls -l / :- 后面是小写 L,不要输入成大写 i 或者数字 1
ls -l == ll(这两个是等价的)
在这里插入图片描述

一个目录的属性:
在这里插入图片描述
在这里插入图片描述
2. cd(change directory):修改(当前)目录,后者说是切换目录
ctrl + l 在linux中可以清屏,可以更好地观察,不是内容不见了
在这里插入图片描述
3. 通过cd的连续操作,已经进入到 /etc/apt/source-list.d中了
pwd:使用pwd可以查看到当前所处的路径的绝对路径
在这里插入图片描述
4. 绝对路径和相对路径
在这里插入图片描述
回到home(用户)目录,下面两个命令是等价的
在这里插入图片描述
后续学习的一些命令,建议都在你自己的主目录下进行操作,不要把你的操作影响到系统目录中的内容

touch,cat,echo

  1. touch:创建空的文件
    在这里插入图片描述
    输入一个命令,没有任何提示,此时就是成功,如果失败,就会告诉你一些报错信息
    no news is good news:没有消息就是好消息

  2. cat:查看文件内容(把文件内容打印到控制台上),和C语言的strcat(字符串拼接)作用是一样的

  3. echo:打印内容到控制台上
    在这里插入图片描述
    单个大于号:把内容写入到文件中,会把原有的内容清空,再重新写入
    两个大于号:是追加写,再原有内容的后面添加上新的内容

  4. vim的使用
    在这里插入图片描述
    (1) 打开文件:vim 文件名
    在这里插入图片描述
    (2) 编辑内容
    在这里插入图片描述
    (3) 保存退出
    在这里插入图片描述

  5. 前面命令的总结:
    在这里插入图片描述

makdir,rm

  1. makdir(make directory):创建目录
    可以创建单级目录,也可以创建多级目录
    在这里插入图片描述

  2. rm(remove):删除文件/目录
    (1) 删除文件
    在这里插入图片描述
    (2) 删除目录
    在这里插入图片描述
    rm -rf /
    在这里插入图片描述
    不小心删除根目录的情况:
    (1) 在这里插入图片描述
    (2)
    在这里插入图片描述

mv,cp

  1. mv(move):移动(剪切,粘贴)
    mv 要移动的源 移动的目标
    mv可以移动文件,也可以移动目录

移动文件
在这里插入图片描述
移动目录
把aaa目录移动到bbb目录下
mv aaa/ bbb/

mv还可以针对文件进行重命名,并移动
这里吧test.txt重命名为了123.txt,并把它移动到上一级目录下了
在这里插入图片描述
也可以再本目录下进行移动并修改名字
mv 123.txt 456.txt

  1. cp(copy):复制(复制,粘贴)
    cp 要复制的源 要复制的目标
    把源复制给目标
    在这里插入图片描述

man

  1. man用来查看命令的具体使用
    man 命令的名字
    使用q退出查看,使用滚轮或者方向键进行查看
    在这里插入图片描述

上述命令都是围绕目录和文件来展开的

grep,ps

  1. grep:字符串匹配/查找
    在这里插入图片描述
  2. ps(process show):展示进程,显示出当前系统上都有哪些进程
    ps aux:查看服务器上的所有进程的情况
    在这里插入图片描述
    对上述命令的总结
    在这里插入图片描述

netstat

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

netstat
netstat -anp:netstat查询的不全,加上-anp选项可以查询更全的信息
在这里插入图片描述
查询某个进程使用了哪个端口号
在这里插入图片描述

查询某个端口号被哪个进程使用了
在这里插入图片描述
想要完成复杂的工作,可以把多个命令,通过 | 的方式组合起来

搭建Java web程序

  1. 如何在Linux系统上搭建Java web程序的运行环境
    比如:写博客系统的时候,不是一个代码就可以运行的,需要有一些其他的程序,把这个环境搭建起来
    (1) JVM(JDK)
    (2) Tomcat
    (3) MySQL 数据库
    Linux中通过命令的方式来安装,我们可以基于包管理器(类似于中央仓库)进行安装

Linux会把一些软件包,放到对应的服务器上,通过包管理器这样的程序,来吧这些软件包给下载安装(但是这里的软件包不一定全,还好向mysql,jdk这些知名的软件还是存在的)

ubuntu 系统,包管理器 apt
centos 系统,包管理器 yum

jdk安装

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

(a) 使用apt命令查看服务器上有哪些软件包
apt list | grep jdk
我们这里统一使用 java8,要保证你电脑上的jdk版本和云服务器上的jdk版本保持一致
在这里插入图片描述
(b) 使用apt安装软件包
apt install 软件包名字

在Linux命令行中,复制 ctrl + insert,粘贴 shift + insert,其实windows上也支持的(这里的复制粘贴是xshell提供的,也可以自己修改一下的)
ctrl + c 的作用是终止当前程序
在这里插入图片描述
如果敲了一个javac,显示如下内容,说明安装好了
在这里插入图片描述
如果是centos,就使用yum
yum list | grep jdk
yum install 软件包名字
带有devel后缀的版本的软件包,才会是完整的jdk

tomcat安装

在这里插入图片描述

  1. 由于Linux上只有tomcat9,我们需要的是tomcat8.5,这就需要我们手动安装tomcat了。并且Tomcat就是基于java来实现的,java是跨平台的。

(a) 只需要把之前在Windows上的Tomcat上传到Linux上即可
把要上传的压缩包,网xshell上一拖,就过去了。

(1) 一次只能拖一个文件,所以打成一个压缩包的格式

(2) 要想能拖上去,需要先安装lrzsz这样的软件包
ubuntu apt install lrzsz
centos yum install lrzsz

lrzsz上有两个命令:
sz把linux上的文件传到Windows
rz把windows上的文件传到linux上

(b) 对zip压缩包进行解压缩
unzip 压缩包名字

ubuntu apt install unzip
centos yum install unzip

在Linux上启动tomcat,使用startup.sh
在这里插入图片描述
© 修改 .sh 文件的可执行权限,让这些 .sh都可执行
先cd到bin目录中
chmod +x *.sh

在这里插入图片描述
在这里插入图片描述
(d) 启动tomcat
还是 cd 到 bin 目录下
sh startup.sh
在这里插入图片描述
(e) 验证启动是否成功
使用ps查看java进程有没有
使用netstat查看8080是否被绑定
访问tomcat的欢迎页面看能否打开

使用 kill 进程id 就可以干掉某个进程
在这里插入图片描述
还可以通过浏览器访问欢迎页面
在这里插入图片描述
云服务器是另外一台电脑
在这里插入图片描述

  1. 可能你不一定能够顺利地打开这个欢迎页面?
    云服务器的防火墙/安全组 确认是否打开
    打开了防火墙,才能访问欢迎页面
    在这里插入图片描述
    登录到云服务器的后台,找到对应的机器,选择防火墙标签页

在这里插入图片描述
把8080这个端口号添加到可以访问的这里
在这里插入图片描述
在这里添加8080这个端口号
在这里插入图片描述

mysql安装

  1. 安装mysql,直接通过apt来安装/yum安装
    在这里插入图片描述

搜索mysql软件包的名字
apt list | grep mysql

安装mysql的命令
apt install mysql-server-8.0

安装完毕之后,一般来说,mysql的服务器就自动启动了
service mysql status:查看mysql的运行状态
在这里插入图片描述
然后输入mysql,进入mysql软件中
show databases;就可以使用数据库了

apt update 可以更新一下库
(刷新一下,能看到更多的软件包)

程序的部署

正式进行程序的部署

  1. 把数据库/数据表都在云服务器上创建好
    当把程序放在云服务器上执行,程序访问的就是云服务器上的数据库了。需要确保数据库里面有数据(有表,有库)

把之前代码中的db.sql中的内容,复制到云服务器的mysql客户端中执行

在这里插入图片描述
2. 针对程序进行打包
(打包之前,还需要确认一下mysql相关的配置会否需要修改)

在这里插入图片描述
打成war包,在pom.xml下进行设置
在这里插入图片描述
3. 把这个war上传到linux的tomcat的webapps目录中
(先退出mysql)

在linux中,退出mysql控制台界面。使用ctrl + d即可。ctrl + d在linux上表示EOF(意思就是输入完了),ctrl + d是一个通用的操作。各种控制台程序的界面都可以使用
ctrl + d 退出
但是exit就不一定能在各种控制台下都能退出了

在这里插入图片描述
4. 通过浏览器进行访问
打开云服务器的博客系统,可能会出现背景图卡顿的情况(服务器网络带宽比较低)

我们的一个web程序在本地电脑上运行正常,不代表部署到云服务器上就正常

5. 登录时的密码错误,登录不上的错误

通过tomcat的日志查找错误
在这里插入图片描述
logs是tomcat的日志
在这里插入图片描述
使用vim打开刚刚修改的文件
在这里插入图片描述
在vim里找到在代码中出现错误的行数
在这里插入图片描述
当前看到的问题是使用 ‘’ ‘’ 密码登录不上去了

解决方案:
(1) 手动给这个数据库设置一个其他的密码,使用这个密码来登录
(2) 可以直接把数据库的验证密码的功能给关闭掉(釜底抽薪)使用这个方案,使用任何密码都能登录了

我们这里使用方案二来解决问题
MySQL跳过密码登录,在Linux上的配置
在这里插入图片描述
mysql的日志出错了
在这里插入图片描述

mysql5和mysql8设置密码的方式是不一样的,上述是用不了方案二,把密码关闭掉,所以只能使用方案一来设置我们的密码了
在这里插入图片描述
此时,只要任何一个用户有网,就都可以通过上述的地址,来访问我们的云服务器了

部署一个程序,是否能够运行成功,不仅仅取决于代码,也取决于你的程序依赖的环境
(对应的tomcat,mysql是否都ok,依赖了一些数据,配置是否都ok)

确定tomcat是否成功运行的命令,在你当前是用户路径的前提下,输入curl 127.0.0.1:8080命令验证tomcat是否是成功运行的
在这里插入图片描述

http://www.dtcms.com/a/441958.html

相关文章:

  • 天安云谷网站建设企业邮箱忘记密码怎么找回
  • SQL 多表查询场景速查:一对一、一对多、多对多
  • 从 0 到 1 搭建 Python 语言 Web UI自动化测试学习系列 7--基础知识 3--常用函数 1
  • Amazon S3 Vectors:向量存储、索引与多亚马逊云科技服务协同的智能桥梁解决方案
  • 第二章 prompt思维链
  • 大模型面经(一) Prompt + RAG + 微调
  • 第一章——了解prompt以及一些基础技巧方法
  • 做牛津布面料在哪个网站找客户找人一起做素材网站
  • 土豆家族工具使用适配表格大全【windows提权】
  • PyQt5 QPushButton组件详解:按钮控件的完整指南
  • Linux中do_wait函数的实现
  • 第1章 线程安全的对象生命期管理
  • Codeforces Round 1027 A. Square Year (2114)
  • 公司网站备案信息查询嵌入式开发培训
  • mysql--核心日志文件详解
  • 营销型网站要多少钱广告联盟app
  • 浙江建设职业技术学院官方网站中信建设有限责任公司资质等级
  • Vidmy 1.0.129| 无限制下载国外视频,支持高速下载、即时抓取高清视频。使用需要科学
  • (CVPR2025)DEIM模型训练自己的数据集教程(基于Pycharm)
  • 13.排序(上)
  • 《KelpBar海带Linux智慧屏项目》
  • 二叉树的层序遍历--力扣
  • 解决Linux下操作无权限问题——chmod: 正在更改...的权限:不允许的操作
  • 哈尔滨论坛建站模板ftp上传网站后怎么弄
  • 使用D3.js画人物关系图
  • 数据结构与算法篇--语义智能指针设计模式
  • 微信小程序入门学习教程,从入门到精通,WXML(WeiXin Markup Language)语法基础(8)
  • 明天好好总结汇总分析博客
  • HTML--在textarea左侧添加行号
  • mysql逻辑备份跟物理备份的区别