打印第5行?
sed -n '5p' 1.txt
打印空行的行號(hào)??
awk 'if {NF==0} print NR' 1.txt? ?
sed -n '/^$/=' 1.txt? ?-n 對(duì)匹配行處理? ? =打印匹配行的行號(hào)? p打印匹配到的內(nèi)容
刪除空行
sed '/^$/ d' 1.txt
sed '/^#/ d' employee.txt? 刪除所有注釋行
打印不含this的行內(nèi)容
sed '/this/ d' 1.txt
打印非空行的內(nèi)容
sed -n '/[^$]/p'1.txt? ??
[^$] ^代表以后面跟著的字符為開頭,$代表以前面的字符為結(jié)尾;
^$聯(lián)合使用,中間不加任何字符數(shù)字,代表匹配空行;
[ ] 在shell正則中表示取反
輸出0到500中7的倍數(shù)
seq 0 7 500? seq 尾數(shù)? ?seq 首數(shù)? 尾數(shù)? seq? 首數(shù) 增量 尾數(shù)
統(tǒng)計(jì)文件的行數(shù)
awk ‘END{print NR}’1.txt
sed -n '$=' 1.txt
打印文檔中單詞數(shù)小于8的內(nèi)容
cat 1.txt| awk '{for (i=1;i<=NF;i++) {if? (length($i)<8) print $i}}'
打印第六列的和
cat 1.txt | awk '{sum+=$6} END {print sum}'
打印文件中重復(fù)行的行數(shù)
awk '{for (i=1;i<=NF;i++){print $i}}' nowcoder.txt|sort|uniq -c|sort|awk '{print $2 $1}'
uniq 比較相鄰行是否重復(fù) -c 顯示重復(fù)行數(shù) 和sort結(jié)合使用? 顯示結(jié)果第一列為重復(fù)次數(shù) 第二列為行內(nèi)容
檢查文件第二列是否有重復(fù)的行,并打印重復(fù)次數(shù)
awk '{print $2}' 1.txt|sort|uniq -cd|sort -n
查找當(dāng)前文件夾以及子文件夾下所有".java"結(jié)尾的文件
find ./ -name *.java
找到當(dāng)前目錄及其子目錄中的所有文件中所有包含ERROR的行
for logfile in `find . -name "*.log*"`
do?
?????echo "$logfile:"?
?????sed -n '/error/=' $logfile
done
文件輸出
讀取log文件的crash消息,找到后輸出前10行和后10行
查找文件 find -name 1.file?
打印前10行和后10行 head -n 10 1.file > 2.file? ? tail -n 10 1.file >2.file
?tail -n 1000:顯示最后1000行
?tail -n +1000:從1000行開始顯示,顯示1000行以后的
?head?-n 1000:顯示前面1000行
cat filename | tail -n +3000 | head -n 1000? ?:從第3000行開始,顯示1000行。即顯示3000~3999行
cat filename| head -n?3000?| tail -n +1000? ??顯示1000行到3000行
sed -n '5,10p' filename 這樣你就可以只查看文件的第5行到第10行。
內(nèi)存相關(guān)
Linux 的基本命令, 查端口8080的狀態(tài)
netstat -ntlp|grep 8080?
-t : 指明顯示TCP端口
-u : 指明顯示UDP端口
-l : 僅顯示監(jiān)聽套接字(所謂套接字就是使應(yīng)用程序能夠讀寫與收發(fā)通訊協(xié)議(protocol)與資料的程序)
-p : 顯示進(jìn)程標(biāo)識(shí)符和程序名稱,每一個(gè)套接字/端口都屬于一個(gè)程序。
-n : 不進(jìn)行DNS輪詢,顯示IP(可以加速操作)
替換
把'a,b,c,'字符串中“,”換成“\n”.(awk)
?echo "a,b,c" | awk? 'BEGIN{RS=","}{print $0}'
RS控制記錄分隔符,用于定義換行符 指定換行符為分隔符
echo "a,b,c" | awk -F ',' '{print $1"\n"$2"\n"$3}'
-F , 指定,為列分隔符
echo "a,b,c" | awk 'BEGIN{FS=",";OFS="\n"}{print $1,$2,$3}'
FS字段分隔符
OFS輸出字段分隔符
一個(gè)日志文件,找出文件里有多少ip
cat t1.log | sort | uniq -c | sort -k 1 -n -r | awk -F '//' '{print $2}'
sort -k 1表示對(duì)于每行的第一個(gè)字段進(jìn)行排序,這里即指代表重復(fù)記錄數(shù)的那個(gè)字段。因?yàn)閟ort命令的默認(rèn)排序是按照ASCII,這就會(huì)導(dǎo)致按從大到小進(jìn)行排序時(shí),數(shù)值2會(huì)排在數(shù)值11的前面,所以需要使用-n 參數(shù)指定sort命令按照數(shù)值大小進(jìn)行排序。-r 表示逆序,即按照從大到小的順序進(jìn)行排序。

