linux 常用命令

ls ls -l ls -la ls -li ls -h
mkdir mkdir -P

cat cat -n [顯示行號]
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 代碼補全
上方向鍵 歷史命令
ctrl + c
set
alias
unalias 別名 清除別名
unalias -a 清除 所有別名

history -c -w

重定向
grep egrep fgrep

read -p "提示語 " 變量
read -t 時間second
read -s 保密模式

cat ab.txt | while read line
do
echo "every name : $line"
done

expr 計算 注意要有空格
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é)助的命令,并作為哪個命令的參數(shù)來執(zhí)行

cat ab.txt |xargs -E "korea" echo
date
time 計算 命令執(zhí)行時間 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 強制
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)計信息 側(cè)重文件和文件夾的磁盤占用方面

du -sh summarize human
du -ch total human
du -ah .
du -sh *|sort -nr
du -h ab.txt

gzip hot.avi 壓縮文件 會 刪除源文件,若保留源文件 gzip -c hot.avi
gzip -d hot.avi.gz 解壓文件

tar -zxvf filename.tar.gz -C /usr/local/
-x 進行拆包
-z 使用gzip 壓縮或者解壓縮
-v view 直播解壓過程
-f file 指定 文件

tar -czvf finame.tar.gz directory 打包 壓縮
-c 打包

tar -ztvf file.tar.gz 只是看看 文件 t 列出文件中內(nèi)容

gzip -3 erro.jpg

對于 bzip2 壓縮包
tar -xjvf fina.tar.bz2 解壓

tar -cjvf fina.tar.bz2 fina/ 壓縮

bzip2 error.jpg 壓縮 會刪除源文件

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 查看進程
ifconfig 查看網(wǎng)絡(luò)
kill 進程號
shutdown 40
echo -e " " 設(shè)別 轉(zhuǎn)義字符
echo -n ' ' 去掉 echo 末尾的換行符
echo -e "\033[41;36m hello world \033[0m" \033 \e \E 等價

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 流編輯器 是一個面向 行處理的工具,它以 行 為處理單位,針對每一行進行處理,處理后的結(jié)果會輸出到標(biāo)準(zhǔn)輸出(STDOUT),sed 不會修改 被讀取的文件
而是將 原內(nèi)容 或修改后的內(nèi)容輸出到標(biāo)準(zhǔn)輸出中。工作原理,每一次處理一行內(nèi)容,處理時,sed會把要處理的行存儲在緩沖區(qū)中,接著用sed 命令處理緩沖區(qū)中的內(nèi)容,處理完成后,把緩沖區(qū)的內(nèi)容送往屏幕。接著 處理下一行,這樣不斷重復(fù),直到文件末尾,這個緩沖區(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 刪除每一行的前兩個字符

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就是按照字符順序,實現(xiàn)前后的替換 y/source /dist 而 s的語法是
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ǐn)?shù)
wc -c roc.txt 以字節(jié) byte
wc -m ro.txt 以字符char 來計數(shù)
wc -l ro.txt 以 行l(wèi)ine
wc -w ro.txt 以 詞 word
wc -L ro.txt 可以顯示一個文件中最長行的長度
wc rot.txt 顯示行數(shù) 詞數(shù) 字節(jié)數(shù) 文件名稱

split 拆分文件
split -b 400M toykohot.avi -b 指定每個拆分文件的大小 -d 指定數(shù)字
split -b -C -l 要切割的文件 輸出的文件名前綴 -a
md5sum hot.avi md5 驗證文件
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 以每個文件自身為一個處理單元

sort 排序 將文件的每一行 作為一個單元進行排序,其規(guī)則是從行首 字符向后,依次 按 ASCII碼值前后順序進行比較,最后將他們按升序輸出 默認(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 指定要針對的那一列進行排序 , -t 指定間隔符

-f 小寫字母轉(zhuǎn)大寫
-c 檢查文件是否排序 ,亂序則輸出 第一行
-C 檢查文件是否排序,亂序則不輸出
-M 按月份排序
-b 忽略空白
sort -n -t ; -k 2 -k 3 force.txt ,兩個排序 列,有先后,都是升序
sort -n -t ' ' -k 3r -k 2 faco.txt ,兩個 排序 , 3降序,然后相同的按 2 升序

sort -t ' ' -k 1.2 facebook.txt 對第一列 的第二個字母開始到本行的最后一個字符為止的字符串進行排序

awk 其實是一門編程語言 ,非常適合用來處理文本 類 數(shù)據(jù),數(shù)據(jù)可以來自標(biāo)準(zhǔn)輸入,外部文件,或其他命令的輸出,,awk同事支持正則表達式和用戶自定義的函數(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 都是可選的,但是必須有一個,action 如果被指定 {} 則不做任何動作,也沒有輸出,

awk 'N/R%2==0 {next} {print NR,$0}' INP.txt NR表示當(dāng)前記錄的行號 ,用‘NR 是否嫩被2整除 的方法可以看出當(dāng)前是奇數(shù)行還是偶數(shù)行, 偶數(shù) 不輸出 進行下一行, 奇數(shù) 輸出當(dāng)前行

awk 'NR%3!=0 {T={T " "$0);next} {print T,$0; T=" "}' in.txt 其實是一個 if do else done
把 T 作為一個變量 ,中間存在賦值 操作

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 左右沒有 < | ,getline 是對當(dāng)前打開的文件操作,表示讀取行的下一行數(shù)據(jù),并把讀取到的數(shù)據(jù)賦值給$0,同時更新 NF NR FNR

awk '{print $0; while ((getline <"1.txt") >0)print$0)' test

awk 'BEGIN {system("ls -al")' awk 無法直接將腳本中的數(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

查找請求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 端口的訪問

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容