ls ls -l ls -la ls -li ls -h
mkdir mkdir -P
cat cat -n [顯示行號(hào)]
touch
vi esc i / :wq dd u
vim
pwd
df -h
cd .. cd /usr cd ./ cd ~
tar -xzvf filename.tar.gz -C /usr/directory
useradd username
groupadd
chmod 777 filename
chmod u-x g+x o-r
chown hadoop filename
uname -a
mv filenme newFilename
cp file newfilename
which java
where java
rm -fr file
rmdir directory
clear
tail -f
less
more
head
echo
export
Tab 代碼補(bǔ)全
上方向鍵 歷史命令
ctrl + c
set
alias
unalias 別名 清除別名
unalias -a 清除 所有別名
history -c -w
重定向
grep egrep fgrep
read -p "提示語(yǔ) " 變量
read -t 時(shí)間second
read -s 保密模式
cat ab.txt | while read line
do
echo "every name : $line"
done
expr 計(jì)算 注意要有空格
expr match "str" "regex"
expr substr "str" index count
expr index "str" "substr"
expr length "str"
tmux tmux new -s roclinux ctrl +b c 0
shopt expand_alias
--login
xargs excute argument 從標(biāo)準(zhǔn)輸入中讀取內(nèi)容滔金,并將此內(nèi)容傳遞給它要協(xié)助的命令后德,并作為哪個(gè)命令的參數(shù)來(lái)執(zhí)行
cat ab.txt |xargs -E "korea" echo
date
time 計(jì)算 命令執(zhí)行時(shí)間 time -v ls
sleep 5s 6m 7h 5d date; sleep 4s ;date
sleep 0.003s
file -f filename 查看文件內(nèi)容
file -i filename 查看全碼
file -b filename 隱藏文件名
file -F “=》” filename
file -L filename 查看軟鏈接
ln source.txt hardsource.txt 不允許鏈接到目錄 不能跨文件系統(tǒng)
ln -s source.txt softsource.txt
ln -f 強(qiáng)制
ln -n 把鏈接目錄 當(dāng)做文件看
find . 當(dāng)前目錄 -name [pattern] -type f d l b c p s [pattern] -regex '.* '
find . -perm 663 按權(quán)限搜索
find -exec args {} ;
find . -type f -size +40m
find , -type f -a -size +30k and -o or
find . -regex "./e .avi .[0-9]+$" 正則 以 . 開始 + 1-n * 0-n ? 0-1
w s d
tree 列出 樹狀文件 目錄
du disk usage 展示磁盤用量統(tǒng)計(jì)信息 側(cè)重文件和文件夾的磁盤占用方面
du -sh summarize human
du -ch total human
du -ah .
du -sh *|sort -nr
du -h ab.txt
gzip hot.avi 壓縮文件 會(huì) 刪除源文件,若保留源文件 gzip -c hot.avi
gzip -d hot.avi.gz 解壓文件
tar -zxvf filename.tar.gz -C /usr/local/
-x 進(jìn)行拆包
-z 使用gzip 壓縮或者解壓縮
-v view 直播解壓過(guò)程
-f file 指定 文件
tar -czvf finame.tar.gz directory 打包 壓縮
-c 打包
tar -ztvf file.tar.gz 只是看看 文件 t 列出文件中內(nèi)容
gzip -3 erro.jpg
對(duì)于 bzip2 壓縮包
tar -xjvf fina.tar.bz2 解壓
tar -cjvf fina.tar.bz2 fina/ 壓縮
bzip2 error.jpg 壓縮 會(huì)刪除源文件
zip -r zdata.zip note.txt soft/
unzip -d newzip/ zdata.zip
unzip -v zdata.zip 只是看看
zip zdata.zip -d mynote.txt 刪除壓縮包中的文件
dd device driver
dd if=/dev/sda of=/root/sda.img 備份
dd if=/root/sda.img of=/dev/sda 恢復(fù)
dd if=/dev/sda |gzip >/root/sda.img.gz
dd if=/dev/sda |bzip2 > disk.img.bz2
dd if=/dev/sda2 of=/root/sda.img
dd if=/dev/mem of=/root/mem.img count=1 bs=1440k
dd if=/dev/zero if=/dev/null if=/dev/urandom
nc -l port
ps 查看進(jìn)程
ifconfig 查看網(wǎng)絡(luò)
kill 進(jìn)程號(hào)
shutdown 40
echo -e " " 設(shè)別 轉(zhuǎn)義字符
echo -n ' ' 去掉 echo 末尾的換行符
echo -e "\033[41;36m hello world \033[0m" \033 \e \E 等價(jià)
grep 搜索 提取
grep --color “l(fā)eo” /etc/password
grep -v "leo" /etc/password
grep -A 1 leo /etc/password after
grep -B 1 leo /etc/password before
grep -C rand
grep -i "leo" ./etc 不區(qū)分大小寫
grep -l "fires" *.txt 處理多文件 存在
grep -L "fires" *.txt 不存在
grep "bash$" "^leo" /ect/ 處理正則
grep -w "bash" /etc 處理詞
grep -c "root" /etc/pad
sed stream editor 流編輯器 是一個(gè)面向 行處理的工具格了,它以 行 為處理單位蜀撑,針對(duì)每一行進(jìn)行處理挤巡,處理后的結(jié)果會(huì)輸出到標(biāo)準(zhǔn)輸出(STDOUT),sed 不會(huì)修改 被讀取的文件
而是將 原內(nèi)容 或修改后的內(nèi)容輸出到標(biāo)準(zhǔn)輸出中酷麦。工作原理矿卑,每一次處理一行內(nèi)容,處理時(shí)沃饶,sed會(huì)把要處理的行存儲(chǔ)在緩沖區(qū)中母廷,接著用sed 命令處理緩沖區(qū)中的內(nèi)容轻黑,處理完成后,把緩沖區(qū)的內(nèi)容送往屏幕琴昆。接著 處理下一行氓鄙,這樣不斷重復(fù),直到文件末尾业舍,這個(gè)緩沖區(qū)被稱為 ”模式空間“
sed '/2/d' roc.txt
sed -n '/4/p' roc.txt -n 警告sed 抖拦,只輸出 明確要輸出的行
/d 表示刪除行 ; /p 打印該行 舷暮; /r 讀取指定文件的內(nèi)容 /w 寫入指定文件 /a 在下面插入新行新內(nèi)容 /g 替換 s/ 刪除
sed 's/..//' test 刪除每一行的前兩個(gè)字符
sed 's/B.*/&2008/' mysed.txt 追加& s/ /
echo "helo world " |sed 's/ (helo) .*/world \1/'
world helo
sed -e 's/Beijing/london/g' -e '/Beijing/d' mysed.txt
sed '/2005/r ins.txt' mysed.txt 匹配 mysed.txt 2005 后,插入ins.txt 到mysed.txt
sed '/2004/i\china' mysed.txt 匹配2004 前一行 插入 china i
sed '/2004/a\china' mysed.txt 匹配 2004 后一行插入 china a
sed '/200[4-6]/w new.txt' mysed.txt,將指定行寫入到特定文件中
sed 'y /ei/ie' mysed.txt y就是按照字符順序态罪,實(shí)現(xiàn)前后的替換 y/source /dist 而 s的語(yǔ)法是
s/regexp/replacement
who |cut -b 3 -b 以字節(jié) 為單位提取
who |cut 3-5,8
cut -c 以字符為單位提取內(nèi)容
cut -c 3 roc.txt
cut -d : -f 1,3-5,7 -d 以什么為間隔, -f filed 要提取的域
wc 計(jì)算字?jǐn)?shù)
wc -c roc.txt 以字節(jié) byte
wc -m ro.txt 以字符char 來(lái)計(jì)數(shù)
wc -l ro.txt 以 行l(wèi)ine
wc -w ro.txt 以 詞 word
wc -L ro.txt 可以顯示一個(gè)文件中最長(zhǎng)行的長(zhǎng)度
wc rot.txt 顯示行數(shù) 詞數(shù) 字節(jié)數(shù) 文件名稱
split 拆分文件
split -b 400M toykohot.avi -b 指定每個(gè)拆分文件的大小 -d 指定數(shù)字
split -b -C -l 要切割的文件 輸出的文件名前綴 -a
md5sum hot.avi md5 驗(yàn)證文件
sha1 hot.avi
paste 拼接文件
paste ro.txt roc.txt
paste -d '' p3.txt p2.txt p1.txt -d 使用字符 拼接
paste -s -d '' p3.txt p2.txt p1.txt -s 以每個(gè)文件自身為一個(gè)處理單元
sort 排序 將文件的每一行 作為一個(gè)單元進(jìn)行排序下面,其規(guī)則是從行首 字符向后复颈,依次 按 ASCII碼值前后順序進(jìn)行比較,最后將他們按升序輸出 默認(rèn)是 stdout 輸出
sort seq.txt 默認(rèn)將每行 ASCII碼值怕徐
sort -u seq.txt -u 消除重復(fù)
sort -u -r seq.txt -r顛倒順序沥割,逆序 降序
sort -r number.txt -o number.txt -o將排序結(jié)果保存到文件 或者重寫源文件
sort -n number.txt -n number 按照數(shù)值排序
sort -n -k 2 -t : fruit.txt -k 指定要針對(duì)的那一列進(jìn)行排序 券膀, -t 指定間隔符
-f 小寫字母轉(zhuǎn)大寫
-c 檢查文件是否排序 ,亂序則輸出 第一行
-C 檢查文件是否排序驯遇,亂序則不輸出
-M 按月份排序
-b 忽略空白
sort -n -t ; -k 2 -k 3 force.txt ,兩個(gè)排序 列,有先后蓄髓,都是升序
sort -n -t ' ' -k 3r -k 2 faco.txt ,兩個(gè) 排序 叉庐, 3降序,然后相同的按 2 升序
sort -t ' ' -k 1.2 facebook.txt 對(duì)第一列 的第二個(gè)字母開始到本行的最后一個(gè)字符為止的字符串進(jìn)行排序
awk 其實(shí)是一門編程語(yǔ)言 会喝,非常適合用來(lái)處理文本 類 數(shù)據(jù)陡叠,數(shù)據(jù)可以來(lái)自標(biāo)準(zhǔn)輸入,外部文件肢执,或其他命令的輸出枉阵,,awk同事支持正則表達(dá)式和用戶自定義的函數(shù)
行 record 预茄, field 列
awk '{print $0}' student.txt
awk '{print $1 ,$3}' fx.txt
awk 'BEGIN {print "" } {print ""} END {print ""}' student.txt
awk '{ print $1+$3+$6}' stu.txt
awk 'BEGIN {print "" } $3 ~ /beijing/ {print $1,$3,$2+$5 } END {print ""}' stud.txt 帥選
awk 'Pattern {Action}' filename ,Pattern 和Action 都是可選的兴溜,但是必須有一個(gè),action 如果被指定 {} 則不做任何動(dòng)作耻陕,也沒(méi)有輸出拙徽,
awk 'N/R%2==0 {next} {print NR,$0}' INP.txt NR表示當(dāng)前記錄的行號(hào) ,用‘NR 是否嫩被2整除 的方法可以看出當(dāng)前是奇數(shù)行還是偶數(shù)行诗宣, 偶數(shù) 不輸出 進(jìn)行下一行膘怕, 奇數(shù) 輸出當(dāng)前行
awk 'NR%3!=0 {T={T " "$0);next} {print T,$0; T=" "}' in.txt 其實(shí)是一個(gè) if do else done
把 T 作為一個(gè)變量 ,中間存在賦值 操作
awk 'BEGIN {T=" "} /worktime/ {print T;T=$0; next}{T=T" "$0} END{print T}' input.txt
awk '{print $0}' input.txt inp.txt
awk 'NR==FNR &&FNR==1 {print FILENAME, $0} NR>FNR &&FNR==8{print FILENAME ,$0}' INT.txt in.txt
awk 'ARGIND==1{...}ARGIND==2{...}ARGIND==3{...}...' file1 file2 file3 ...
awk 'BEGIN {OFS=FS=":" NR==FNR {a[$1]=$2} NR>FNR{$2=a[$1];print}' shadow passwd
OFS 輸出字段分隔符 FS 字段分隔符
合并兩文件并求和
awk '{ for(i=1;i<=NF;i++) a[i]=$i; getline<"1.txt"; for(i=1;i<=NF;i++) printf a[i]+$i" ";
printf "\n"}' 2.txt
外部調(diào)用 getline 引用外部數(shù)據(jù) 召庞,system 調(diào)用shell 中的命令
awk '{getline;print}' test getline 左右沒(méi)有 < | ,getline 是對(duì)當(dāng)前打開的文件操作岛心,表示讀取行的下一行數(shù)據(jù)来破,并把讀取到的數(shù)據(jù)賦值給$0,同時(shí)更新 NF NR FNR
awk '{print $0; while ((getline <"1.txt") >0)print$0)' test
awk 'BEGIN {system("ls -al")' awk 無(wú)法直接將腳本中的數(shù)據(jù)直接輸出給 shell命令,反之 依然
ifconfig |awk '/eth/ {inter=$1;getline;sub(/inetaddr:/,"");print inter,$1}'
查看 TCP 連接狀態(tài)
netstat -nat |awk '{print $6}' |sort|uniq -c |sort -rn
查找請(qǐng)求Shuffle排名 前5名的ip
netstat -anlp |grep 80|grep tcp|awk '{print $5}'|awk -F : '{print $1 }' |sort|
uniq -c |sort -nr|head -n 5
鎖定tme——wait 連接較多的源 ip
netstat -n |grep TIME_WAIT |awk '{print $5}'|awk -F :'{print $1}'|sort|
uniq -c |sort -nr|head -n 5
使用tcpdump 嗅探 80 端口的訪問(wèn)