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 , 完成部署. 

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

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

一步步实现知乎热榜采集:Scala与Sttp库的应用

背景 在大数据时代&#xff0c;网络爬虫技术发挥着不可或缺的作用。它不仅能够帮助我们快速地获取互联网上的信息&#xff0c;还能处理和分析这些数据&#xff0c;为我们提供深刻的洞察。知乎&#xff0c;作为中国领先的问答社区&#xff0c;汇聚了各行各业的专家和广大用户的…

30多万汉字词语押韵查询ACCESS\EXCEL数据库

押韵&#xff0c;也作“压韵”。作诗词曲赋等韵文时在句末或联末用同韵的字相押&#xff0c;称为押韵。诗歌押韵&#xff0c;使作品声韵和谐&#xff0c;便于吟诵和记忆&#xff0c;具有节奏和声调美。旧时押韵&#xff0c;要求韵部相同或相通&#xff0c;也有少数变格。现代新…

洪师傅代驾系统开发 支持公众号H5小程序APP 后端Java源码

代驾流程图 业务流程图 管理端设置 1、首页装修 2、师傅奖励配置 师傅注册后,可享受后台设置的新师傅可得的额外奖励; 例:A注册了师傅,新人奖励可享受3天,第一天的第一笔订单完成后可得正常佣金佣金*奖励比例 完成第二笔/第三笔后依次可得正常佣金佣金*奖励比例 完成的第四…

百川大模型拿下国产第一,AI助手「百小应」上线,比Kimi强不少

最近几天&#xff0c;国内 AI 创业公司正在连续刷新大模型的能力上限。 5 月 22 日&#xff0c;百川智能发布最新一代基座大模型 Baichuan 4&#xff0c;同时推出了首款 AI 助手「百小应」。 相较 1 月份发布的 Baichuan 3&#xff0c;新一代模型在各项能力上均有大幅提升&am…

三轴加速度计M-A352AD实现实时的动态监测

地震监测设备如何快速监测到地震波的发生?如何快速地将地震信号传输到系统或设备上&#xff0c;让人快速做出相应对策?如何在恶劣的环境下&#xff0c;仍能保持稳定可靠的监测?其核心之一就是采用了传感器技术和相关设备&#xff0c;我们可以在地震易发生区域或重点观察的区…

最早做“转化医学”的国货护肤品牌,发力了!

文章来自化妆品行业媒体青眼 作者小朱 放眼全球护肤市场&#xff0c;皮肤科学的力量正在前所未有地凸显&#xff0c;多个国际美妆巨头专门设立了皮肤科学部门&#xff0c;国内皮肤科医生参与护肤品牌创建也成为一股风潮。 据青眼不完全统计&#xff0c;近年来&#xff0c;至少…

UI控件与视图层次:探索界面的无限可能

[OC]UI学习笔记 文章目录 [OC]UI学习笔记视图和视图层次结构CGRectUILabelUIButtonUIView控件UIView的层级关系UIWindow定时器和视图移动UISwitch进度条和滑动条控件步进器和分栏控件警告对话框与等待指示器UITextField 视图和视图层次结构 Objective-C中的UI编程主要围绕视图…

WebGL在历史和考古重建中的应用

WebGL&#xff08;Web Graphics Library&#xff09;是一种基于JavaScript的API&#xff0c;用于在浏览器中呈现2D和3D图形。由于其强大的图形处理能力和广泛的兼容性&#xff0c;WebGL在历史和考古重建中的应用具有重要的意义。以下是WebGL在这一领域的主要应用和详细描述。北…

十大品牌落地台灯有用吗?护眼落地灯十大知名品牌

十大品牌落地台灯有用吗&#xff1f;落地台灯作为这几年家长很关注的家电/学生产品&#xff0c;家里有孩子或者是经常面对电子设备的人士&#xff0c;相信都会对其有所了解并且购买了落地台灯&#xff0c;但是还有些家长对落地台灯的认知不够深&#xff0c;以至于还没有给孩子安…

JUC框架(Semaphore、CountDownLatch、CyclicBarrier)

