第六章 Linux系統(tǒng)操作使用
在測試過程中,經(jīng)常會遇到拋出異常或報錯的情況,這時候我們就需要對出現(xiàn)的問題進行一個初步定位
第一,查看前端日志
F12開發(fā)者工具是瀏覽器自帶的一個開發(fā)調(diào)試工具,因為可以用F12快捷鍵直接啟動,所以簡稱為F12工具。
也可以手動在菜單里:更多工具里-->開發(fā)者工具,點擊可以直接啟動
F12??network網(wǎng)絡(luò)查詢(記錄了前后端的交互)---重點,
前后端信息通過接口傳輸,network記錄了接口信息(請求頭、請求體、響應(yīng)體),
可以通過看前端發(fā)送的請求 和 后端收到的響應(yīng),定位這個bug是前端bug還是后端bug
第二,通過抓包來看請求和響應(yīng)
抓包工具fiddler,Charles等進行抓包 (后續(xù)單獨講)
我們主要關(guān)注的有三個東西:響應(yīng)狀態(tài)碼,請求(請求行,請求方法,IP端口,資源路徑等),響應(yīng)(響應(yīng)數(shù)據(jù)格式,錯誤碼,錯誤碼描述和給出的接口文檔規(guī)范進行對比)
第三,去數(shù)據(jù)庫執(zhí)行SQL語句,檢查數(shù)據(jù)落地
第四,Linux查看服務(wù)器日志
我們到后端服務(wù)器查看日志,錯誤日志有幾個常用的關(guān)鍵字:error,exception,failed,invalid,用查看日志的指令加上grep這些關(guān)鍵詞來定位到異常的方法
比如有一個test.log日志,要在里面找到出現(xiàn)error和exception這兩個錯誤的位置,那么就可以用 cat-n test.log?| grep"error"命令來查詢
注釋:
cat 是常用的查看日志命令,對于比較小的日志文件,可以直接用cat 展開內(nèi)容
-n 參數(shù)表示對所有輸出的行號進行編號
?|? 豎杠屬于管道符,一般和grep搭配使用,所謂的管道符就是把符號左邊的命令,也就是本來要打印到終端的信息,當(dāng)成右邊命令的操作對象
另外應(yīng)用場景二:
當(dāng)項目不能訪問時,登錄Linux服務(wù)器,看項目是不是啟動著
ps –ef | grep java 查看當(dāng)前服務(wù)器 java 應(yīng)用
應(yīng)用場景三:
有時會做下項目的部署
打包好項目包,上傳到我們的tomcat服務(wù)器上去,然后修改項目的配置信息,接著去啟動我們的tomcat
那么接下來就了解下Linux相關(guān)內(nèi)容
Linux 系統(tǒng)中一切皆文件
Linux 目錄結(jié)構(gòu):‘?/?’根目錄 ,掛載點(Linux中的磁盤文件系統(tǒng)的入口目錄)
常見Linux命令
查看日志(區(qū)分大小寫的)
Shell可以看成是一個命令解釋器,為我們提供了交互式的文本控制臺界面,我們可以通過終端控制臺來輸入命令,由shell進行解釋并最終交給內(nèi)核執(zhí)行。(shell 命令解釋層)
一、 登錄服務(wù)器(Linux終端控制臺)
菜單+R? 調(diào)出運行窗口,輸入cmd
?登入服務(wù)器: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內(nèi)置命令的幫助信息 如cd
【命令--help】?獲取外部命令的幫助信息
【type 命令】判斷命令是內(nèi)置命令還是外置命令
②常用快捷鍵
【CTRL+c】停止進程
【CTRL+l】清屏,等同于【clear】,再往上翻還可以看到歷史信息,徹底清屏是【reset】
善用tab鍵? 會給提示(更重要的是可以防止敲錯)
上下鍵? 查找執(zhí)行過的命令
③文件目錄類
【pwd】 打印當(dāng)前的工作目錄的絕對路徑? (‘?/?’根目錄 )
【ls】 list? 查看當(dāng)前目錄下文件 ,
【ls -l?-h -a】? -l long 以長列表的形式展示信息? -h human 以人類易讀的方式展示 -a all全部的文件,連同隱藏檔(開頭為.的文件),一起列出來
【ll 】同【ls -l?】
【cd+ 文件名】 進入具體文件目錄
【cd+/user/bin】使用絕對路徑進入具體文件目錄
【cd .. 】返回上一級目錄
【mkdir】創(chuàng)建新的目錄
【rmdir】 刪除目錄
【touch】創(chuàng)建一個空文件
【cp 源文件 目標(biāo)文件】copy,復(fù)制源文件到目標(biāo)文件,會詢問是否覆蓋,Y覆蓋,N不覆蓋
【\cp?源文件 目標(biāo)文件】直接覆蓋
【-r】遞歸復(fù)制整個文件夾,將其子文件夾及子文件一起完整復(fù)制
【rm 要刪除的文件】刪除文件或目錄
【-r】遞歸刪除目錄中的所有內(nèi)容
【-f】強制執(zhí)行刪除操作,而不提示用于進行確認
【-v】顯示指令的詳細執(zhí)行過程
【rm-rf/*】刪庫跑路 刪除根目錄下的所有內(nèi)容
【mv 舊文件 新文件】重命名
【mv 舊文件 路徑】移動文件目錄
【mv 舊文件 路徑 新文件】移動文件并重命名
④查看文件內(nèi)容
【grep ‘查找的字符串’】 【grep "yyy"】查看日志是否包含 yyy?字符串,單雙引號都可
【cat xxx?】常用的查看日志命令,對于比較小的日志文件,可以直接用cat 展開內(nèi)容
【-n 】顯示輸出行數(shù)
【-i??】忽略大小寫
【grep -v?‘字符串’??】反向選擇,過濾字符串不顯示
例子:【cat?test.log?| grep"error"】【grep?"error"??test.log】【grep-n?"error"??test.log】查看test.log日志文件中包含error的內(nèi)容
【grep-i?"error"??test.log】查看test.log日志文件中包含error,ERROR的內(nèi)容
【grep-v?"error"??test.log】查看test.log日志文件中不包含error的內(nèi)容
【more 要查看的文件】文件內(nèi)容分屏查看器? 查看大文件??
? ? ?空格鍵--向下翻一頁??
? ? ?回車鍵--向下翻一行??
? ? ?q鍵退出
? ? ? CTRL+F 向下滾動一屏
? ? ? CTRL+B?返回上一屏
? ? ? ?= 輸出當(dāng)前行的行號
? ? ? ?:f 輸出文件名和當(dāng)前行的行號
【less?要查看的文件】分屏顯示文件內(nèi)容,查看小文件? 并不是一次將整個文件加載之后才顯示,二十根據(jù)現(xiàn)實需要加載內(nèi)容,對于顯示大型文件具有較高的效率
? ? ??空格鍵--向下翻一頁
? ? ? 向上箭頭或向下箭頭-一行一行?
? ? ? =輸出當(dāng)前行的行號
? ? ? /字串? ?向下搜索【字串】的功能 【n:】向下查找;【N:】向上查找
? ? ???字串? ?向上搜索【字串】的功能 【n:】向下查找;【N:】向上查找
? ? ? ?q鍵退出
【echo 想輸出的內(nèi)容】直接在控制臺輸出
【echo??hello? ? ? ? ?world】運行結(jié)果:hello world
【echo “想輸出的內(nèi)容”】空格等內(nèi)容可輸出
【echo??“hello? ? ? ? ?world”】運行結(jié)果:hello? ? ? ? ?world
【echo??“hello\tworld”】運行結(jié)果:hello\tworld
【echo -e “想輸出的內(nèi)容”】支持反斜線控制的字符轉(zhuǎn)換
【echo?-e?“hello\tworld”】運行結(jié)果:hello? ? world
控制字符
\\? 輸出\本身
\n? 換行符
\t? ?制表符,也就是tab鍵
【>】輸出重定向
ls -l?> 文件 列表的內(nèi)容寫入文件中(覆蓋寫)
cat 文件1>?文件2 將文件1的內(nèi)容覆蓋到文件2
【>>】追加
ls -al?>>? 文件 列表的內(nèi)容追加到文件中(追加,寫在末尾)
echo “內(nèi)容” >>?文件??將內(nèi)容添加到文件1
?
【head】查看文件的前N行內(nèi)容? head - 20 文件名
【tail 文件名】默認查看文件的后10行內(nèi)容?
【 tail –?500 文件名】查看文件的后500行內(nèi)容
【tail –f 文件名 】?查看動態(tài)日志? ?跟蹤日志狀態(tài) 打開具體文件,實時刷新
Ctrl?+ c 退出
vim/vi 打開具體文件(小的文件可以用cat)
: set nu 顯示行號
【[Ctrl] + f】 屏幕向下移動一頁(相當(dāng)于 Page Down 鍵)
【[Ctrl] + b】 屏幕向上移動一頁(相當(dāng)于 Page Up 鍵)
【G】 光標(biāo)移動到文件的最后一行(第一個字符處)
【nG】 n 為數(shù)字(下同),移動到當(dāng)前文件中第 n 行
【gg】 移動到文件的第一行,相當(dāng)于"1G"
【/word】 在文件中查找內(nèi)容為 word 的字符串(向下查找)
【?word】 在文件中查找內(nèi)容為 word 的字符串(向上查找)
【[n]】 表示重復(fù)查找動作,即查找下一個
【[N]】 反向查找下一個
:I 進入編輯
:wq 保存
:q!不保存退出
:q 退出
【ln】軟鏈接
進程管理:
任務(wù)管理器? CTRL +alt+delete
【ps】 查看當(dāng)前用戶管理和使用的正在運行的進程
【ps aux | grep xxx】查看系統(tǒng)中所有進程
【ps -ef | grep xxx】可以查看子父進程之間的關(guān)系

jps 查看當(dāng)前服務(wù)器 java 進程
【top】
查看進程編號使用ps命令
管道符,一般和grep搭配使用
查看pid進程編號
kill命令殺死進程
統(tǒng)計文件大小命令:du
查看磁盤大?。篸f
查看網(wǎng)絡(luò)連通情況:ping ip或者ping 域名
查看系統(tǒng)資源占用情況:top
3、 cat && 瀏覽器查看 http 請求
安裝 cat 插件
查看 http 請求
資源地址、請求頭,請求參數(shù)、請求方式,返回結(jié)果,cat 插件
查看服務(wù)器響應(yīng)速度
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/(關(guān)鍵詞)/\e[1;顏色$1\e[0m/g'
tail -f app.log | perl -pe 's/(Job 熱啟動)/\e[1;31m$1\e[0m/g' 用紅色標(biāo)注出關(guān)鍵字
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
{
// 執(zhí)行自定義事件代碼
logger.info("當(dāng)前數(shù)據(jù) Oid=" + data.getOid());
logger.info("當(dāng)前操作用戶 ID=" +userId);
}
Ctrl+F12 找方法
重啟服務(wù)器方法:
第一步,登錄服務(wù)器,輸入完整路徑:
cd /usr/local/tomcat/kingkong-pc-web/bin
./startup.sh
第二步,輸入 Jps:
復(fù)制‘顯示信息中 :Bootstrap 前的編號’
第三步,?為上一步的編號
kill -9 ?
第四步,查看日志
cd /usr/local/tomcat/kingkong-pc-web/logs
tail -f catalina.out
cd /data/applogs /kingkong-pc-web/logs
系統(tǒng)資源監(jiān)控命令
項目環(huán)境部署(簡歷寫的話)
docker容器技術(shù)--相關(guān)命令