Linux 基本使用和 web 程序部署云端

目录

1.Linux发行版

 2.Linux常用命令

ls

pwd

cd

touch 

mkdir

cat 

rm

cp  

mv

man

vim

grep

 ps

netstat

绝对路径 vs 相对路径 

使用 tab 键补全

使用 ctrl + c 重新输入

粘贴与复制快捷键

3.Linux环境搭建

环境搭建方式

使用云服务器

4.搭建Java部署环境

Tomcat

JDK

MySQL

5.部署 Web 项目到 Linux

5.1 数据库建表

5.2 构建项目并打包

5.3 拷贝到 Tomcat 中


1.Linux发行版

Linux 是一个操作系统. Windows "并列" 的关. 严格意义来说只是一个 "操作系统内核".

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

由于 Linux 是一个完全开源免费的内核, 因此有些公司/开源组织又基于 Linux 内核, 提供了不同的配套程. 这就构成了不同的 "发行版".

 2.Linux常用命令

ls

语法 ls [选项] [目录或文件]

功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件将列出文件名以及其他信息

常用选项:

  -a 列出目录下的所有文件,包括以 . 开头的隐含文件。

  -d 将目录象文件一样显示,而不是显示其下的文件。  如: ls –d 指定目录 

  -k k 字节的形式表示文件的大小。 ls –alk 指定文件

  -l 列出文件的详细信息。 

  -r 对目录反向排序。

  -t 以时间排序。

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

pwd

语法: pwd

功能:显示用户当前所在的目录 

cd

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

 : cd 目录名

功能: 改变工作目录。将当前工作目录改变到指定的目录下. 

举例 

cd .. : 返回上级目录cd ~:进入当前用户的主目录cd -:返回最近访问目录

认识 Linux 目录结构

Linux 是一个树形目录结构.

在 Linux 中有一些特殊目录具有特定含义,比如:

  1. /(根目录):整个文件系统的起始点。
  2. /home:通常存放用户主目录。
  3. /bin 和 /sbin:分别存放普通用户和系统管理员常用的可执行命令。
  4. /etc:系统配置文件的存放地。
  5. /var:存放经常变化的数据,如日志等。
  6. /usr:包含系统软件资源等。
  7. /proc:虚拟文件系统,反映系统运行状态。
  8. /dev:设备文件目录。

touch 

语法: touch [选项]... 文件...

功能: 创建一个空文件。如果指定的文件不存在,使用“touch”命令会创建一个新的空文件。更新文件的时间戳。如果指定的文件已经存在,命令会将该文件的访问时间和修改时间更新为当前时间。

举例:

touch test.txt

mkdir

语法 mkdir [选项] dirname...

功能:在当前目录下创建一个名为 dirname的目录,

“mkdir dirname”:直接创建一个名为“dirname”的目录。

“mkdir -p parent/dir”:可以一次性创建多级嵌套的目录,若父目录不存在也会自动创建。

举例:

mkdir –p test/test1 : 递归建立多个目录

cat 

语法 cat [选项] [文件]

功能: 查看目标文件的内容

 -n 对输出的所有行编号、多个文件可连接查看

cat test.txt

rm

语法 rm [-f-i-r-v] [dirName/dir]

功能:删除文件或目录

  -f 使文件属性为只读(即写保护),亦直接删除 

  -i 删除前逐一询问确认

  -r 删除目录及其下所有文件

举例:

rm -r test .txt

cp  

语法 cp [选项] 源文件或目录 目标文件或目录 功能: 复制文件或目录

说明: cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息 

  -f --force 强行复制文件或目录, 不论目的文件或目录是否已经存在 

  -i --interactive 覆盖文件之前先询问用户

cp test1.txt test2.txt

mv

语法: mv [选项] 源文件或目录 目标文件或目录

功能:(move)

1. mv命令中第二个参数类型的不同(是目标文件还是目标目录),  mv命令将文件重命名或将其移至一个新的目录中。

2. 当第二个参数类型是文件时, mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目 录名),它将所给的源文件或目录重命名为给定的目标文件名。

3. 当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个, mv命令将各参数指定的源文件均移至目标目录中

  -f force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖

  -i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!

mv test1.txt test2.txt

man

Linux的命令有很多参数,我们不可能全记住,我们可以通过查看联机手册获取帮助。

语法: man [选项] 命令

查看ls相关使用说明:

man ls

vim

vim 是一个知名的文本编辑器. 前面学习的 cat, less, head, tail 等命令只能查看文本, 不能编辑文本. 使用 vim 就可以进行编辑了.