文章目录 Semaphore(信号量)Semaphore介绍Semaphore基本概念Semaphore使用场景Semaphore示例 CountDownLatch &#xff08;计数器/闭锁&#xff09;CountDownLatch 介绍CountDownLatch 基本概念CountDownLatch 使用场景CountDownLatch 基本方法CountDownLatch 示例 CyclicBarri…

用PhpStudy在本地电脑搭建WordPress网站教程(2024版)

对新手来说&#xff0c;明白了建站3要素后&#xff0c;如果直接购买域名、空间去建站&#xff0c;因为不熟练&#xff0c;反复测试主题、框架、插件等费时费力&#xff0c;等网站建成可能要两三个月&#xff0c;白白损失这段时间的建站费用。那么新手怎么建测试网站来练手呢&am…

Redis使用Set实现点赞功能

文章目录 set 数据类型介绍不排序实现排序实现 set 数据类型介绍 Redis中的set类型是一组无序的字符串值。 set通过其独特的数据结构和丰富的命令提供了在存储和处理集合元素方面的一些非常有用的功能。下面列出了主要的set类型命令&#xff1a; SADD key member1 [member2]&a…

Docker 常用命令大全!!

Docker 常用命令 一、启动类1. 启动 docker2. 关闭 docker3. 重新启动 docker4. docker 设置自启动5. 查看 docker 运行状态6. 查看 docker 版本号等信息7. docker 帮助 二、 镜像类1. 查看镜像2. 搜索镜像3. 拉取镜像4. 运行镜像5. 删除镜像6. 加载镜像7. 保存镜像 三、容器类…

Java 类加载过程和双亲委派模型

Java 类加载过程概述 在 Java 中&#xff0c;类装载器把一个类装入 Java 虚拟机中&#xff0c;要经过三个步骤来完成&#xff1a;装载、链接和初始化&#xff0c;其中链接又可以分成校验、准备、解析 Java类加载过程分为如下步骤&#xff1a; 1.装载&#xff08; 加载&#xf…

Go 语言简介 -- 高效、简洁与现代化编程的完美结合

在现代软件开发领域&#xff0c;选择合适的编程语言对于项目的成功至关重要。Go 语言&#xff08;又称 Golang &#xff09;自 2009 年由Google发布以来&#xff0c;以其简洁的语法、高效的并发模型以及强大的性能&#xff0c;迅速成为开发者们的新宠。Go语言不仅融合了传统编译…

统计每个活动的用户访问量,且每个用户仅统计一次

场景&#xff1a;统计每个活动的用户访问量&#xff0c;且每个用户仅统计一次。 首先活动表是已经存在了的&#xff0c;一般情况下&#xff0c;我们都会在创建一个用户访问表&#xff0c;其中唯一主键是用户ID活动ID作为唯一主键 create table user_visist_activity_record(i…

Latex:newcommand

参考文献&#xff1a; latex中自定义的命令———\newcommand-CSDN博客LaTeX技巧924&#xff1a;详解newcommand的参数和默认值 - LaTeX工作室 (latexstudio.net) 文章目录 (re)newcommand自定义的一些命令 (re)newcommand ”定义命令“ 的定义&#xff1a; \newcommand{<…

GTX IP生成及参数详解(高速收发器九)

如下图所示&#xff0c;在IP Catalog中搜索gt&#xff0c;然后双击7 Series FPGAs Transcelvers Wizard打开IP配置界面。 图1 打开7 Series FPGAs Transcelvers Wizard IP 1、配置GT Selection界面 首先进入GT Selection配置界面&#xff0c;这个界面主要关注红框部分。从前文对…

AOP、注解、EL表达、若依权限,Security原理综合分析

AOP、注解、EL表达、若依权限&#xff0c;Security原理综合分析 案例一&#xff1a;更新、创建增强 需求产生 每个表中均有创建时间、创建人、修改时间、修改人等字段。 在操作时候手动赋值&#xff0c;就会导致编码相对冗余、繁琐&#xff0c;那能不能对于这些公共字段在某…

Vue3学习-用 vite@latest 初始化项目后,遇到无法识别 .vue 文件

引入app界面遇到 我的解决方案 1.根目录创建 env.d.ts&#xff0c;添加 declare module "*.vue" {import type { DefineComponent } from "vue"const vueComponent: DefineComponent<{}, {}, any>export default vueComponent }2.在 tsconfig.json…