第六章 Linux系统操作使用
在测试过程中,经常会遇到抛出异常或报错的情况,这时候我们就需要对出现的问题进行一个初步定位
第一,查看前端日志
F12开发者工具是浏览器自带的一个开发调试工具,因为可以用F12快捷键直接启动,所以简称为F12工具。
也可以手动在菜单里:更多工具里-->开发者工具,点击可以直接启动
F12 network网络查询(记录了前后端的交互)---重点,
前后端信息通过接口传输,network记录了接口信息(请求头、请求体、响应体),
可以通过看前端发送的请求 和 后端收到的响应,定位这个bug是前端bug还是后端bug
第二,通过抓包来看请求和响应
抓包工具fiddler,Charles等进行抓包 (后续单独讲)
我们主要关注的有三个东西:响应状态码,请求(请求行,请求方法,IP端口,资源路径等),响应(响应数据格式,错误码,错误码描述和给出的接口文档规范进行对比)
第三,去数据库执行SQL语句,检查数据落地
第四,Linux查看服务器日志
我们到后端服务器查看日志,错误日志有几个常用的关键字:error,exception,failed,invalid,用查看日志的指令加上grep这些关键词来定位到异常的方法
比如有一个test.log日志,要在里面找到出现error和exception这两个错误的位置,那么就可以用 cat-n test.log | grep"error"命令来查询
注释:
cat 是常用的查看日志命令,对于比较小的日志文件,可以直接用cat 展开内容
-n 参数表示对所有输出的行号进行编号
| 竖杠属于管道符,一般和grep搭配使用,所谓的管道符就是把符号左边的命令,也就是本来要打印到终端的信息,当成右边命令的操作对象
另外应用场景二:
当项目不能访问时,登录Linux服务器,看项目是不是启动着
ps –ef | grep java 查看当前服务器 java 应用
应用场景三:
有时会做下项目的部署
打包好项目包,上传到我们的tomcat服务器上去,然后修改项目的配置信息,接着去启动我们的tomcat
那么接下来就了解下Linux相关内容
Linux 系统中一切皆文件
Linux 目录结构:‘ / ’根目录 ,挂载点(Linux中的磁盘文件系统的入口目录)
常见Linux命令
查看日志(区分大小写的)
Shell可以看成是一个命令解释器,为我们提供了交互式的文本控制台界面,我们可以通过终端控制台来输入命令,由shell进行解释并最终交给内核执行。(shell 命令解释层)
一、 登录服务器(Linux终端控制台)
菜单+R 调出运行窗口,输入cmd
登入服务器:ssh account@ip,
ssh root@192.168.102.216
itg 密码:0018$0018bB
C:\Program Files\Git\bin
151,线上:Pass1234
二、 基本linux 命令:
①帮助命令
【man 命令】 manual 手册 获取外部命令的帮助信息 如ls
【help 命令】获取shell内置命令的帮助信息 如cd
【命令--help】 获取外部命令的帮助信息
【type 命令】判断命令是内置命令还是外置命令
②常用快捷键
【CTRL+c】停止进程
【CTRL+l】清屏,等同于【clear】,再往上翻还可以看到历史信息,彻底清屏是【reset】
善用tab键 会给提示(更重要的是可以防止敲错)
上下键 查找执行过的命令
③文件目录类
【pwd】 打印当前的工作目录的绝对路径 (‘ / ’根目录 )
【ls】 list 查看当前目录下文件 ,
【ls -l -h -a】 -l long 以长列表的形式展示信息 -h human 以人类易读的方式展示 -a all全部的文件,连同隐藏档(开头为.的文件),一起列出来
【ll 】同【ls -l 】
【cd+ 文件名】 进入具体文件目录
【cd+/user/bin】使用绝对路径进入具体文件目录
【cd .. 】返回上一级目录
【mkdir】创建新的目录
【rmdir】 删除目录
【touch】创建一个空文件
【cp 源文件 目标文件】copy,复制源文件到目标文件,会询问是否覆盖,Y覆盖,N不覆盖
【\cp 源文件 目标文件】直接覆盖
【-r】递归复制整个文件夹,将其子文件夹及子文件一起完整复制
【rm 要删除的文件】删除文件或目录
【-r】递归删除目录中的所有内容
【-f】强制执行删除操作,而不提示用于进行确认
【-v】显示指令的详细执行过程
【rm-rf/*】删库跑路 删除根目录下的所有内容
【mv 旧文件 新文件】重命名
【mv 旧文件 路径】移动文件目录
【mv 旧文件 路径 新文件】移动文件并重命名
④查看文件内容
【grep ‘查找的字符串’】 【grep "yyy"】查看日志是否包含 yyy 字符串,单双引号都可
【cat xxx 】常用的查看日志命令,对于比较小的日志文件,可以直接用cat 展开内容
【-n 】显示输出行数
【-i 】忽略大小写
【grep -v ‘字符串’ 】反向选择,过滤字符串不显示
例子:【cat test.log | grep"error"】【grep "error" test.log】【grep-n "error" test.log】查看test.log日志文件中包含error的内容
【grep-i "error" test.log】查看test.log日志文件中包含error,ERROR的内容
【grep-v "error" test.log】查看test.log日志文件中不包含error的内容
【more 要查看的文件】文件内容分屏查看器 查看大文件
空格键--向下翻一页
回车键--向下翻一行
q键退出
CTRL+F 向下滚动一屏
CTRL+B 返回上一屏
= 输出当前行的行号
:f 输出文件名和当前行的行号
【less 要查看的文件】分屏显示文件内容,查看小文件 并不是一次将整个文件加载之后才显示,二十根据现实需要加载内容,对于显示大型文件具有较高的效率
空格键--向下翻一页
向上箭头或向下箭头-一行一行
=输出当前行的行号
/字串 向下搜索【字串】的功能 【n:】向下查找;【N:】向上查找
?字串 向上搜索【字串】的功能 【n:】向下查找;【N:】向上查找
q键退出
【echo 想输出的内容】直接在控制台输出
【echo hello world】运行结果:hello world
【echo “想输出的内容”】空格等内容可输出
【echo “hello world”】运行结果:hello world
【echo “hello\tworld”】运行结果:hello\tworld
【echo -e “想输出的内容”】支持反斜线控制的字符转换
【echo -e “hello\tworld”】运行结果:hello world
控制字符
\\ 输出\本身
\n 换行符
\t 制表符,也就是tab键
【>】输出重定向
ls -l > 文件 列表的内容写入文件中(覆盖写)
cat 文件1> 文件2 将文件1的内容覆盖到文件2
【>>】追加
ls -al >> 文件 列表的内容追加到文件中(追加,写在末尾)
echo “内容” >> 文件 将内容添加到文件1
【head】查看文件的前N行内容 head - 20 文件名
【tail 文件名】默认查看文件的后10行内容
【 tail – 500 文件名】查看文件的后500行内容
【tail –f 文件名 】 查看动态日志 跟踪日志状态 打开具体文件,实时刷新
Ctrl + c 退出
vim/vi 打开具体文件(小的文件可以用cat)
: set nu 显示行号
【[Ctrl] + f】 屏幕向下移动一页(相当于 Page Down 键)
【[Ctrl] + b】 屏幕向上移动一页(相当于 Page Up 键)
【G】 光标移动到文件的最后一行(第一个字符处)
【nG】 n 为数字(下同),移动到当前文件中第 n 行
【gg】 移动到文件的第一行,相当于"1G"
【/word】 在文件中查找内容为 word 的字符串(向下查找)
【?word】 在文件中查找内容为 word 的字符串(向上查找)
【[n]】 表示重复查找动作,即查找下一个
【[N]】 反向查找下一个
:I 进入编辑
:wq 保存
:q!不保存退出
:q 退出
【ln】软链接
进程管理:
任务管理器 CTRL +alt+delete
【ps】 查看当前用户管理和使用的正在运行的进程
【ps aux | grep xxx】查看系统中所有进程
【ps -ef | grep xxx】可以查看子父进程之间的关系

jps 查看当前服务器 java 进程
【top】
查看进程编号使用ps命令
管道符,一般和grep搭配使用
查看pid进程编号
kill命令杀死进程
统计文件大小命令:du
查看磁盘大小:df
查看网络连通情况:ping ip或者ping 域名
查看系统资源占用情况:top
3、 cat && 浏览器查看 http 请求
安装 cat 插件
查看 http 请求
资源地址、请求头,请求参数、请求方式,返回结果,cat 插件
查看服务器响应速度
ssh root@192.168.102.73
itg 密码:0018$0018bB
cd /data
cd /data/applogs
ls
cd kingkong-pc-web
ls
cd logs
ls
cd 租户名
ls
tail –f app.log
tail -f 日志文件 | perl -pe 's/(关键词)/\e[1;颜色$1\e[0m/g'
tail -f app.log | perl -pe 's/(Job 热启动)/\e[1;31m$1\e[0m/g' 用红色标注出关键字
tail -f app.log | grep ' integrationLog'
打日志方法:
import org.slf4j.LoggerFactory;
import org.slf4j.Logger;
Logger logger = LoggerFactory.getLogger(getClass());
SObjectFacade data = context.data;
Long userId = context.userId;
try
{
// 执行自定义事件代码
logger.info("当前数据 Oid=" + data.getOid());
logger.info("当前操作用户 ID=" +userId);
}
Ctrl+F12 找方法
重启服务器方法:
第一步,登录服务器,输入完整路径:
cd /usr/local/tomcat/kingkong-pc-web/bin
./startup.sh
第二步,输入 Jps:
复制‘显示信息中 :Bootstrap 前的编号’
第三步,?为上一步的编号
kill -9 ?
第四步,查看日志
cd /usr/local/tomcat/kingkong-pc-web/logs
tail -f catalina.out
cd /data/applogs /kingkong-pc-web/logs
系统资源监控命令
项目环境部署(简历写的话)
docker容器技术--相关命令