主页 > 手机  > 

Linux基础使用和程序部署

Linux基础使用和程序部署

目录

1.Linux

 1.2 Linux的环境搭配

 1.2.1 使用云服务器

1.2.2使用终端软件连接到Linux

 1.3. Linux 常用命令

    1. ls:列出当前目录中的文件和子目

2.pwd:显示当前工作目录的路径

3.cd:改变工作目录,将当前的工作目录改变到指定目录下

 4.touch:创建空文件或更新文件的时间戳

 5.cat:查看目标文件的内容

6.mkdir:创建新目录

7.rm:删除文件/目录

8.cp:复制文件或者目录

9.mv:移动或重命名文件或目录

10.head/tail:显示文件的前几行或后几行

11.vim:文本编辑

12.grep:查找指定字符串,并显示对应的行

13.ps:查看当前系统上运行的进程

14.netstat:查看系统上的网络状态

2.部署Web项目到Linux

2.1环境配置

2.2 构建项⽬并打包

 2.3上传Jar包到服务器,并运行

 2.4开放端口号

 2.5 验证程序

2.6常见的问题:

2.7 结束进程

总结:


1.Linux

Linux的优势: 

开源(意味着免费)稳定 (Linux可以运行很多年,都不会发生重大问题)安全(Linux只有管理员或者特定用户才能访问Linux内核)自由(不会被加强商业产品和服务)社区支持(Linux在全球社区都非常活跃和使用广泛,有很多志愿者在线帮大家解决问题)

下面重点学习Linux的基础命令和项目部署 

 1.2 Linux的环境搭配

主要有四种:

直接安装在物理机上.但是Linux桌面使用起来非常不友好.所以不建议.[不推荐].使用虚拟机软件,将Linux搭建在虚拟机上.但是由于当前的虚拟机软件(如VMWare之类的)存在一些bug,会导致环境上出现各种莫名其妙的问题,比较折腾.[非常不推荐]使用 WSL (Windows Subsystem for Linux).这个是 Windows 近几年开发的新功能,在 Windows系统内集成了一个 Linux.但是目前这个技术还不够成熟.[不推荐].使用云服务器,可以直接在腾讯云,阿里云或华为云等服务器厂商处直接购买一个云服务器.[推荐]  1.2.1 使用云服务器

 云服务器的好处:

        使用云服务器不仅环境搭建简单,避免折腾,同时还有一个最大的好处,部署在云服务器上的项目可以直接被外网访问到,这个时候就和一个公司发布一个正式的网站没有任何区别.也就能让我们自己写的程序真的去给别人去使用.

1.2.2使用终端软件连接到Linux

所谓终端软件就是一类工具软件,可以和远程的主机建立网络连接,从而对主机进行一些操作

 下面就拿 XShell 终端软件举例吧

 第一步:下载安装 XShell

下载地址:家庭/学校免费 - NetSarang Website

第二步:使用XShell 登录主机

在XShell终端下输入:

                ssh   服务器外网ip地址

 1.3. Linux 常用命令     1. ls:列出当前目录中的文件和子目 -a列出目录下的所有文件,包括以.开头的隐含文件。-d将目录象文件一样显示,而不是显示其下的文件。如:ls-d指定目录-k以k字节的形式表示文件的大小。ls-alk指定文件L列出文件的详细信息。-r对目录反向排序。-t以时间排序。-R列出所有子目录下的文件。 (递归) ls -l 2.pwd:显示当前工作目录的路径 pwd 3.cd:改变工作目录,将当前的工作目录改变到指定目录下 #返回上级目录 cd.. #进入用户家目录 cd~ #返回最近访问目录 cd-

 认识Linux目录结构:

Linux是一个树型目录结构

 几个特殊的目录:

/称为根目录.称为当前目录..称为当前目录的上级目录

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

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

使用ctrl+c重新输入: 如果命令或者目录敲错了,可以ctrl+c取消当前的命令

 4.touch:创建空文件或更新文件的时间戳 touch text.txt  5.cat:查看目标文件的内容 cat text.txt 6.mkdir:创建新目录

常用选项:

  -p,--parents 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多级目录 mkdir -p text/text1 7.rm:删除文件/目录

常用选项:

  -f即使文件属性为只读(即写保护),亦直接删除  -i删除前逐一询问确认 -r删除目录及其下所有文件 rm text.txt 8.cp:复制文件或者目录 cp test1.txt test2.txt 9.mv:移动或重命名文件或目录 mv old_name new_name 10.head/tail:显示文件的前几行或后几行 head -10 file_name # 显示文件的前10行 tail -20 file_name # 显示文件的后20行 11.vim:文本编辑

1) 创建文件/打开文件

vim [文件名]

2) 进入插入模式

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

3)保存

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

4)退出

在插入模式下不能退出,需要先回到普通模式. 退出时,分以下情况: ①文件未修改:输入:q,再按下回车,即可退出 ②文件修改并保存:使用:wq同时执行保存和退出. ③文件修改,但不希望保存:使用:wq!进行强制退出

12.grep:查找指定字符串,并显示对应的行

常用选项:

-n<行数>显示的行数-W全字匹配.要求整个单词都完全相同的结果才能匹配出来,而不仅仅是一个单词的一部分. -r 递归查找.可以搜索多级目录下的所有文件.--color 高亮查找到的结果 --include 指定查找某些文件--exclude 指定排除某些文件 rep "hello" Hello1.java 在Hello1中查找 hello字符串 13.ps:查看当前系统上运行的进程

常用选项:

