Linux基础使用和程序部署
- 手机
- 2025-09-14 01:42:02

目录
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.logapplication.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 java2. 杀掉进程
kill -9 PID 总结: 连接Linux服务器的方式有很多,xshell只是其中一种.xshel是一个客户端,而非服务器Ubuntu软件管理工具是apt,其他的linux发行版本软件包管理工具不同,比如CentOS是使用yum来管理软件的SpringBoot可以使用多个配置文件来完成不同平台的配置.在Window上可以运行成功的代码,在Linux上不一定能运行成功.启动程序需要使用nohup后台运行,需要停止服务时,使用kill命令Linux基础使用和程序部署由讯客互联手机栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“Linux基础使用和程序部署”