合并文件a,b 至 文件c
cat?a?>>?b?
>?覆蓋寫入
>>?append模式寫入
任務(wù)調(diào)度
crontab
查看當(dāng)前用戶下有哪些作業(yè):crontab -l
添加、編輯:crontab -e
禁用:加#
常用的linux命令有哪些?
ls mkdir rm cp mv touch cat
top
top命令是Linux下常用的性能分析工具,能夠?qū)崟r(shí)顯示系統(tǒng)中各個(gè)進(jìn)程的資源占用狀況,類似于Windows的任務(wù)管理器
tail
tail -f 1.log 實(shí)時(shí)查看日志
tail -n 5 1.log? 顯示倒數(shù)5行
tail -n +5 1.log 從第5行開始顯示
scp?
命令用于 Linux 之間復(fù)制文件和目錄
scp /root/test.txt root@192.168.1.10:/root/??將 /root/test.txt 拷貝到 192.168.1.10 的 /root/ 目錄下,文件名還是 text.txt,使用 root 用戶,此時(shí)會(huì)提示輸入遠(yuǎn)程 root 用戶的密碼。
scp -r /root/test/ root@192.168.1.10:/root/??將整個(gè)目錄 /root/test/ 復(fù)制到 192.168.1.10 的 /root/ 下,即遞歸的復(fù)制,使用 root 用戶,此時(shí)會(huì)提示輸入遠(yuǎn)程 root 用戶的密碼
查看進(jìn)程ps 查看所有進(jìn)程長(zhǎng)格式ps -ef
打印當(dāng)前文件夾文件 ls -al a所有文件 l詳細(xì)信息
軟鏈接 ln -s a target 硬鏈接 ln
創(chuàng)建目錄 mkdir
修改權(quán)限 chmod
查看文件:
移動(dòng)文件mv 也可以重命名
復(fù)制文件cp
刪除文件 rm -r 遞歸刪除 -f刪除只讀文件
通配符?單個(gè)字符,*多個(gè)字符,[a-z]字符集
grep 正則搜索 顯示行號(hào)-n 查詢個(gè)數(shù)-c 反選-v
查看指定進(jìn)程 ps -ef | grep pid
查看命令歷史 history
查看磁盤空間df -hl
查看文件大小du
查找文件 find [目錄] 以名字查找-name “h*”以h開頭
終止一個(gè)進(jìn)程 kill -9 pid
如何防止新人誤操作rm -rf
找進(jìn)程號(hào)為199的進(jìn)程 ls -ef|grep 199
某文件中含關(guān)鍵詞的行數(shù) grep -c "key" ./file
該目錄下以.log結(jié)尾的文件中包含關(guān)鍵詞a但不包含關(guān)鍵詞b的行數(shù) grep "a" ./file | grep -cv "b"