北京的网站建设,北京网站开开发公司电话,做亚马逊有看数据的网站吗,四川油建公司官网目录 1.Linux 1.2 Linux的环境搭配 1.2.1 使用云服务器
1.2.2使用终端软件连接到Linux 1.3. Linux 常用命令 1. ls#xff1a;列出当前目录中的文件和子目
2.pwd#xff1a;显示当前工作目录的路径
3.cd#xff1a;改变工作目录#xff0c;将当前的工作目录改变到指定目…目录 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键来尝试补全加快效率. 使用ctrlc重新输入 如果命令或者目录敲错了可以ctrlc取消当前的命令 4.touch创建空文件或更新文件的时间戳
touch text.txt5.cat查看目标文件的内容
cat text.txt6.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_name10.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?characterEncodingutf8useSSLfalseusername: rootpassword: 123456driver-class-name: com.mysql.cj.jdbc.Drivermybatis:# 配置 mybatis xml 的⽂件路径在 resources/mapper 创建所有表的 xml ⽂件mapper-locations: classpath:mybatis/**Mapper.xml# 配置打印 MyBatis日志configuration:log-impl: org.apache.ibatis.logging.stdout.StdOutImplmap-underscore-to-camel-case: true #配置驼峰⾃动转换 application-prod.yml #数据库连接配置
spring:datasource:url: jdbc:mysql://127.0.0.1:3306/java_blog_spring?characterEncodingutf8useSSLfalseusername: rootpassword: 123456driver-class-name: com.mysql.cj.jdbc.Drivermybatis:# 配置 mybatis xml 的⽂件路径在 resources/mapper 创建所有表的 xml ⽂件mapper-locations: classpath:mybatis/**Mapper.xml# 配置打印 MyBatis日志configuration:log-impl: org.apache.ibatis.logging.stdout.StdOutImplmap-underscore-to-camel-case: true #配置驼峰⾃动转换
#设置日志文件的文件名
logging:file:name: spring-blog.log application.yml spring:profiles:active: profile.name从Maven中读取环境配置变量: profilesprofileiddev/idpropertiesprofile.namedev/profile.name/properties/profileprofileidprod/idpropertiesprofile.nameprod/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//IPPort/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命令