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

Linux 基本使用和 web 程序部署

目录

Linux 常用命令

ls

cd

认识 Linux 目录结构

绝对路径 vs 相对路径

使用 tab 键补全

使用 ctrl + c 重新输入

pwd

touch

cat

echo

vim

1) 创建文件 / 打开文件

​编辑

2) 进入插入模式

3) 保存

4) 退出

mkdir

rm

mv

cp

man

grep

ps

netstat

搭建 Java 部署环境

JDK

Tomcat

MySQL

部署 Web 项目到 Linux

什么是部署


Linux 常用命令

ls

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

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

常用选项:

例如:
1.查找根目录下的文件:ls /

2.按照列表的方式显示根目录下的文件:ls -l /    或   ll /

注:第一列:该文件的权限(当前用户是否可读可写可执行);第三第四列:文件的拥有者是谁;第五列:文件的大小(只对普通文件有意义);第六列:最近一次修改的时间;最后一列:文件名字;


cd

Linux系统中,磁盘上的文件和目录被组成一棵目录树,每个节点都是目录或文件。
语法: cd 目录名 
功能: 改变工作目录。将当前工作目录改变到指定的目录下. 
举例

认识 Linux 目录结构

几个特殊的目录:
        / 称为根目录
        . 称为当前目录
        .. 称为当前目录的上级目录

1.来到了根目录

这步操作相当我我们在Windows系统中点击了一下此电脑;

2.进入etc目录

3.经过多次的cd操作进入到了一个很深的目录

如上图所示,我们已经进入到了sources.list.d这个目录里面了

4.一路cd .. 回到根目录


绝对路径 vs 相对路径

形如: /usr/share/tomcat/logs/ 以根目录开头的, 称为绝对路径. 
形如: ./logs. 或者 .. 开头的, 称为相对路径.


使用 tab 键补全

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

注意:你当前输入的内容必须是唯一的,按下tab就不能直接补全了。但是按两次tab就能列出所有可以补全的选项

如上图所示,就会把所有在etc这个目录下以a开头的目录给展现出来


使用 ctrl + c 重新输入

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


pwd

语法: pwd
功能:显示用户当前所在的目录
举例:

如上图所示,我们当前所在的目录是/etc/apt/sources.list.d【路径的绝对路径】


touch

语法: touch [选项]... 文件...
功能: touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件。
举例:

如上图所示,我们在初始目录在创建了一个新文件test.txt,此时该文件是一个空文件


cat

语法:cat [选项] [文件] 
功能: 查看目标文件的内容 
常用选项

如上图所示,当我们查看我们上一步刚刚创建的test.txt文件,因为这个文件是空的,所以在控制台上什么也没返回。


echo

功能:打印内容到控制台上/把内容写到文件里

如上图所示

如上图所示,当我们在控制台上输出此echo 'hello' > test.txt命令的时候就会把hello重定向我们刚刚创建好的test.txt文件中,当我们再次查看test.txt文件时就会显示我们刚刚重定向hello内容了。

注:> 就是重定向

如上图所示,这个内容并不会保存在文件中,只是重定向到了这个文件中,随着每一次重定向的内容不同,查看文件中的内容也是不相同的。

如上图说是当我们把”>“改成了”>>“,就是把内容写进文件里头了。

但是,这里的echo只能写一些简单的字符串的内容,如果我们所需要写的东西太多了就不太方便,更不方便修改.


vim

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

1) 创建文件 / 打开文件

如上图所示,当我们输入一个”vim test.txt“的命令,就进入到了这个文本编辑器中,我们从上图也可以看出前四行是我们刚刚通过echo命令重定向进这个文件的内容。

2) 进入插入模式

vim 打开文件后默认是普通模式. 普通模式下键盘的按键表示一些特殊功能的快捷键. (例如按下 j 并不是输入字母 "j", 而是表示光标往下移动一行). 需要进入插入模式才能进行文本编辑. 
使用 i 键可以进入到插入模式. (左下角提示 --INSERT-- ) 然后就可以像记事本一样正常编辑了. 