vim 就相当于 Windows 的记事本. 只不过功能比记事本强大一些.

1) 创建文件 / 打开文件

vim [文件名]

2) 进入插入模式

vim 打开文件后默认是普通模式. 普通模式下键盘的按键表示一些特殊功能的快捷. (例如按下 j 并不是输入字母 "j", 而是表示光标往下移动一行).需要进入插入模式才能进行文本编辑.

使用 i 键可以进入到插入模式. (左下角提示 --INSERT-- ) 然后就可以像记事本一样正常编辑了.

3) 保存

在插入模式下不能保存文件, 需要先回到 普通模式 . 按下  Esc  回到普通模式. 在普通模式下输入  :w , 再按下回车, 即可保存文件.

4) 退出

在插入模式下不能退出, 需要先回到普通模式.  在普通模式下输入  :q , 再按下回车, 即可退.

    也可以直接使用  :wq  同时执行保存和退出.

grep

语法:grep [参数]... [文件]...

功能:用于查找文件中是否包含指定字符串, 并显示对应的行. 

选项

  -n<行数> 显示的行数

  -w 全字匹配. 要求整个单词都完全相同的结果才能匹配出来, 而不仅仅是一个单词的一部分. 

  -r 递归查找. 可以搜索多级目录下的所有文件.

  --color 高亮查找到的结果

  --include 指定查找某些文件      

  --exclude 指定排除某些文件

grep "hello" Hello.java

 ps

语法: ps [参数]...

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

  a 显示一个终端的所有进程

  u 以用户为主的格式来显示程序状况

  x 显示所有程序,不以终端机来区分

ps aux   # 显示系统上所有的进程 
ps aux | grep "进程名"
ps aux | grep "进程id"

netstat

语法: netstat [参数]...

功能:查看系统上的网络状态. 

  -a 显示所有正在或不在侦听的套接字

  -n 显示数字形式地址而不是去解析主机、端口或用户名

  -p 显示套接字所属进程的PID和名称

netstat -anp
netstat -anp | grep "进程名" 
netstat -anp | grep "端口号"

绝对路径 vs 相对路径 

相对路径和绝对路径

使用 tab 键补全

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

使用 ctrl + c 重新输入

如果命令或者目录敲错了, 可以ctrl + c取消当前的命令.

粘贴与复制快捷键

复制命令:Ctrl+Insert 组合键或用鼠标选中即是复制

粘贴命令:Shift+Insert 组合键或单击鼠标滚轮即为粘贴

3.Linux环境搭建

环境搭建方式

1. 直接安装在物理机上. 但是由于 Linux 桌面使用起来非常不友好. [不推荐].

2. 使用虚拟机软件, Linux 搭建在虚拟机上. 但是由于当前的虚拟机软件(VMWare 之类的)存在一 bug ,会导致环境上出现各种莫名其妙的问题, 比较折腾. [非常不推荐]

3. 使用 WSL (Windows Subsystem for Linux). 这个是 Windows 近几年开发的新功能, Windows 系统内集成了一个 Linux.但是目前这个技术还不够成熟. [暂时不推荐].

4. 使用云服务器, 可以直接在腾讯云, 阿里云等服务器厂商处直接购买一个云服务器. [推荐]

使用云服务器

使用云服务器并设置安全组,避免后期通过终端软件连接不上Linux,例如:

这边要确认端口22和端口8080允许被访问,不然后期终端软件和Tomcat连接不上

 记得重新设置密码,不要太简单,不然容易被黑客攻击

4.搭建Java部署环境

Tomcat

1. 下载 Tomcat 压缩包

下载路径可以参考官网 Apache Tomcat® - Apache Tomcat 8 Software Downloads

下载过后可以直接拖动压缩包到控制台,前提是在Linux上下载了Lrzsz 

第一步:更新库

sudo apt-get update

第二步:下载lrzsz

sudo apt install lrzsz

2. 解压缩 Tomcat

# 使用 unzip 命令解压缩
unzip apache-tomcat-8.5.47.zip

3. 修改可执行权限 

先到bin目录下

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

 4. 启动 Tomcat

./startup.sh

JDK

直接使用apt命令安装:

apt-cache search java11

选择安装的JDK版本

sudo apt-get install openjdk-11-jdk

安装完成后查看jdk版本:

java -version

MySQL

 使用 apt 命令安装mysql

#1、更新安装包管理工具
sudo apt-get update#2、安装 mysql数据库,过程中的选项选择 y 
sudo apt-get install mysql-server

要修改一些配置,具体参考下列文章

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

5.部署 Web 项目到 Linux

