前言
大家好,這里是浩道Linux,主要給大家分享Linux、Python、網(wǎng)絡(luò)通信、網(wǎng)絡(luò)安全等相關(guān)的IT知識(shí)平臺(tái)。
眾所周知,Linux命令眾多,但是卻很少人懂得去使用它的高效命令。一方面是沒(méi)有現(xiàn)成的資料;另一方面是大家固定了命令原有使用模式,認(rèn)為不論白貓黑貓,能夠捉住老鼠就是好貓了!本文浩道將結(jié)合工作生涯所接觸命令序列,整理出一套拿來(lái)即用的高效Linux命令序列,讓大家更高效地應(yīng)用在工作中! 以下相關(guān)高效命令實(shí)用指數(shù)不分先后,更多的是以簡(jiǎn)單的命令形式帶給大家更好的使用體驗(yàn)。
1、如何快速創(chuàng)建多個(gè)相同類(lèi)型的文件; 如創(chuàng)建名字為haodao1.py,haodao
2.py到haodao100.py的批量文件。
touch haodao{1..100}.py
?
2、如何快速生成一個(gè)大文件;
有時(shí)候需要在本機(jī)生成一個(gè)大文件,用于測(cè)試磁盤(pán)的讀寫(xiě)能力,可以借助dd命令生成大文件。
dd if=/dev/zero of=/root/haodaolinux/test.txt bs=1M count=1024? 上述命令,在/root/haodaolinux目錄下生成一個(gè)文件名為test.txt 大小為 1G 的文件。
3、快速清空一個(gè)文件的方法,如清空haodao.py文件;
cat?/dev/null?>?haodao.py
?
或
?
echo?-n?""?>?haodao.py
?
或
?
true?>?haodao.py
?
或
?
:?>?haodao.py
?
或
?
truncate?-s?0?haodao.py
?
以上5種快速清空文件方法,大家可以選擇自己常用的一種,大家知道幾種呢!
4、查找當(dāng)前目錄下名字為haodao.py的文件;
?
find?.?-name?haodao.py
?
5、查找當(dāng)前目錄下名字以.py結(jié)尾的文件;
?
find?.?-name?"*.py"
?
6、查找當(dāng)前目錄下名字以.py結(jié)尾的文件,并且指定為文件類(lèi)型搜索;
?
find?.?-type?f?-name?"*.py"
?
7、查找當(dāng)前目錄下名字包含haodao的目錄;
?
find . -type d -name "haodao*"
?
8、查找當(dāng)前目錄下文件權(quán)限為755的對(duì)應(yīng)文件;
?
find?.?-type?f?-perm?755
?
9、查找當(dāng)前目錄下不具有755權(quán)限的所有文件;
?
find?.?-type?f?!?-perm?755
?
10、查找當(dāng)前目錄下具有777權(quán)限的所有文件,并且將這些權(quán)限全部改為755;
?
find . -type f -perm 777 -exec chmod 755 {} ;
?
11、查找當(dāng)前目錄下文件大小為100MB~1GB的所有文件;
?
find . -type f -size +100M -size -1G12、查找當(dāng)前目錄下以.py結(jié)尾的文件,并且刪除;
find?.?-name?"*.py"?-exec?rm?-rf?{}?;
?
或
?
find?.?-name?"*.py"?|?xargs?rm?-rf?{};
?
或
?
rm -rf $(find . -name "*.py")
?
以上3種快速刪除指定類(lèi)別文件方法,哪一種更香更好用呢?
13、查找當(dāng)前目錄下30天前修改過(guò)的所有文件;
?
find . -mtime 30
?
14、查找當(dāng)前目錄下30天前訪問(wèn)過(guò)的所有文件;
?
find?.?-atime?30
?
15、查找當(dāng)前目錄下過(guò)去1個(gè)小時(shí)內(nèi)修改過(guò)的所有文件;
?
find . -mmin -60
?
16、查找當(dāng)前目錄下過(guò)去1個(gè)小時(shí)內(nèi)修改過(guò)的所有文件;
?
find . -amin -60
?
17、查找當(dāng)前目錄下修改超過(guò)10天,但修改不到30天的所有文件;
?
find . -mtime +10 -mtime -3018、查找當(dāng)前目錄下7天前創(chuàng)建的,并且后綴名是以.py結(jié)尾的文件,并且進(jìn)行刪除;
find . -mtime +7 -name "*.py" | xargs rm -rf {};19、查找當(dāng)前目錄大于1000M的文件,并將該文件移動(dòng)到/root/home目錄下;
find . -size +1000M -exec mv {} /root/home ;20、查找當(dāng)前目錄下創(chuàng)建于30天前,大小大于1000M,以.py結(jié)尾的文件,并且進(jìn)行刪除;
find??.?-name?"*.py"?–mtime?+30?–type?f?–size?+1000M?|xargs?rm?–rf?{};21、查看有幾個(gè)邏輯cpu, 包括cpu型號(hào);
cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c
?
22、查看有幾顆cpu,每顆分別是幾核;
?
cat /proc/cpuinfo | grep physical | uniq -c23、后臺(tái)運(yùn)行命令,如后臺(tái)運(yùn)行ping www.baidu.com命令;
?
?
nohup ping www.baidu.com &以上命令執(zhí)行時(shí)后臺(tái)運(yùn)行,并且有nohup.out輸出。 或
nohup ping www.baidu.com > /dev/null &
?
以上命令執(zhí)行時(shí)后臺(tái)運(yùn)行, 不輸出任何日志。
或
nohup ping www.baidu.com >out.log 2>&1 &以上命令執(zhí)行時(shí)后臺(tái)運(yùn)行, 并將錯(cuò)誤信息做標(biāo)準(zhǔn)輸出到日志中。
24、強(qiáng)制關(guān)閉進(jìn)程名包含xxx的所有進(jìn)程;
ps aux|grep xxx | grep -v grep | awk '{print $2}' | xargs kill -9
?
25、/var目錄按照目錄大小排序展示最前面20個(gè)目錄或者文件;
?
du?-xB?M?--max-depth=2?/var?|?sort?-rn?|?head?-n?20
?
26、按照大到小排列出當(dāng)前文件或者目錄最大的10個(gè);
?
du -s * | sort -n | tail
?
27、查找當(dāng)前系統(tǒng)內(nèi)存使用量較高的進(jìn)程(前20個(gè));
?
ps -aux | sort -rnk 4 | head -20
?
可以看到輸出的第 4 列就是內(nèi)存的耗用百分比。最后一列就是相對(duì)應(yīng)的進(jìn)程。
28、查找當(dāng)前系統(tǒng)CPU使用量較高的進(jìn)程(前20個(gè));
?
ps -aux | sort -rnk 3 | head -20
?
可以看到輸出的第 3 列為 CPU 的耗用百分比,最后一列就是對(duì)應(yīng)的進(jìn)程。
29、后臺(tái)持續(xù) ping包, 并將結(jié)果記錄到日志中;
?
ping www.baidu.com | awk '{ print $0 " " strftime("%Y-%m-%d %H:%M:%S",systime()) }' >> /root/haodaoping.log &
?
以上命令實(shí)現(xiàn)后臺(tái)每一秒自動(dòng)ping?www.baidu.com,并將結(jié)果記錄到/root/haodaoping.log文件中;
30、查找 80 端口請(qǐng)求數(shù)最高的前 15 個(gè) IP;
?
netstat?-anlp|grep?80|grep?tcp|awk?'{print?$5}'?|awk?-F:?'{print?$1}'|sort|uniq?-c|sort?-nr|head?-n 15
?
31、查看自己本機(jī)系統(tǒng)最常用的10條命令;
?
cat /root/.bash_history |grep -v ^# |awk '{print $1}' |sort |uniq -c |sort -nr |head -10
?
32、查看2022年12月11日09時(shí)這個(gè)時(shí)間內(nèi)有多少個(gè)IP訪問(wèn)你的tomcat服務(wù)器;
?
awk?'{print?$4,$1}'?access.log?|?grep?11/Dec/2022:09?|?awk?'{print?$2}'|?sort?|?uniq?|?wc?-l
?
這里只要給出訪問(wèn)日志文件,就可以計(jì)算出來(lái),自己可以根據(jù)需要計(jì)算某個(gè)時(shí)間點(diǎn)的訪問(wèn)的IP數(shù)。
33、查看自己tomcat服務(wù)器訪問(wèn)量排在前20?位的IP地址;
?
cat?access.log|awk?'{print?$1}'|sort|uniq?-c|sort?-nr|head?-20
?
34、查看某一個(gè)IP地址訪問(wèn)了tomcat服務(wù)器的哪些頁(yè)面資源;
?
grep?^192.168.30.200?access.log|?awk?'{print?$1,$7}'
?
35、查看自己tomcat服務(wù)器中某一個(gè)頁(yè)面資源被訪問(wèn)的次數(shù);
?
grep "/portal/index.html" access.log | wc -l
?
36、通過(guò)抓包工具tcpdump查看8080端口訪問(wèn)量情況;
?
tcpdump -i ens33 -tnn dst port 8080 -c 1000 | awk -F"." '{print $1"."$2"."$3"."$4}' | sort | uniq -c | sort -nr |head -10
?
37、如何通過(guò)sed命令將文件test.py中的haodao全部替換成HAODAO;
?
sed -i "s/haodao/HAODAO/g" test.py
?
38、替換haodao.py文件中的目錄;
?
sed?-i?"s:/etc/dhcp:/home:g"?haodao.py
?
即表示將haodao.py文件中的/etc/dhcp目錄替換成/home目錄。
39、以下針對(duì)haodao.py文件舉例sed命令常見(jiàn)技巧;
1)去掉行首的#字符,命令為:
sed?-i?"s/^#//g"?haodao.py
?
2)在行首添加linux字符,命令為:
?
sed?-i?"s/^/linux/g"?haodao.py
?
3)在行尾添加一個(gè)study字符,命令為:
?
sed?-i?"s/$/study/"?haodao.py
?
4)在特定行后,即we love行后添加一個(gè)you字符,命令為:
?
sed?-i?"/we?love/ayou"?haodao.py
?
5)在特定行前,即haodao行前添加一個(gè)where字符,命令為:
?
sed?-i?"/haodao/iwhere"?haodao.py40、針對(duì)網(wǎng)口ens33抓取不限制大小的報(bào)文,保存為文件haodao.cap;
tcpdump?-i?ens33?-s?0?-w?haodao.cap
?
41、針對(duì)網(wǎng)口ens33進(jìn)行抓包,過(guò)濾出 icmp 報(bào)文并且源 IP 地址是 192.168.20.231的相關(guān)報(bào)文;
?
tcpdump?icmp?and?src?192.168.20.231?-i?ens33?-n
?
42、針對(duì)網(wǎng)口ens33進(jìn)行抓包,過(guò)濾出源 IP 地址是 192.168.20.231的相關(guān)報(bào)文;
?
tcpdump src host 192.168.20.231 -i ens33 -n -c 5
?
43、針對(duì)網(wǎng)口ens33進(jìn)行抓包,過(guò)濾出目的 IP 地址是 192.168.20.231的相關(guān)報(bào)文;
?
tcpdump?dst?host?192.168.20.231?-i?ens33?-n?-c?5
?
44、針對(duì)網(wǎng)口ens33進(jìn)行抓包,過(guò)濾出端口號(hào)是 8080 的相關(guān)報(bào)文;
?
tcpdump?port?8080?-i?ens33?-n?-c?5
?
45、針對(duì)網(wǎng)口ens33進(jìn)行抓包,過(guò)濾出 80端口到443端口?的相關(guān)報(bào)文;
?
tcpdump?portrange?80-433?-i?ens33?-n?-c?8
?
?
評(píng)論
查看更多