a 显⽰⼀个终端的所有进程 u 以⽤⼾为主的格式来显⽰程序状况 x 显⽰所有程序, 不⽌是会话中的进程 e 显⽰所有进程, 包括系统守护进程 f 显⽰完整格式输出 ps aux #显示系统上所有的进程 ps aux | grep "进程名" ps aux | grep "进程id" 14.netstat:查看系统上的网络状态

常用选项:

-a显示所有正在或不在侦听的套接字-n 显示数字形式地址而不是去解析主机、端口或用户名-p 显示套接字所属进程的PID和名称 netstat -anp netstat -anp | grep "进程名" netstat -anp | grep "端口号" 2.部署Web项目到Linux 2.1环境配置

程序正常运行,需要保证环境和程序都要正确,我们需要先设置环境

数据准备

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

程序配置文件修改

实际工作中,开发环境,测试环境以及生产环境的配置都是不一样的 比如mysql的用户名和密码 我们可以针对不同的环境,设置不同的配置

多平台文件配置

针对不同平台创建不同的配置文件,要求名字为application-XXX.yml或者application-XXX.properties 以下以application-xxX.yml为例

固定格式,只有后面的字母可以修改

在配置文件里写不同的内容  application-dev.yml:

#数据库连接配置 spring: datasource: url: jdbc:mysql://127.0.0.1:3306/java_blog_spring?characterEncoding=utf8&useSSL=false username: root password: 123456 driver-class-name: com.mysql.cj.jdbc.Driver mybatis: # 配置 mybatis xml 的⽂件路径,在 resources/mapper 创建所有表的 xml ⽂件 mapper-locations: classpath:mybatis/**Mapper.xml # 配置打印 MyBatis日志 configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl map-underscore-to-camel-case: true #配置驼峰⾃动转换

application-prod.yml: #数据库连接配置 spring: datasource: url: jdbc:mysql://127.0.0.1:3306/java_blog_spring?characterEncoding=utf8&useSSL=false username: root password: 123456 driver-class-name: com.mysql.cj.jdbc.Driver mybatis: # 配置 mybatis xml 的⽂件路径,在 resources/mapper 创建所有表的 xml ⽂件 mapper-locations: classpath:mybatis/**Mapper.xml # 配置打印 MyBatis日志 configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl map-underscore-to-camel-case: true #配置驼峰⾃动转换 #设置日志文件的文件名 logging: file: name: spring-blog.log

application.yml:

spring: profiles: active: @profile.name@ 从Maven中读取环境配置变量: <profiles> <profile> <id>dev</id> <properties> <profile.name>dev</profile.name> </properties> </profile> <profile> <id>prod</id> <properties> <profile.name>prod</profile.name> </properties> </profile> </profiles>

2.2 构建项⽬并打包

在本地使用maven进行打包

如果Test代码中有与环境配置相关的操作(比如数据库相关的操作),打包会失败,点击下图①处的图标,可以跳过测试点击clean->package

 2.3上传Jar包到服务器,并运行

上传jar包:

直接将打包好的jar包拖入Xshell窗口即可完成文件的上传

 运行程序:

nohup java -jar blog-spring-0.0.1-SNAPSHOT.jar &

 nohup:后台运行程序.用于在系统后台不挂断地运行命令,退出终端不会影响程序的运行.

 语法格式:

nohup Command [ Arg … ] [ &]

 参数说明:

Command:要执行的命令。 Arg:一些参数,可以指定输出文件 &:让命令在后台执行,终端退出后命令仍旧执行

比如:

ohup java -jar blog-0.0.1-SNAPSHOT.jar >/logs &

Linux 可以通过把需要输出的内容写到指定文件中.这样的操作称为"重定向”

 2.4开放端口号 以腾讯云服务器举例:

添加规则:

端口号写需要开放的端口号,多个端口号以逗号分割.

 2.5 验证程序 访问项目:  http://IP:Port/blog_login.html                                                                    IP改为云服务的IP  Port改为项目的端口号按照项目的功能进行验证  2.6常见的问题:

一个程序的正常运行,需要程序的正确和环境的正确.同样的代码在Windows上可以运行成功,不一定在Linux上运行成功.不同的系统对代码的理解和支持是不同的.比如Windows系统对MySQL不区分大小写,Linux区分大小写

服务不能正常访问的原因有很多,主要分以下几方面:

1.服务未启动

a.使用 ps -eflgrep java 查看程序是否在运行 b. 使用 curl http://127.0.0.1:8080/blog_login.html 看看下是否有返回html页面,                              如果有返回,说明程序启动成功了,考虑端口未开放c.如果未启动成功,需要查看对应的日志,根据原因来分析:  数据库不存在表不存在(区分大小写)数据库密码不正确Jdk安装版本不对,或者未安装mysql未设置密码

 2.http端口未开放

检查云服务器防火墙/安全组是否开放相应端口(如8080)

2.7 结束进程

 如果我们需要重启服务,或者重新部署等,都需要先停止之前的服务.

1. 查看当前服务的进程:

s -eflgrep java

 2. 杀掉进程

kill -9 PID 总结: 连接Linux服务器的方式有很多,xshell只是其中一种.xshel是一个客户端,而非服务器Ubuntu软件管理工具是apt,其他的linux发行版本软件包管理工具不同,比如CentOS是使用yum来管理软件的SpringBoot可以使用多个配置文件来完成不同平台的配置.在Window上可以运行成功的代码,在Linux上不一定能运行成功.启动程序需要使用nohup后台运行,需要停止服务时,使用kill命令
标签:

Linux基础使用和程序部署由讯客互联手机栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“Linux基础使用和程序部署