如第一幅图,当我们摁下i键之后,就会进入这个”INSERT“模式

如第二幅图,就是我们进行编辑的内容

3) 保存

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

如上图所示,当我们保存并退出之后,我们再输入"cat test.txt"这个命令就可以看到我们我们刚刚在vim的文本编辑器所保存的内容了。

4) 退出

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


mkdir

语法:mkdir [选项] dirname...
功能:在当前目录下创建一个名为 “dirname”的目录
常用选项

举例

如上图,目录里面就会多了一个"java109"的目录;

如上图所示,进入java109这个目录之后还可以再创建目录

如上图所示,我们建立多级目录,但是要加上一个-p,上图我们也演示这个多级目录就创建成功了


rm

语法:rm [-f-i-r-v] [dirName/dir]
功能:删除文件或目录
常用选项

举例:

如上图所示,这是删除文件的操作

如上图所示,这是删除目录的操作


mv

移动:剪切、粘贴

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

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

常用选项:

举例: 

如上图,我们发现这个目录之下,有一个”test.txt“文件,还有一个”aaa“的目录,此时如果我们想把这个文件移动到这个目录之下应该怎么做?

如上图1所示,我们在原来的目录里面找不到这个文件了,但是在”aaa“这个目录里面找到了这个文件。【不光是可以移动我们的文件,也可以移动一整个目录,如图2所示】

mv针对文件/目录进行重命名

如上图所示,我们把”test.txt'这个文件移动到上级目录,并改名未“123.txt


cp

复制(复制、粘贴)

cp   要复制的源【要复制的东西】  要复制的目录[要复制到的地方]

如上图所示,我们在根目录下创建了两个目录,一个是123.txt,一个是456.txt。当我们把123.txt复制到456.txt这个目录下后,根目录456.txt目录都有123.txt目录。

注意:拷贝普通文件拷贝目录是不一样的,拷贝目录要加一个-r


man

Linux的命令有很多参数,我们不可能全记住,我们可以通过查看联机手册获取帮助。
语法: man [选项] 命令
常用选项 :


 

举例:

图一是命令,图二是命令执行的结果。按q键就可以退出


以上这些命令都是围绕着目录和文件来展开的


grep

语法:grep [参数]... [文件]... 
功能:用于查找文件中是否包含指定字符串, 并显示对应的行. 
选项:

举例:

如上图所示,我们先利用cat命令看一下这个test.txt文件里面有那些内容,再通过查找“bbb”,既可以查找是否存在该内容,又可以得到该信息再文件中的位置。

grep不仅仅可以在文件中查找,还能搭配其他命令,完成更复杂的操作


ps

语法:ps [参数]...
功能:用于查看当前系统上运行的进程
选项

举例:

这里是可以直接看到整个linux的进程,很多。想要看得具体一点就要搭配grep来进行使用。

如上图所示,我们通过这个命令查看mysql进程的进程id


netstat

语法:netstat [参数]...
功能:查看系统上的网络状态. 

           查看某个端口号是否被某个进程使用

           查询某个进程使用了哪个端口
选项:

举例:

如上图所示,如果直接输出netstat命令,会跳出来很多信息。

如上图所示,如果输入了netstat -anp 这个命令,就会跳出更完整的东西.


搭建 Java 部署环境

JDK

a)使用apt命令查看服务器有哪些软件包 apt list | grep jdk(这个操作需要确保当时是处于root用户)[如果不是管理员,需要使用 sudo su 切换到管理员]

因为小编在电脑Windows上安装的是JDK21,为了使程序部署不出错,两个系统还是安装同一个JDK的版本。

b)使用apt安装软件包 apt install 软件包的名字(软件包的名字不要手动敲,直接复制粘贴就可以了)【复制:ctrl + insert, 粘贴:shift+insert[集体的快捷键可以看你们Xshell中的快捷键管理器中的内容]】

如上图所示即为安装成功了。【输入javac,如果出现以上内容】


Tomcat

由于小编是JDK21版本的,所以对应的tomca-9.0.97版本的【小编Windows上安装的也是这个版本】

