一、學(xué)習(xí)環(huán)境
安裝linux模擬器:git-bash
二、基礎(chǔ)命令
## 增
新建文件:touch a.log
新建文件夾:mkdir dir1
## 刪
刪除文件:rm -rf a.log(文件可不加-rf)
刪除文件夾:rm -rf dir1(-r遞歸,-f強(qiáng)刪不需要確認(rèn))
## 改
復(fù)制文件:cp a.log a.log.bak
復(fù)制文件夾:cp -r dir1 dir2
移動文件:mv a.log dir2
重命名文件:mv a.log.bak a.log(同一個(gè)文件夾下面就是重命名)
## 查
查詢文件夾:ls -al dir1/ (-a所有文件误阻,包括隱藏文件;-l列表方式顯示晴埂;dir1/文件夾路徑)
當(dāng)前所在路徑:pwd
三究反、文件信息
## 詳情
drwxr-xr-x 1 Administrator 197121 0 十一 24 15:42 BaiduNetdisk/
-rw-r--r-- 1 Administrator 197121 415 十一 9 21:06 Hello.class
## 類型
1. d開頭,是文件夾
2. -開頭儒洛,是文件
## 權(quán)限
1. r:read讀
2. w:write寫
3. x:execute執(zhí)行
## 角色
1. g:group組(每個(gè)用戶都必須有一個(gè)歸屬群組)
2. u:user用戶
3. o:其它用戶
### 權(quán)限-角色
1. r-x是u用戶的權(quán)限:讀和執(zhí)行權(quán)限
2. rwx是g群組的權(quán)限:讀寫執(zhí)行權(quán)限奴紧,沒有寫的權(quán)限(-標(biāo)識沒有)
3. r-x是o其它用戶的權(quán)限:讀和執(zhí)行的權(quán)限,沒有寫的權(quán)限(-標(biāo)識沒有)
## 管理權(quán)限
1. 組合因子:
chmod:命令
ugoa:3種角色(a代表所有角色)
+-=:3種運(yùn)算符
rwx:3種權(quán)限
2. 使用規(guī)則
語法:chmod 角色 運(yùn)算符 權(quán)限 文件名
chmod u+x test.sh
3. 使用場景
一般拷貝一個(gè)腳本到服務(wù)器晶丘,默認(rèn)沒有執(zhí)行權(quán)限,要先賦權(quán)
四唐含、編輯文件
vi b.log
1. 3種模式
- 命令模式(按esc切換到命令模式):常用命令i浅浮、a、o捷枯、x滚秩、hjkl,數(shù)字+命令
- 編輯模式(最下方有“insert”或者“插入”提示)
- 末行模式(先esc進(jìn)入命令模式淮捆,再輸入冒號)
練習(xí)1:三種模式切換
- vi b.log新建文件并編輯
- 按“i”命令郁油,進(jìn)入編輯模式(下方出現(xiàn)insert或者插入)
- 輸入“hello world”
- 按esc進(jìn)入命令模式(下方insert或者插入提示沒了)
- 按esc確保進(jìn)入命令模式,按“o”命令攀痊,進(jìn)入編輯模式桐腌,新插入1行
- 輸入“你好,師姐苟径!”
- 按esc進(jìn)入命令模式
- 按“:”冒號案站,進(jìn)入末行模式
- 輸入“wq”命令,保存并退出
- cat命令棘街,查看文件的全部內(nèi)容:cat b.log
練習(xí)2:快速定位
- vi c.log
- 輸入“i”命令蟆盐,進(jìn)入編輯模式
- 輸入“Hello everyone 承边,my name is guoyasoft !”
- esc進(jìn)入命令模式
- 輸入“^”命令,移動光標(biāo)到行首(也就是正則表達(dá)式的行首符號)
- 輸入“$”命令石挂,移動光標(biāo)到行尾(同正則表達(dá)式)
- 輸入“^”命令博助,回到行首,按“w”命令痹愚,一個(gè)單詞一個(gè)單詞的移動光標(biāo)
- 輸入“^”命令富岳,回到行首,按“5”里伯,再按“w”城瞎,一下移動5個(gè)單詞
- 查詢:esc進(jìn)入命令模式,按“/”命令疾瓮,輸入要查詢的字符串脖镀,回車確認(rèn),按n定位下一個(gè)
練習(xí)3:修改
- 手工替換:vi進(jìn)入狼电,i進(jìn)入編輯模式
- 刪字符:x(刪1個(gè)字符)蜒灰,數(shù)字+x(刪多個(gè)字符)
- 刪行:dd(刪1行),數(shù)字+x(刪多行)
- 替換單個(gè)字符:esc命令模式肩碟,輸入“r”命令强窖,輸入要替換成的字符
- 批量替換:輸入“:”進(jìn)入末行模式,輸入“%s/要替換的字符/要替換成的字符/g”
將全部guoyasoft替換成GuoyaSoft
:%s/guoyasoft/GuoyaSoft/g
其中s是替換命令削祈,/g是全局替換
(不加翅溺,每一行只會替換第一個(gè)匹配的,加了髓抑,會把一行中所有匹配的都替換)
(不管是否加/g咙崎,如果有多行,每一行都會替換第1個(gè))
練習(xí):撤銷和反撤銷
- 撤銷:esc進(jìn)入命令模式吨拍,按“u”命令褪猛,回退之前的操作
- 反撤銷:esc進(jìn)入命令模式,按“ctrl+r”羹饰,撤銷剛剛的回退
練習(xí)4:保存和放棄保存
- 保存并退出:按“:”進(jìn)入末行模式伊滋,輸入“wq”
- 不保存并退出:按“:”進(jìn)入末行模式,輸入“q!”
練習(xí)5:設(shè)置
- 顯示行號队秩,按esc笑旺,再按“:”,輸入“set nu”馍资。
統(tǒng)計(jì)文件內(nèi)容
## 命令
wc catalina.2017-11-05.log
## 結(jié)果
1349 8095 108970 catalina.2017-11-05.log
## 解析
1349行
8095個(gè)單詞
108970個(gè)字節(jié)
1. 定位文件
find 文件夾路徑 -name '匹配的字符串'
find ./ -name 'cata*.out'
從當(dāng)前目錄下開始查找燥撞,含有cata開頭,.out結(jié)尾的所有文件
到tomcat/logs下面找一個(gè)最大的日志文件,手工復(fù)制到test文件夾下面
- 查找c盤下物舒,所有以“catalina”開頭色洞,“.log”結(jié)尾的文件,
find /c -name 'catalina*.log'
/c/software/apache-tomcat-7.0.79/logs/catalina.2017-11-05.log
/c/software/apache-tomcat-7.0.79/logs/catalina.2017-11-27.log
/c/software/apache-tomcat-7.0.79/logs/catalina.2017-12-11.log
- 查找e盤下冠胯,以“catalina”開頭火诸,“.log”結(jié)尾的文件,find e -name 'catalina*.log'
- 統(tǒng)計(jì)catalina.2017-11-05.log該文件的字節(jié)大小荠察、單詞個(gè)數(shù)置蜀、行數(shù)
2. 定位要查詢的字符串所在文件位置
## 命令
grep -rn --text '18616765946' ./
## 解釋
grep:全局查詢打印命令
-r:遞歸查詢,也就是遇到子文件夾悉盆,會查詢子文件夾
-n:打印行號
--text:以文本的形式查詢
‘18616765946’:要查詢的字符串盯荤,可以寫正則表達(dá)式
./:“.”當(dāng)前目錄,也可以指定其他目錄焕盟,即:要查找的文件夾
## 結(jié)果
./test/new_aj:54:???? 1861676594605, 2017 4:56:36 ???? org.apache.catalina.core.AprLifecycleListener initializeSSL
3. 進(jìn)入文件秋秤,查看上下文詳情
more從前往后,一頁一頁的往后翻
## 命令1:
more new_aj
## 最下方會顯示已看百分比:
--More--(0%)
## 命令2:“/”查詢脚翘,類似vi灼卢,也類似windows的ctrl f
/18616765946
4. 下載日志(太大需要拆分)
4. 將catalina.2017-11-05.log拆分成10個(gè)小文件
## 命令
split -l 100 catalina.2017-11-05.log new_
## 結(jié)果
a.log c.log new_aa new_ac new_ae new_ag new_ai new_ak new_am
b.log catalina.2017-11-05.log new_ab new_ad new_af new_ah new_aj new_al new_an
備注:要重新合并
cat new_*> new_catalina.out
第二中下載日志:
grep '18616765946' logs/* > log.bak
5. 重現(xiàn)日志,或者驗(yàn)證修復(fù)效果来农,看實(shí)時(shí)動態(tài)日志
## 進(jìn)入c盤
cd /c
## 查找tomcat啟動腳本
find ./ -name startup.sh
結(jié)果:
./software/apache-tomcat-7.0.79/bin/startup.sh
## 執(zhí)行啟動腳本
./software/apache-tomcat-7.0.79/bin/startup.sh
## 查找tomcat日志文件
find ./ -name cata*.out
結(jié)果:
./software/apache-tomcat-7.0.79/logs/catalina.out
## 查看日志文件最新日志
tail -200f ./software/apache-tomcat-7.0.79/logs/catalina.out
按回車加空行鞋真,便于查看
打包和壓縮
常見壓縮包 | 打包/壓縮命令 | 解壓/包命令 | 注釋 |
---|---|---|---|
.tar | tar cvf FileName.tar DirName | tar xvf FileName.tar | |
.gz | gzip FileName | gunzip FileName.gz | 不用 |
.tar.gz 和 .tgz | tar zcvf FileName.tar.gz DirName | tar zxvf FileName.tar.gz | 推薦,必須掌握 |
.zip | zip FileName.zip DirName | unzip FileName.zip | 一般只用unzip解壓沃于,本地上傳時(shí)打成zip包涩咖,掌握 |
.rar | 一般不用 |
tomcat:
maven:
練習(xí)
- 將new_開頭的文件夾全部打包成一個(gè)文件
tar cvf catalina.2017-11-05.log.tar new_*
刪除所有的new_開頭的文件夾
rm -rf new_*將tar包解壓
tar xvf catalina.2017-11-05.log.tar將所有new_開頭的文件夾,打包壓縮成.tar.gz
tar zcvf catalina.2017-11-05.log.tar.gz new_*刪除new_開頭的文件夾繁莹,并將.tar.gz包解壓
rm -rf new_*
tar zxvf catalina.2017-11-05.log.tar.gz在windos中抠藕,將new_開頭的文件壓縮成.zip,再用linux命令解壓
unzip catalina.2017-11-05.log.zip
查看進(jìn)程
進(jìn)程的含義
操作系統(tǒng)蒋困,將內(nèi)存、cpu等資源敬辣,打包給應(yīng)用使用雪标,是分配資源的基本單元
應(yīng)用啟動后,通過ps命令溉跃,查看進(jìn)程的狀態(tài)
ps -ef查看進(jìn)程信息村刨,類似windows的進(jìn)程管理器
管道符
|
使用管道符對進(jìn)程信息篩選
查詢進(jìn)程,篩選shccs01用戶下的進(jìn)程撰茎,再篩選含tomcat的進(jìn)程嵌牺,再篩選含ux的進(jìn)程
ps -ef | grep shccs01 | grep tomcat | grep ux
重定向
作用:將獲取的信息存到文件
練習(xí):
- 將test目錄含g的文件找到
## 命令
ls | grep g
## 結(jié)果
a.log
b.log
c.log
catalina.2017-11-05.log
catalina.2017-11-05.log.tar
catalina.2017-11-05.log.tar.gz
- 將找到的結(jié)果保存到d.log
## 普通做法:拷貝,再建空白文件,打開文件逆粹,粘貼保存退出
## 重定向的做法:
## 命令1
ls | grep g > d.log
## 命令2
cat d.log
## 結(jié)果:
a.log
b.log
c.log
catalina.2017-11-05.log
catalina.2017-11-05.log.tar
catalina.2017-11-05.log.tar.gz
new_ag
- 查出含“cata”的文件募疮,并重定向到d.log
## 命令
ls | grep 'cata' > d.log
cat d.log
## 結(jié)果
catalina.2017-11-05.log
catalina.2017-11-05.log.tar
catalina.2017-11-05.log.tar.gz
原先的內(nèi)容沒了,一個(gè)>是覆蓋的方式寫入
- 追加的方式重定向>>
## 命令
ls | grep g >> d.log
cat d.log
## 結(jié)果
catalina.2017-11-05.log
catalina.2017-11-05.log.tar
catalina.2017-11-05.log.tar.gz
a.log
b.log
c.log
catalina.2017-11-05.log
catalina.2017-11-05.log.tar
catalina.2017-11-05.log.tar.gz
d.log
new_ag
殺進(jìn)程
kill -9 進(jìn)程號
[shccs01 ~]$ps -ef | grep shccs01 | grep tomcat | grep ux
shccs01 18839
1 0 Dec11 ? 00:02:09 /usr/lib/jvm/jdk1.8.0_11/bin/java -Djava.util.logging.config.file=/unibss/users/shccs01/server/tomcat/ux/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Xms256m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=512m -classpath /unibss/users/shccs01/server/tomcat/ux/bin/bootstrap.jar:/unibss/users/shccs01/server/tomcat/ux/bin/tomcat-juli.jar -Dcatalina.base=/unibss/users/shccs01/server/tomcat/ux -Dcatalina.home=/unibss/users/shccs01/server/tomcat/ux -Djava.io.tmpdir=/unibss/users/shccs01/server/tomcat/ux/temp org.apache.catalina.startup.Bootstrap start
[shccs01 ~]$kill -9 18839
查看端口
查詢8080端口對應(yīng)的進(jìn)程號
## 命令
netstat -ano | findstr "8080"
## 結(jié)果:進(jìn)程號2656
TCP 0.0.0.0:8081 0.0.0.0:0 LISTENING ` 2656`
查看2656進(jìn)程對應(yīng)的應(yīng)用程序
## 命令
tasklist | findstr “2656”
## 結(jié)果
java.exe 2656 Console 1 148,248 K
## 確定是一個(gè)java虛擬機(jī)僻弹,tomcat是java程序
## 按照進(jìn)程號殺掉進(jìn)程
taskkill /pid 4364
對比linux和cmd
對比項(xiàng) | linux | cmd |
---|---|---|
查端口 | netstat | netstat |
查進(jìn)程 | ps -ef | tasklist |
管道符 | 豎線 | 豎線 |
查詢包含指定串的行 | grep '查詢串' | findstr '查詢串' |
殺進(jìn)程 | kill -9 進(jìn)程號 | taskkill /f /pid 進(jìn)程號 |
網(wǎng)絡(luò)
- ping ip:查看網(wǎng)絡(luò)是否通
- traceroute ip:查看通不通阿浓,并顯示網(wǎng)絡(luò)節(jié)點(diǎn),能定位到哪個(gè)節(jié)點(diǎn)不通