工作中涉及到的 "环境"

  开发环境: 程序猿写代码用的机器.

  测试环境: 测试人员测试程序使用的机器. 一般是退役的部署机器.

  生产环境(线上环境): 最终项目发布时所使用的机器. 对稳定性要求很高.

把程序拷贝安装到生产环境上, 这个过程称为 "部署". 也叫 "上线".

这个过程需要拷贝对应的 .class 文件和依赖的资源文件(各种配置文件, html) 一旦程序部署成功, 那么这个程序就能被外网中千千万万的普通用户访问到.

5.1 数据库建表

按照之前的数据库建表脚本, 在服务器上运行, 建立相同的表结构.

mysql -u[数据库用户名] -p[数据库密码] < [数据库脚本].sql

5.2 构建项目并打包

使用 idea maven 针对项目进行打包.双击package

5.3 拷贝到 Tomcat

war 拷贝到 Tomcat webapps 目录中.

稍等片刻, Tomcat 会自动解压缩 war , 完成部署. 

注意: 如果该项目之前部署过, 需要先删除之前的包.

 

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

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

相关文章

《计算机网络微课堂》3-11 虚拟局域网 VLAN

本节课我们介绍虚拟局域网 VLAN 的基本概念。 ‍ 3.11.1 虚拟局域网 VLAN 概述 在之前课程中我们已经介绍过了以太网交换机自学习和转发帧的流程&#xff0c;‍‍以及为避免网络环路而产生的生成树协议。 以太网交换机工作在数据链路层&#xff0c;‍‍也包括物理层&#xf…

最大子矩阵+01矩阵

最大子矩阵 题目 思路 确定一个矩阵中的子矩阵&#xff0c;只需要确定矩阵对角线上两点的坐标即可&#xff0c; 在确定了子矩阵之后&#xff0c;还需要计算子矩阵中各元素之和&#xff0c;如果按照常规的循环方法来解决&#xff0c;时间复杂度是O(N^6)&#xff0c;对于本题20…

大作业爬取手机数据,实现手机推荐系统以及朋友圈手机论坛

1、功能简介 &#xff08;1&#xff09;用户注册与用户登录 &#xff08;2&#xff09;手机搜索、手机比拼、手机个性化推荐 &#xff08;3&#xff09;点击搜索的手机图片会就用户行为&#xff0c;轮播展示用户行为&#xff0c;推荐点击次数靠前的手机 &#xff08;4&#xf…

【云原生】K8s 管理工具 kubectl 详解(三)

金丝雀发布/灰度发布&#xff08;Canary Release&#xff09; 一、金丝雀发布简介 Deployment控制器支持自定义控制更新过程中的滚动节奏&#xff0c;如“暂停&#xff08;pause&#xff09;”或“继续&#xff08;resume&#xff09;”更新操作。比如等待第一批新的Pod资源创…

c语言----函数

前言 欢迎来到我的博客 个人主页:北岭敲键盘的荒漠猫-CSDN博客 本文主要整理c语言中函数的相关知识点 适合有编程基础的人快速掌握。。。。 函数分类 系统函数: 系统内置的函数,include包含进入之后可以直接使用 用户函数: 用户自定义的函数&#xff0c;自己写。 用户函数…

探秘NumPy的奥秘:元素级操作与广播机制

新书上架~&#x1f447;全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我&#x1f446;&#xff0c;收藏下次不迷路┗|&#xff40;O′|┛ 嗷~~ 目录 一、NumPy基础与元素级操作 元素级操作的引入 元素级操作详解 广播机制初探 二、NumPy矩…

Linux操作指令大全

目录 &#x1f349;引言 &#x1f349; 基础命令 &#x1f348;pwd &#x1f348;cd &#x1f348;ls &#x1f348;mkdir &#x1f348;rmdir &#x1f348;cp &#x1f348;mv &#x1f348;rm &#x1f349; 文件操作命令 &#x1f348;cat &#x1f348;tac …

深度神经网络——什么是混淆矩阵?

概述 混淆矩阵是一种在机器学习和数据科学中广泛使用的分析工具&#xff0c;用于评估分类模型的性能。它通过比较实际类别和模型预测的类别来提供模型性能的详细信息。以下是混淆矩阵的一些关键点&#xff1a; 结构&#xff1a;混淆矩阵是一个表格&#xff0c;通常有两行两列&…

stm32-USART串口外设

配置流程 初始化配置 1.开启时钟&#xff08;打开USART和GPIO的时钟&#xff09; void RCC_AHBPeriphClockCmd(uint32_t RCC_AHBPeriph, FunctionalState NewState); void RCC_APB2PeriphClockCmd(uint32_t RCC_APB2Periph, FunctionalState NewState); void RCC_APB1Periph…

