1、第一個(gè)“|” 后面緊跟的是awk命令
創(chuàng)新互聯(lián)建站為您提適合企業(yè)的網(wǎng)站設(shè)計(jì)?讓您的網(wǎng)站在搜索引擎具有高度排名,讓您的網(wǎng)站具備超強(qiáng)的網(wǎng)絡(luò)競(jìng)爭(zhēng)力!結(jié)合企業(yè)自身,進(jìn)行網(wǎng)站設(shè)計(jì)及把握,最后結(jié)合企業(yè)文化和具體宗旨等,才能創(chuàng)作出一份性化解決方案。從網(wǎng)站策劃到網(wǎng)站設(shè)計(jì)、成都網(wǎng)站設(shè)計(jì), 我們的網(wǎng)頁(yè)設(shè)計(jì)師為您提供的解決方案。
這個(gè)命令含義是:將前面log中文件按“空格”或“制表符”分割,然后再以“/”分割第7個(gè)域,存入數(shù)組“D”中,這個(gè)域應(yīng)該是網(wǎng)址,網(wǎng)址的格式一般是“”,所以以“/”分割后得到的第三個(gè)域 D[3] 就是“zhidao.baidu.com”,將這個(gè)字符串作為 key 存入數(shù)組 A 中,并且遇到相同的字符串時(shí),A[key] 就加1,這樣在awk 的END 段遍歷數(shù)組A 就可以得到 key 和 key的計(jì)數(shù)(A[key]) 了
2、下一個(gè)“|”后面跟的命令 sort -nr 是指 按自然數(shù)大小(-n)和反序(-r) 排列
3、最后個(gè)“|”后面跟的命令 head 就是看輸出的前10行
本文并不會(huì)對(duì)所有命令進(jìn)行詳細(xì)講解,只給出常見用法和解釋。具體用法可以使用 --help 查看幫助或者直接通過(guò)google搜索學(xué)習(xí)。
find / -name filename.txt 根據(jù)名稱查找/目錄下的filename.txt文件。
find . -name "*.xml" 遞歸查找所有的xml文件
find . -name "*.xml" |xargs grep "hello world" 遞歸查找所有文件內(nèi)容中包含hello world的xml文件
grep -H 'spring' *.xml 查找所以有的包含spring的xml文件
find ./ -size 0 | xargs rm -f 刪除文件大小為零的文件
ls -l | grep '.jar' 查找當(dāng)前目錄中的所有jar文件
grep 'test' d* 顯示所有以d開頭的文件中包含test的行。
grep 'test' aa bb cc 顯示在aa,bb,cc文件中匹配test的行。
grep '[a-z]{5}' aa 顯示所有包含每個(gè)字符串至少有5個(gè)連續(xù)小寫字符的字符串的行。
ps -ef|grep tomcat 查看所有有關(guān)tomcat的進(jìn)程
kill -9 19979 終止線程號(hào)位19979的進(jìn)程
ls -al
pwd
cp source dest 復(fù)制文件
cp -r sourceFolder targetFolder 遞歸復(fù)制整個(gè)文件夾
scp sourecFile romoteUserName@remoteIp:remoteAddr 遠(yuǎn)程拷貝
mkdir newfolder
rmdir deleteEmptyFolder 刪除空目錄
rm -rf deleteFile 遞歸刪除目錄中所有內(nèi)容
mv /temp/movefile /targetFolder
mv oldNameFile newNameFile
su -username
chmod 777 file.java file.java 的權(quán)限 -rwxrwxrwx ,r表示讀、w表示寫、x表示可執(zhí)行
tar -czf test.tar.gz /test1 /test2
tar -tzf test.tar.gz
tar -xvzf test.tar.gz
head -n 10 example.txt
tail -n 10 example.txt
tail -f exmaple.log 這個(gè)命令會(huì)自動(dòng)顯示新增內(nèi)容,屏幕只顯示10行內(nèi)容的(可設(shè)置)。
sudo rm a.txt 使用管理員身份刪除文件
netstat -tln | grep 8080 查看端口8080的使用情況
lsof -i :8080
ps aux|grep java 查看java進(jìn)程
ps aux 查看所有進(jìn)程
tree a
wget
curl
ping
ssh userName@ip
echo $JAVA_HOME 打印java home環(huán)境變量的值
java javac jps ,jstat ,jmap, jstack
svn git maven
歡迎補(bǔ)充!~
面試中Linux問(wèn)題是基礎(chǔ)知識(shí)部分中必然會(huì)問(wèn)到的一塊,對(duì)于不常使用或沒(méi)有接觸過(guò)Linux的同學(xué),如何巧妙應(yīng)對(duì)呢?以下是我的經(jīng)驗(yàn)。
面試官 :Linux了解嗎?
我:還可以。
面試官:查看******的指令是什么?
我:不清楚。。。
面試官:查看******的指令呢?
我:不記得了。。。
(GG)
后來(lái)又一次跟學(xué)長(zhǎng)吃飯,學(xué)長(zhǎng)表示其實(shí)對(duì)于面試官Linux是加分項(xiàng),會(huì)最好,不會(huì)也沒(méi)什么。重要的是展示你了解多少,讓面試官覺(jué)得你有一定程度的了解的,而不是一定要把面試官問(wèn)的問(wèn)題答上來(lái)(想要做到這一點(diǎn)要花的功夫可不?。K栽谥蟮拿嬖囍?,我改變了戰(zhàn)術(shù)。
面試官:Linux了解嗎?
我:Linux我只有一些使用經(jīng)驗(yàn),沒(méi)有開發(fā)經(jīng)驗(yàn)。去年在分布式的項(xiàng)目中,我需要在centos環(huán)境下部署分布式組件,常用一些基礎(chǔ)的命令,比如:
cd 到一個(gè)路徑下;
ll 查看當(dāng)前路徑下的內(nèi)容;
chown 修改權(quán)限;
ps -aux | grep 查看進(jìn)程信息;
cat 、 vim 等查看、修改文件內(nèi)容。我常用的一些 vim 快捷鍵:
dd 刪除當(dāng)前行;
gg 定位到文件頭部;
1$ 、 2$ 、 3$ 定位到當(dāng)前行、第二行、第三行尾部。
有的面試官:(漏出滿意的笑容)不錯(cuò)。(改問(wèn)其他部分的問(wèn)題)
還有的面試官: shell 命令熟悉嗎?
我:接觸過(guò),有幾次需要編寫簡(jiǎn)單的shell腳本進(jìn)行自動(dòng)化測(cè)試,當(dāng)時(shí)用的是 base shell ,但是只用過(guò)一兩次,具體怎么寫想不起來(lái)了,如果要用的話需要查一下 。
面試官:哦~能查出來(lái)是吧,可以。
總之,對(duì)于來(lái)不及準(zhǔn)備情況,在被問(wèn)到時(shí)主動(dòng)把自己會(huì)的噼里啪啦說(shuō)出來(lái),可以避免被動(dòng)提問(wèn)然后答不上來(lái)的尷尬情況。而且會(huì)讓面試官覺(jué)得你掌握得不錯(cuò)。我百度三面都被問(wèn)到Linux,我都用了這一套回答過(guò)關(guān),旁聽的同學(xué)都聽樂(lè)了。
當(dāng)然這只是一個(gè)應(yīng)對(duì)面試的小套路,真正學(xué)習(xí)和掌握Linux對(duì)于工作中是不可避免的一步。投機(jī)取巧只能應(yīng)付一時(shí),不要本末倒置哦。
windows中的 dir ,如下圖所示
ls -l
第一列第一個(gè)字段:文件類型,后面9個(gè)字符是模式,其中分為三組,每一組三個(gè)字段。第一組為所屬用戶權(quán)限。第二組為所屬組的權(quán)限。第三組為其他用戶所屬權(quán)限。其中r(read)代表可讀,w(write)代表可寫,e(execute)代表可執(zhí)行。在后面的9個(gè)字符中,如果是字母說(shuō)明有相應(yīng)的權(quán)限,如果為"-"代表沒(méi)有權(quán)限。舉一個(gè)例子
-rw-r-r--:此為普通文件,對(duì)于所屬用戶為可讀可寫不能執(zhí)行,對(duì)于所屬組僅僅可讀,對(duì)于其他用戶僅為讀。
第三列是所屬用戶,第四列為所屬組,第五列為文件大小,第六列為文件被修改的時(shí)間,最后為文件名。其中使用chown改變所屬用戶,chgrp改變所屬組。
nohup command X.file 2 1
awk -F "," '{print 2}' a.csv
獲取第三列最大值
awk 'BEGIN{max=0}{if(3}END{print max}'
解壓縮命令
常用參數(shù)
常用命令組合
tar -xvf /home/a.tar ?//打開tar打包文件
tar -zxvf /home/a.tar.gz //解壓以gzip壓縮的文件
tar -jxvf /home/a.tar.bz2 //解壓以bzip壓縮的文件
tar -cvf /home/a.tar /home 打包/home下所有文件
常用組合:
例子1:將A服務(wù)器中/home/a.txt 復(fù)制到B服務(wù)器的/home中
scp -r /home/a.txt root@B_ip:/home
翻車現(xiàn)場(chǎng)請(qǐng)看次條。
例子:每隔一秒高亮顯示http連接數(shù)的變化情況
watch -n 1 -d 'pstree | grep http'
例子:十秒一次輸出系統(tǒng)的平均負(fù)載
watch -n 10 'cat /proc/loadavg'
查看磁盤大小
df -h
參數(shù)名含義
-n使用IP地址表示主機(jī)。使用數(shù)字表示端口
-i指定要監(jiān)聽的端口。如果為"-i any"表示住區(qū)所有網(wǎng)卡數(shù)據(jù)包
-v輸出諸如ip數(shù)據(jù)包中的TTL更加詳細(xì)的信息
-t不打印時(shí)間戳
-e顯示以太網(wǎng)幀頭部信息
-c僅僅抓取指定數(shù)量的數(shù)據(jù)包
-x按照十六進(jìn)制顯示數(shù)據(jù)包內(nèi)容
知道了相關(guān)參數(shù),下面看幾個(gè)案例
同樣,我們看看相關(guān)參數(shù)
老規(guī)矩,上幾個(gè)例子
參數(shù)描述
-i設(shè)置數(shù)據(jù)包傳送的時(shí)間間隔
-l以服務(wù)器方式運(yùn)行。默認(rèn)為客戶端運(yùn)行
-k重復(fù)接受并處理某個(gè)端口上的所有鏈接
-p以客戶端運(yùn)行時(shí)強(qiáng)制其使用指定端口
-C將CR和LF兩個(gè)字符作為結(jié)束符
-u使用udp協(xié)議。默認(rèn)tcp協(xié)議
-Xnc客戶端余代理服務(wù)器通信時(shí)默認(rèn)為socks5協(xié)議。
-z掃描目標(biāo)機(jī)器某個(gè)范圍服務(wù)是否開啟
小賤上案例
下面列舉幾個(gè)常用例子
看一下vmstat都有哪些輸出字段。
在這里插入圖片描述
然后我們看看各個(gè)字段什么意思。
將文件分割為數(shù)個(gè)。
split -5 a.txt//將a.txt每5行分割為一個(gè)文件
統(tǒng)計(jì)文件中單詞的個(gè)數(shù)。
一頁(yè)一頁(yè)顯示,通過(guò)空白鍵顯示下一頁(yè)/上一頁(yè)
查看某文件前幾行或者后幾行
diff?-c?file1?file2?//顯示兩個(gè)文件的差異
如下:
1.查找文件
find / -name filename.txt
根據(jù)名稱查找/目錄下的filename.txt文件
2.查看一個(gè)程序是否運(yùn)行
ps _ef|grep tomcat
查看所有有關(guān)tomcat的進(jìn)程。
3.終止線程
kill -9 19979
終止線程號(hào)位19979的線程
4.查看文件,包含隱藏文件
ls -al
5.當(dāng)前工作目錄
pwd
6.復(fù)制文件包括其子文件到自定目錄
cp -r sourceFolder targetFolder
7.創(chuàng)建目錄
mkdir newfolder
8.刪除目錄(此目錄是空目錄)
rmdir deleteEmptyFolder
9.刪除文件包括其子文件
rm -rf deleteFile
10.移動(dòng)文件
mv /temp/movefile /targetFolder
擴(kuò)展重命名 mv oldNameFile newNameFile
11.切換用戶
su -username
12.修改文件權(quán)限
chmod 777 file.java
//file.java的權(quán)限-rwxrwxrwx,r表示讀、w表示寫、x表示可執(zhí)行
13.壓縮文件
tar -czf test.tar.gz /test1 /test2
14.列出壓縮文件列表
tar -tzf test.tar.gz
15.解壓文件
tar -xvzf test.tar.gz
16.查看文件頭10行
head -n 10 example.txt
17.查看文件尾10行
tail -n 10 example.txt
18.查看日志文件
tail -f exmaple.log
//這個(gè)命令會(huì)自動(dòng)顯示新增內(nèi)容,屏幕只顯示10行內(nèi)容的(可設(shè)置)
19.啟動(dòng)Vi編輯器
vi
20.查看系統(tǒng)當(dāng)前時(shí)間
date
命令會(huì)輸出 周幾 幾月 幾日 時(shí)間 和 時(shí)間顯示格式和年份
Sat Jan 20 04:39:49 CST 2018
date +"%Y-%m-%d"