1. 下载 Tomcat 压缩包
下载路径可以参考官网 https://tomcat.apache.org/download-80.cgi

小编这里由于之前已经在Windows里面有下载过这个安装包,所以直接将这个安装包给拖过来就好了

1).安装lrzsz

2)拖文件

3)在根目录下查看是否拖动成功

2. 解压缩 Tomcat

3. 修改可执行权限

1)进入bin目录中

2)chmod +x *.sh

如上图所示,所有的.sh文件都变绿

4. 启动 Tomcat

验证启动成功

5. Tomcat 的目录结构

Linux 的 Tomcat 目录结构和 Windows 完全一致. (就是同一个 zip 包解压缩出来的)
 


MySQL

a)查找所有MySQL版本

b)找到要安装的MySQL

c)复制粘贴:apt install mysql-server-8.0

4)查看MySQL是否启动:service mysql status

5)进入MySQL客户端,进行MySQL操作

linux上关于MySQL的操作【执行命令的语句】喝Windows是一样的


部署 Web 项目到 Linux

什么是部署

工作中涉及到的 "环境"
开发环境: 程序猿写代码用的机器. 
测试环境: 测试人员测试程序使用的机器. 一般是退役的部署机器. 
生产环境(线上环境): 最终项目发布时所使用的机器. 对稳定性要求很高. 

把程序拷贝安装到生产环境上, 这个过程称为 "部署". 也叫 "上线". 
这个过程需要拷贝对应的 .class 文件和依赖的资源文件(各种配置文件, html等)
一旦程序部署成功, 那么这个程序就能被外网中千千万万的普通用户访问到. 

部署过程至关重要, 属于程序开发中最重要的一环. 一旦部署出现问题, 极有可能导致严重的事故(服务器不可用之类的). 
为了防止部署出错, 一般公司内部都有一些自动化部署工具(如 Jenkins 等). 当前我们先使用手工部署的方式来完成部署. 


步骤:

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

2.针对程序进行打包【打成war包】(打包之前,还需要确认一下MySQL相关的配置需不需要修改)

3)把这个war包上传到Linux的tomcat的webapps目录中。【当我们把这个war包拖到Linux的这个目录的时候,tomcat会自动针对这个war进行解压缩(解压缩成功意味着部署成功了)】

4)通过浏览器来进行访问了


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

相关文章:

  • 人生感悟8
  • 【测试】每日3道面试题 3/29
  • Advanced Renamer:批量文件重命名工具
  • Vue3组件事件用户信息卡练习
  • SOA、ESB与微服务:架构演进与对比分析
  • 【大前端系列20】JavaScript核心:项目实战从零构建任务管理系统
  • 深入解析 Vue Router 与钩子函数:从核心原理到最佳实践
  • ChemBioServer: 一个在线“药物发现/再利用”的平台
  • 人工智能安全:从技术防御到全球治理的多层次应对策略
  • Error in torch with streamlit
  • JavaWeb——案例(1/20)-准备工作(案例目标、环境搭建、三层架构搭建、规范要求)附带SQL脚本
  • c++ vs和g++下的string结构
  • 某大麦手机端-抢票
  • Mybatis_Plus中常用的IService方法
  • 图解AUTOSAR_SWS_SPIHandlerDriver
  • PyQt6实例_批量下载pdf工具_主线程启用线程池
  • 语音波形编码与参量编码 LPC 的性能分析
  • 开源项目 vue-element-admin本地启动教程
  • 求职笔试题
  • 信号与系统(郑君里)第一章-绪论 1-21 课后习题解答
  • java面向对象从入门到入土
  • 算法题(111):k与迷宫
  • [Mac]利用Hexo+Github Pages搭建个人博客
  • 计算机视觉初步(环境搭建)
  • 对内核fork进程中写时复制的理解记录
  • Servlet注解与使用模板方法设计模式优化oa项目
  • 简单了解一下Unity的MaterialPropertyBlock
  • C++进阶——封装哈希表实现unordered_map/set
  • 基于飞腾/龙芯+盛科CTC7132全国产交换机解决方案
  • MySQL数据库和表的操作之SQL语句