游戏子弹类python设计与实现详解

新书上架~&#x1f447;全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我&#x1f446;&#xff0c;收藏下次不迷路┗|&#xff40;O′|┛ 嗷~~ 目录 一、引言 二、子弹类设计思路 1. 属性定义 2. 方法设计 三、子弹类实现详解 1. 定义子弹…

ubuntu openvoice部署过程记录,解决python3 -m unidic download 时 unidic无法下载的问题

github给的安装顺序&#xff1a; conda create -n openvoice python3.9 conda activate openvoice git clone gitgithub.com:myshell-ai/OpenVoice.git cd OpenVoice pip install -e .安装MeloTTS: pip install githttps://github.com/myshell-ai/MeloTTS.git python -m unid…

新能源汽车的电驱热管理

前言 新能源汽车的电驱热管理是指维持电动汽车电池、电机和电控系统在适宜的工作温度范围内&#xff0c;保障车辆高效、安全、稳定运行的技术方案。随着新能源汽车的快速发展和普及&#xff0c;电驱热管理技术也日益成为关注焦点。本文将从电池、电机和电控系统三个方面介绍新…

Studio 3T 2024.3 (macOS, Linux, Windows) - MongoDB 的专业 GUI、IDE 和 客户端,支持自然语言查询

Studio 3T 2024.3 (macOS, Linux, Windows) - MongoDB 的专业 GUI、IDE 和 客户端&#xff0c;支持自然语言查询 The professional GUI, IDE and client for MongoDB 请访问原文链接&#xff1a;https://sysin.org/blog/studio-3t/&#xff0c;查看最新版。原创作品&#xff…

智能合作:多AI协同助力传统工作流

背景介绍 红杉资本2024 AI AGENT大会上吴恩达再次介绍了AI四大设计模式即&#xff1a; 反思&#xff08;Reflection)&#xff1b;工具使用&#xff08;Tool use&#xff09;&#xff1b;规划&#xff08;Planning)&#xff1b;多智能体协作(Multi-agent collaboration)&#…

基于深度学习和去卷积的盲源分离方法在旋转机械上的应用

关键词&#xff1a;预测性维护、盲源分离、振动分析、传递函数移除、二阶循环平稳性、轴承监测、机器学习 振动是旋转机械中主要的故障指示器&#xff0c;它们主要来源于两个方面&#xff1a;一个是与齿轮相关的振动&#xff08;主要源于齿轮啮合过程中的冲击和不平衡负载&…

【云原生--K8S】K8S python接口研究

文章目录 前言一、搭建ubuntu运行环境1.运行ubuntu容器2.拷贝kubeconfig文件二、python程序获取k8s信息1.获取node信息2.获取svc信息3.常用kubernetes API总结前言 在前面的文章中我们都是通过kubectl命令行来访问操作K8S,但是在实际应用中可能需要提供更方便操作的图形化界面…

(完全解决)Python字典dict如何由键key索引转化为点.dot索引

文章目录 背景解决方案基础版升级版 背景 For example, instead of writing mydict[‘val’], I’d like to write mydict.val. 解决方案 基础版 I’ve always kept this around in a util file. You can use it as a mixin on your own classes too. class dotdict(dict)…

浅析深度学习模型的鲁棒性

鲁棒性是指系统或者事物在面对各种不确定性、干扰、变化或攻击时能够保持稳定性和有效性的能力。在计算机科学领域&#xff0c;鲁棒性通常指的是软件、算法或系统在面对各种异常情况或者输入变化时能够正确地运行或者提供合理的输出的能力。 举个例子&#xff0c;一个鲁棒性强的…

【数据结构课程学习】二叉树_堆:Lesson2

&#x1f381;个人主页&#xff1a;我们的五年 &#x1f50d;系列专栏&#xff1a;数据结构课程学习 &#x1f389;欢迎大家点赞&#x1f44d;评论&#x1f4dd;收藏⭐文章 目录 1.二插树的概念和结构 &#x1f697;二叉树的概念&#xff1a; &#x1f697;特殊的二叉树&am…

LVS精益价值管理系统 DownLoad.aspx 任意文件读取漏洞复现

0x01 产品简介 LVS精益价值管理系统是杭州吉拉科技有限公司研发的一款专注于企业精益化管理和价值流优化的解决方案。该系统通过集成先进的数据分析工具、可视化的价值流映射技术和灵活的流程改善机制&#xff0c;帮助企业实现高效、低耗、高质量的生产和服务。 0x02 漏洞概述…