????此篇文章內容是我很久以前在印象筆記中的一個知識總結,大概122個Linux指令。如今,寫出來就當再回顧一遍了。若有錯誤的內容,請朋友們指出。
pwd ? 顯示當前位置的路徑
? ? ? ? ? 參數:-P?????顯示真實路徑,而非鏈接路徑
mkdir 創建目錄
? ? ? ? ? 參數:-m ? ? 設置目錄權限。eg:mkdir -m 777 /apps
? ? ? ? ? ? ? ? ? ? ? -p ? ? 設定層級目錄。 eg:mkdir -p /apps/nginx
? ? ? ? ? eg:mkdir -m 777 -p /tmp/test{1,2}
ls ? 列出文件或目錄名稱
? ? ? ? ? 參數:-a ? ? 列出全部文件 包括.開頭的文件(隱藏文件)
? ? ? ? ? ? ? ? ? ? ?-A ? ? 列出全部文件 不包括.與..兩個目錄
? ? ? ? ? ? ? ? ? ? ?-d ? ? 僅列出目錄
? ? ? ? ? ? ? ? ? ?? -f ? ? ?直接列出結果 ,不排序
? ? ? ? ? ? ? ? ? ?? -F ? ? 列出全部文件,并顯示附加信息,如 * ?/ ?= ?|
? ? ? ? ? ? ? ? ? ? ?-h ? ? 顯示人類易讀的文件容量
? ? ? ? ? ? ? ? ? ? ?-l ? ? ?長格式顯示
? ? ? ? ? ? ? ? ? ? ?-t ? ? ?以時間排序
? ? ? ? ? ? ? ? ? ? ?-r ? ? ?反向輸出
? ? ? ? ? ? ? ? ? ? ?-i ? ?? 顯示inode
? ? ? ? ? ? ? ? ? ? ?-Z ? ? 查看安全性文件(selinux需開啟)
?? ??? ??? ??? ??? ??--time-style=long-iso ?格式化時間
????????eg: ? ?ls -l --time-style=long-iso
????????eg: ? ?ls -lhi?
8599744978 drwxr-xr-x? 3 stephenzhang? staff? ? 96B? 6 28 18:44 PycharmProjects
以上屏幕輸出字段的解析:
第一列:inode 索引節點編號:是文件或目錄所在磁盤中唯一標識,讀取時先讀取此索引節點。
第二列:
?? ?? ? 第1個字符:文件類型,-普通文件;d目錄;l鏈接文件;c字符文件
?? ?? ? 第2-10字符:(rwxrwxrwx)文件權限
?? ?? ? 第11個字符:. ?selinux相關,當關閉selinux后,. 即消失。
第三列:文件硬鏈接數。相當于文件的另一個入口,同一個文件的對應的硬鏈接其對應相同的inode編號。
第四列:文件的屬主(或用戶)
第五列:文件所在的用戶組(屬組)
第六列:文件大小
第七列:文件改動日期/時間
第八列:文件名稱或目錄名稱
du? ?統計文件或目錄使用容量
? ? ? ? ? 參數:-a ? ? 所有文件與目錄
? ? ? ? ? ? ? ? ? ? ? -s ? ? 只顯示總數
? ? ? ? ? ? ? ? ? ? ? -h ? ??顯示人類易讀的文檔容量
cp? ?復制文件或目錄
? ? ? ? ? 參數:-a ?? 相當于-dr --preserve=all
? ? ? ? ? ? ? ? ? ? ?-p ?? 連同文件的屬性(權限、用戶、時間)一起復制。
? ? ? ? ? ? ? ? ? ? ?-r ? ? 遞歸復制,層級目錄復制,但不復制文件的權限。
? ? ? ? ? ? ? ? ? ? ?-i ? ? ?覆蓋詢問
? ? ? ? ? ? ? ? ? ? ?-u ? ? 若復制的文件存在差異時才進行復制
rm? ?刪除文件或目錄
? ? ? ? ? 參數:-f ? ?強制刪除
? ? ? ? ? ? ? ? ? ? ?-i ? ? 刪除提示
? ? ? ? ? ? ? ? ? ? ?-r ? ?遞歸刪除
chgrp? ?改變文件所屬組
? ? ? ? ? 參數:-R ? 遞歸
? ? ? ? ? eg:chgrp -R python /tmp/test
chown? ?改變文件或目錄擁有者
? ? ? ? ? 參數:-R ? 遞歸
? ? ? ? ? eg:chown -R python.python ?/tmp/test
chmod? ?改變文件權限 ??r:4 w:2 x:1
? ? ? ? ? 參數:-R ? ? 遞歸
? ? ? ? ? ? ? ? ? ? ? ?u g o a: ? +加??-減?=設定 ? eg:u+r
? ? ? ? ? eg:chmod u=rwx,go=rx?/tmp/test/test.txt
? ? ? ? ? eg:chmod a+r?/tmp/test/test.txt
? ? ? ? ? eg:chmod 644 /tmp/test/test.txt
?? ??? ?? setuid :針對程序或二進制文件(注意.sh文件無效) eg: -rwsr--r--? ????
? ? ? ? ? 有s或S位時,普通用戶具有該文件的屬主權限并可通過屬主權限創建進程。
? ? ? ? ? eg:chmod 4644 file ?或 chmod u+s file
? ? ? ? ? setgid : 多用戶共享目錄的權限 chmod g+s /directory ?
useradd? ?創建用戶
? ? ? ? ? 參數:-M ? ? 不建立家目錄
? ? ? ? ? ? ? ? ? ? ? -s ? ?? shell
? ? ? ? ? ? ? ? ? ? ? -g ? ? ?group
? ? ? ? ? ? ? ? ? ? ? -G ? ? 補充group
? ? ? ? ? ? ? ? ? ? ? -m ? ? 建立家目錄
? ? ? ? ? ? ? ? ? ? ? -D ? ? 查看預設值
? ? ? ? ? ? ? ? ? ? ? -u ? ? ?指定uid號
? ? ? ? ? ? ? ? ? ? ? -e ? ? ?過期時間
? ? ? ? ? ? ? ?eg:useradd ?-g new1 -s /sbin/nologin -M ?mysql
? ? ? ? ? ? ? ? ? ? ? ?useradd -D -e "" ? 取消過期時間默認設定?
more? ?翻頁查看文件
less ? ? 翻頁查看文件
head? ?從文件頭部查看
? ? ? ? ? ? ?eg:head ?-10 ?test.txt
tail ? 從文件尾部查看
? ? ? ? ? 參數:-f ? ? 追蹤文本變化并顯示
? ? ? ? ? ? ?eg:tail -10 test.txt
? ? ? ? ? ? ? ? ? ? ?tail -f test.txt
umask? ?默認權限
? ?? ?????參數:-S ? ? 顯示ugo權限
lsattr? ?查詢文件或目錄隱藏屬性
? ?? ?????參數:-a:顯示隱藏文件的屬性
? ? ? ? ? ? ? ? ? ? ? ?-d:僅列出目錄本身的屬性而非目錄內的文件名
? ? ? ? ? ? ? ? ? ? ? ?-R:連同子目錄的文件一并列出
chattr? ?設定文件或目錄隱藏屬性
? ?? ?????參數:-i ? ? 禁止刪除或更改等任何操作
? ? ? ? ? ? ? ? ? ? ?-a ? ?只能添加內容
which? ?查找指定指令信息
? ?? ?????參數:-a ? ? 將所有path目錄中找到的指令列出
? ? ? ? ? ? eg:which ll
find ? 查找文件或目錄
? ? ? ? ? 參數:-name ?? 查找名字
? ? ? ? ? ? ? ? ? ? ? -type ? ? ?類型 ?f(文件) d(目錄)
? ? ? ? ? ? ? ? ? ? ? -mtime ? 修改的時間。find / -mtime +4 ?五天之前修改不包括第四天
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?find / -mtime 4 ?第四天修改
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?find / -mtime -4 四天內修改
? ? ? ? ? ? ? ? ? ? ? -perm ? ? 權限
? ? ? ? ? ? ? ? ? ? ? -size ? ? ? 文檔大小 ? ? ? find / -size +1M 大于1M文檔
? ? ? ? ? ?eg:?條件匹配查找find . \( -name "*.sh" -o -name "*.txt" \) -print
?? ??? ??? ??? ?? 匹配并執行cmd,find / -name '*.sh' -exec cat -n?{} \;
cat? ?查看文件內容
? ? ? ? ? 參數:-n ? ? 顯示行號
? ? ? ? ? ? ? ? ? ? ?-A?????
df ? 查看磁盤或目錄容量
? ? ? ? ? 參數:-h ? ? 以人類易讀的方式顯示
? ? ? ? ? ? ? ? ? ? ?-T ? ? 顯示文件系統名稱
? ? ? ? ? ? ? ? ? ? ?-i ? ? ?顯示inode
ln? ?鏈接
? ? ? ? ? 參數:-s ? ? 軟鏈接或標記鏈接。 生成新的inode文件
? ? ? ? ? 不帶s參數時,為硬鏈接。且硬鏈接產生的文件 inode 是一樣的
lsblk? ?列出所有磁盤
? ? ? ? ? 參數:-f ? ? 列出文件系統名稱
? ? ? ? ? ? ? ? ? ? ?-m ? 列出設備權限
blkid? ?查存儲設備UUID
mount ? 掛載
? ?? ?????參數:-a ? ? 掛載stab中未掛載的設備
? ? ? ? ? ? ? ? ? ? ? -l ? ? ?顯示Label列
? ? ? ? ? ? ? ? ? ? ? -t ? ? ?制定掛載類型,如xfs,ext3,ext4,iso9660,nfs
? ? ? ? ? ? ? ? ? ? ? -o ? ? 參數,async,sync:同步寫入或異步寫入。默認為async
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? atime,noatime:更改訪問時間
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ro,rw:只讀或讀寫
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? auto,noauto:允許自動掛載或不自動掛載
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? suid,nosuid:是否允許suid/sgid的檔案格式
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? exec,noexec:是否可以執行二進制檔案
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? user,nouser:一般用戶是否可以mount
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? defaults:預設值為rw,suid,dev,exec,auto,nouser,async
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? remount:重新掛載
swapon? ?設置交換空間
? ? ? ? ? 參數:-s ? ? 查詢所有交換空間
swapoff? ?取消交換空間
mkswap? ?格式化交換空間
parted ? 分區
? ? ? ? ? 參數:print ? ? 顯示所有分區。例:parted /dev/sdb print
? ? ? ? ? ? ? ? ? ? ? gpt ? ? ? 轉換mbr到gpt
? ? ? ? ? ? ? ? ? ? ? mbr ? ? ?轉換gpt到mbr
cpio ? 數據處理
? ? ? ? ? 參數:-ovcB 備份
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ?????例:cpio ?-ovcB> filename|device?
? ? ? ? ? ? ? ? ? ? ?-ivcdu 還原
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 例:cpio -ivcdu
? ? ? ? ? ? ? ? ? ? ?-ivct ?? 查看
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 例:cpio -ivct
? ? ? ? ? ? ? ? ? ? ?-o ? ? 拷貝,將數據拷貝到檔案或設備中
? ? ? ? ? ? ? ? ? ? ?-B ? ? Blocks大小增加到5120bytes,默認為512bytes
? ? ? ? ? ? ? ? ? ? ?-i ? ? ?將數據從檔案或設備中拷貝到系統中
? ? ? ? ? ? ? ? ? ? ?-d ? ? 還原時,建立目錄
? ? ? ? ? ? ? ? ? ? ?-u ? ? 自動覆蓋舊檔案
? ? ? ? ? ? ? ? ? ? ?-v ? ? 顯示存儲過程
vim? ?文本編輯(vim功能十分強大,以后單獨寫關于其的文章)
? ? ? ? ? 多行復制:ma? y’a
? ? ? ? ? 顯示行號: :set nu
? ? ? ? ? 替換: :%s#內容1#內容2#g
alias ? 設置別名
? ? ? ? ? 例:alias la=‘ls -al'
set? ?查看自定義變量
unset?? 取消自定義變量
env ? 查看環境變量
read ? 讀取鍵盤輸入
? ? ? ? ? 參數:-p ? ? 輸入提示文本
declare? ?聲明變量
? ? ? ? ? 參數:-a:將變量定義為陣列array類型
? ? ? ? ? ? ? ? ? ? ? -i:將變量定義為整數類型
? ? ? ? ? ? ? ? ? ? ? -x:將變量導出為環境變量
? ? ? ? ? ? ? ? ? ? ? -r:將變量設置為readonly類型
? ? ? ? ? ? ? ? ? ? ? eg:declare -i sum=100+200
ulimit? ?限制關系(修改文件描述符)
? ? ? ? ? 參數:-H:hard。嚴格限制
? ? ? ? ? ? ? ? ? ? ? -S:soft。警告限制
? ? ? ? ? ? ? ? ? ? ? -a:列出所有限制
? ? ? ? ? ? ? ? ? ? ? -f:可建立的最大文件大小
? ? ? ? ? ? ? ? ? ? ? -t:可以是用的最大CPU時間(單位s)
? ? ? ? ? ? ? ? ? ? ? -u:單一用戶可以使用的最大程序數量
echo? ?顯示
? ? ? ? ? 參數:-e:解釋“\”跳脫符 ?(\t tab;\b 退格;\n 回車)
? ? ? ? ? ? ? ? ? ? ? -n: ?不換行
? ? ? ? ? 例:echo -e “hello\n”
type? ?查詢指令類型
? ? ? ? ? 參數:-t:類型。file:為外部指令;alias:表示別名;builtin:內建指令
cut ? 截取
? ? ? ? ? 參數:-d ? ? 分隔符 如’:'
? ? ? ? ? ? ? ? ? ? ? -f ? ? ?取第幾字段
? ? ? ? ? ? ? ? ? ? ? -c ? ? 取第幾個字符 如 取第12-15的字符
? ? ? ? ? eg:echo ${PATH}|cut -d ‘:’ -f 2
grep? ?內容過濾 善于取行
? ? ? ? ? 參數:-a ? ? 將二進制文檔以test文檔方式搜索
? ? ? ? ? ? ? ? ? ? ? -c ? ? 計算找到的字符數
? ? ? ? ? ? ? ? ? ? ? -i ? ? ?忽略大小寫
? ? ? ? ? ? ? ? ? ? ? -n ? ? 順便輸出行號
? ? ? ? ? ? ? ? ? ? ? -v ? ? 反向選擇
? ? ? ? ? ? ? ? ? ? ? -o? ? ?只顯示篩選的文字
? ? ? ? ? ? ? ? ? ? ? -E ? ? 擴展模式
????????eg:egrep '(TOM|DAN)’ 或 grep -E ‘(a|b)'
sort? ?排序
? ? ? ? ? 參數:-f ? ? 忽略大小寫的差異
? ? ? ? ? ? ? ? ? ? ?-b ?? 忽略前面的空白字符部分
? ? ? ? ? ? ? ? ? ? ?-M ? 以月份來排序
? ? ? ? ? ? ? ? ? ? ?-r ? ? 反向排序
? ? ? ? ? ? ? ? ? ? ?-u ? ? 去重,相同數據 僅列一行
? ? ? ? ? ? ? ? ? ? ?-t ? ? ?分隔符
? ? ? ? ? ? ? ? ? ? ?-n ? ? 指定按數字大小排序。默認是以ascll碼排
? ? ? ? ? ?eg:cat /etc/passwd|sort -t: -k3 -n
wc ? 統計行數
? ? ? ? ? 參數:-l ? ? 統計總行數
? ? ? ? ? ? ? ? ? ? ?-w ? 僅列出使用多少不同的字符數
? ? ? ? ? ? ? ? ? ? ?-m ? 列出使用字符的總數
uniq? ?將上下連續重復字符顯示為一行
? ? ? ? ? 參數:-i ? ? 忽略大小寫
? ? ? ? ? ? ? ? ? ? ?-c ? ? 進行統計數量
? ? ? ? ? 例:last|cut -d ' ' -f 1|sort|uniq -c
? ? ? ? ? ?統計單詞數量:
?? ??? ??? ??? ??? ??? ?egrep -o "[a-zA-Z]+" /tmp/test.1 |sort|uniq -c
awk? ?格式化輸出
區域與記錄
field域,區域,字段 ?(eg:?$1,$2…$NF)。FS 為切割區域的標識符
record記錄,默認一整行,并以換行符結束
? ? ? ? ? 參數:-F ? ? 分隔符,如”:”或“[ :]”
? ? ? ? ? ? ? ? ? ? ?NR ? 逐行記錄行號
? ? ? ? ? ? ? ? ? ? ?NF ? ?顯示每行的段數(區域數量)
? ???? ??? ??? ?? ? ?FS ? 字段分隔符,默認為空格
?? ??? ??? ??? ?? ? ?$NF ? 顯示最后一個區域
?? ??? ??? ??? ?? ? ?RS ? ? 記錄的分隔符,可以指定每個記錄的結尾標志
?? ??? ?? ?特殊操作符號:
?? ??? ??? ??? ?? ? ~ :用于對記錄或字段的表達式進行匹配
? ? ? ? ? ? ? ? ? ? !~:用于表達與~相反的意思
? ? ? ? ? ?引用外部變量:"'"$i"'"
? ? ? ? ? ?eg:awk '$1~/^root/{print $0}' ?file
? ? ? ? ? ? ? ? ? ?gawk --posix '$1~/o{1,2}/{print $NF}' test.1
? ? ? ? ? ?eg:awk -F '[ :]' '{print $2}' new
? ? ? ? ? ? ? ? ? awk -F '[ :]' '{print NF}' new 顯示每行的段數
? ? ? ? ? ? ? ? ? awk -F '[ :]' '{print NR}' new 顯示 行號
? ? ? ? ? ? ? ? ? last -n 5|awk '{print $1 "\t lines:" NR "\t columns:" NF}'
? ? ? ? ? ? ? ? ? cat /etc/passwd | awk '{FS=":"} $3 < 10 {print $1 "\t " $3}
? ? ? ? ? ?eg:統計文件空行總和
?? ??? ??? ??? ???awk '/^$/{a=a+1}END{print a}' /etc/services
? ? ? ? ? ?eg: 統計所有環境變量的目錄中的三個字母指令的個數
?? ??? ??? ??? ???find $(echo $PATH|tr ":" " ") -type f -name "???"|awk '{a+=1}END{print a}'
?? ?? ??? ? eg:for i in `seq $(wc -l host|awk '{print $1}')`;do ssh admin@$(awk 'NR=="'"$i"'"{print $1} ' host) /sbin/ifconfig;done
setfacl ? 設置文件或文件夾訪問控制
? ? ? ? ? 參數:-m ? ? 修改文件或文件夾訪問選項
? ? ? ? ? ? ? ? ? ? ? -x ? ? ?移除文件或文件夾訪問選項
? ? ? ? ? eg:setfacl -m u:lisa:r file
? ? ? ? ? ? ? ? ?setfacl -m m::rx file
? ? ? ? ? ? ? ? ?setfacl -x g:staff file
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?u:賬號:權限
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?g:組名:權限
? ? ? ? ? ? ? ? ? ? ? ? ? ?? m:權限
getfacl? ?查看文件或文件夾訪問控制級別
tr? ?取代或替換文本中的字符
? ? ? ? ? 參數:-d ? ? 刪除文本中相應的字符
? ? ? ? ? ? ? ? ? ? ? -s ? ? 取代重復的字符
? ? ? ? ? eg:last | tr '[a-z]' '[A-Z]’ 將字母小寫變為大寫
? ? ? ? ? ? ? ? ? cat /etc/passwd | tr -d ':'
join? ?將兩個文本內容拼接到一起
? ? ? ? ? 參數:-t ? ? 分隔符,兩個進行對比如果相同則連成一行
? ? ? ? ? ? ? ? ? ? ? -i ? ? 忽略大小寫
paste ??將兩個文本內容簡單拼接 ? ? 默認以tab間隔
? ? ? ? ? 參數:-d ? ? 分隔符
sed ? 文本中字符處理
? ? ? ? ? 參數:-i ? ? ?編輯文本 ?eg:sed -i ’s/xx/**/g’ new 將new中xx替換為** ,可以把編輯的文件生成新的文件名,如:??-i.bak
? ? ? ? ? ? ? ? ? ? ?-n ? ? 取消默認輸出 ? eg:sed -n '2,5p’ new 顯示new中 2-5行內容
? ? ? ? ? ? ? ? ? ? ?-r ? ? ?采用正則表達式
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?a? ?:新增, a 的後面可以接字串,而這些字串會在新的一行出現(目前的下一行)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?c? ?:取代, c 的後面可以接字串,這些字串可以取代 n1,n2 之間的行!
? ? ? ? ? ? ? ? ? ? ? ? ? ?????d? ?:刪除,因為是刪除啊,所以 d 後面通常不接任何咚咚;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? i? ?:插入, i 的後面可以接字串,而這些字串會在新的一行出現(目前的上一行);
? ? ? ? ? ? ? ? ? ? ? ? ? ?????p? ?:列印,亦即將某個選擇的資料印出。通常 p 會與參數sed -n 一起運作~
? ? ? ? ? ? ? ? ? ? ? ? ? ?????s? ?:取代,可以直接進行取代的工作哩!通常這個 s 的動作可以搭配正則表示法
?? ??? ?? ? eg:替換文件里面內容,并生成新的文件
?? ??? ??? ??? ??? ? sed -ri.bak 's#\:# #g' /tmp/test.1?
? ? ? ? ? ? eg:后向引用
? ? ? ? ? ? ? ? ? ? ?sed -nr 's#(.*) (.*)#ping \1#gp' hosts
kill? ?殺進程 (kill -signal PID)
? ? ? ? ? -l ? ? ?顯示所有signal
? ? ? ? ? -9 ? ? 強制關閉,不推薦。原因是無法進行程序的善后,如,臨時文件、socket鏈接
? ? ? ? ? -15 ? 正常請求關閉進程
? ? ? ? ? -2 ? ? 中斷程序
信號量:
SignalDescriptionSignal number on Linux x86
SIGABRTProcess aborted6
SIGALRMSignal raised by?alarm14
SIGBUSBus error: "access to undefined portion of memory object"7
SIGCHLDChild process terminated, stopped (or continued*)17
SIGCONTContinue if stopped18
SIGFPEFloating point exception: "erroneous arithmetic operation"8
SIGHUPHangup1
SIGILLIllegal instruction4
SIGINTInterrupt2
SIGKILLKill (terminate immediately)9
SIGPIPEWrite to pipe with no one reading13
SIGQUITQuit and dump core3
SIGSEGVSegmentation violation11
SIGSTOPStop executing temporarily19
SIGTERMTermination (request to terminate)15
SIGTSTPTerminal stop signal20
SIGTTINBackground process attempting to read from tty ("in")21
SIGTTOUBackground process attempting to write to tty ("out")22
SIGUSR1User-defined 110
SIGUSR2User-defined 212
SIGPOLLPollable event29
SIGPROFProfiling timer expired27
SIGSYSBad?syscall31
SIGTRAPTrace/breakpoint?trap5
SIGURGUrgent data available on socket23
SIGVTALRMSignal raised by timer counting virtual time: "virtual timer expired"26
SIGXCPUCPU time limit exceeded24
SIGXFSZFile size limit exceeded25
printf? ?格式化輸出
? ? ? ? ? 參數:
? ? ? ? ? ? ? ?關于格式方面的幾個特殊格式:
? ? ? ? ? ?????? \a? ? 警告聲音輸出
? ? ? ? ? ? ?????\b ? ?退格鍵(backspace)
? ? ? ? ? ?????? \f ? ? 清楚屏幕 (form feed)
? ? ? ? ? ?????? \n ? ?輸出新的一行
? ? ? ? ? ? ? ? ?\r? ? 亦即Enter按鍵
? ? ? ? ? ? ? ? ?\t? ? 水平的[tab]按鍵
? ? ? ? ? ? ? ? ?\v? ? 垂直的[tab]按鍵
? ? ? ? ? ? ? ? ?\xNN? NN 為兩位數的數字,可以轉換數字成為字符。
? ? ? ?關于C語言內,常見的變量格式
? ? ? ?%ns? ?那個n是數字, s 代表 string ,亦即多少個字元;
? ? ? ?%ni? ?那個n是數字, i 代表 integer ,亦即多少整數位數;
? ? ? ?%N.nf 那個n與N都是數字,f 代表floating (浮點),如果有小數位數,
? ? ? ? 假設我共要十位數,但小數點有兩位,即為%10.2f
test? ?檢查文件類型與匹配
? ? ? ? ? 參數:-n ? ? 字符串非零
? ? ? ? ? ? ? ? ? ? ?-z ? ? 字符串為零
? ? ? ? ? ? ? ? ? ? ?-b ? ? 文件存在且是塊類型
? ? ? ? ? ? ? ? ? ? ?-c ? ? 文件存在且為字符類型
? ? ? ? ? ? ? ? ? ? ?-d ? ? 文件存在切位文件夾類型
? ? ? ? ? ? ? ? ? ? ?-e ? ? 文件存在
? ? ? ? ? ? ? ? ? ? ?-f ? ? ?文件存在且是規范文件
? ? ? ? ? ? ? ? ? ? ?-g ? ? 文件存在且設置有組ID
? ? ? ? ? ? ? ? ? ? ?-r ? ? ?文件存在且可讀
? ? ? ? ? ? ? ? ? ? ?-w ?? 文件存在且為可寫
? ? ? ? ? ? ? ? ? ? ?-x ? ? 文件存在且為可執行
? ? ? ? ? ? ? ? ? ? ?-s ? ? 文件存在且文件大于0
? ? ? ? ? ? ? ? ? ? ?-S ? ? 文件存在且為socket類型
date? ?時間
? ? ? ? ? 參數:-d (或--date) ? ? ?顯示日期 如:date -d yesterday +%d ;date --date(1 day ago)+%Y%m%d
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?? ? date +F -d?“+2day” ;date +F %H:%M ?-d?“+2min” ?
? ? ? ? ? ? ? ? ? ? ?-s ? ? 設置時間 ? ? ? ? date -s 14:36:00;date -s 2012-08-02;date -s "2012-05-18 04:53:00"
? ? ? ? ? ? ? ? ? ? ? +%F ? ?年月日長格式
? ? ? ? ? ? ? ? ? ? ? +%y-%m-%d ? ?年月日短格式
? ? ? ? ? ? ? ? ? ? ? +%H:%M:%S? ? ?時分秒
? ? ? ? ? ? ? ? ? ? ? +%w ? ? ? ? ? ? ? ? 星期 ? ? 0 - 6 ?(周日-周六)
? ? ? ? ? eg:for n in `seq 30`;do date -s "2017/03/$n";touch access_www_`(date +%F)`.log;done
chage ? ?密碼失效是通過此命令來管理的。
參數:
-m 密碼可更改的最小天數。為零時代表任何時候都可以更改密碼。
-M 密碼保持有效的最大天數。
-W 用戶密碼到期前,提前收到警告信息的天數。
-E 帳號到期的日期。過了這天,此帳號將不可用。
-d 上一次更改的日期
-I 停滯時期。如果一個密碼已過期這些天,那么此帳號將不可用。
-l 例出當前的設置。由非特權用戶來確定他們的密碼或帳號何時過期。
??????例:chage?-d 0 用戶登錄時需要重新修改密碼
sh ? 執行script
? ? ? ? ? 參數:-n ? ? 不執行script,僅查詢語法的問題
? ? ? ? ? ? ? ? ? ? ?-v ? ? 執行script前,先將script內容輸出屏幕
? ? ? ? ? ? ? ? ? ? ?-x ? ? 將使用到的script內容顯示到屏幕上
usermod? ?修改用戶屬性
? ? ? ? ? ?參數:
? ? ? ?????-c? :說明,即 /etc/passwd 第五字段的說明。
? ? ?????? -d? :設置家目錄,即修改 /etc/passwd 的第六字段。
? ? ?????? -g? :設置組,修改 /etc/passwd 的第四字段。
xfs_quota ? ?配額
? ? ? ? ? ? ?xfs_quota -x -c ? ? “指令” 掛載點 ??
? ? ? ? ? ? ? 參數:-x:專家模式,后續才能加-c的指令參數
? ? ? ? ? ? ? ? ? ? ? ? ? -c:后續加的就是指令
? ? ? ? ? ? ? 指令:
? ? ? ? ? ? ? ? ? ? ? ? ?print:單純的列出目前主機內的檔案系統參數等參數
? ? ? ? ? ? ? ? ? ? ? ? ?df:與原本的df一樣的功能,可以加上-b -i -h等
? ? ? ? ? ? ? ? ? ? ? ? ?report:列出目前的quota項目,有-ugr(user/group/project)及-bi等
? ? ? ? ? ? ? ? ? ? ? ? ?state:說明目前支持quota的檔案系統的資料,有沒有啟動等相關信息
? ? ? ? ? ? ? ? ? ? ? ?? limit?:實際限制的項目,可以針對 user/group 來限制,限制的項目有
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?bsoft/bhard?:?block?的?soft/hard?限制值,可以加單位
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? isoft/ihard?:?inode?的?soft/hard?限制值
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? name :?就是用戶/群組的名稱
? ? ? ? ? ? ? ? ? ? ? ?? timer?:用來設定 grace?time?的項目,也是可以針對 user/group?以及?block/inode 設定
? ? ? ? ? ? ? ?eg: ? xfs_quota -x -c "df -h" /home
? ? ? ? ? ? ? ? ? ? ? ? ? xfs_quota -x -c "state"
? ? ? ? ? ? ? ? ? ? ? ? ? xfs_quota -x -c "limit -u bsoft=250M bhard=300M myquota1" /home
mdadm ? 軟RAID管理
? ? ? ? ? ? ? ?參數:--create:為建立RAID的選項;
? ? ? ? ? ? ? ? ? ? ? ? ? --auto=yes:決定建立后面接的軟RAID設備,如 /dev/md0, /dev/md1
? ? ? ? ? ? ? ? ? ?? ?????--chunk=Nk:決定這個設備的 chunk 大小,也可以當成 stripe 大小,一般是64K或 512K。
? ? ? ? ? ? ? ? ? ?? ?????--raid-devices=N:使用幾個分區(partition) 作為RAID的設備
? ? ? ? ? ? ? ? ? ?? ?????--spare-devices=N:使用幾個分區作為備用 (spare) 設備
? ? ? ? ? ? ? ? ? ?? ?????--level=[015] :設定這組RAID的等級。支持很多,不過建議只要用 0, 1, 5 即可
? ? ? ? ? ? ? ? ? ?? ?????--detail:后面所接的那個RAID設備的詳細資訊
? ? ? ? ? ? ? 專用選項:
????????????????????????-l 級別
????????????????????????-n 設備個數
????????????????????????-a {yes|no} 自動為其創建設備文件
????????????????????????-c 指定數據塊大小(chunk)
????????????????????????-x 指定空閑盤(熱備磁盤)個數,空閑盤(熱備磁盤)能在工作盤損壞后自動頂替
????????????????????????-D 查看raid細節
????????????eg:
????????????????????創建raid0:
????????????????????????????mdadm -C /dev/md0 -a yes -l 0 -n 2 /dev/sdb{1,2}
????????????????????創建raid1:
????????????????????????????mdadm -C /dev/md1 -a yes -n 2 -l 1 /dev/sdb{5,6}
lvm? ?邏輯卷管理器(XFS / EXT4)
PV/VG/LV
? ? ? ? 查詢(scan)pvscanvgscanlvscanlsblk, blkid
? ? ? ? 創建(create)pvcreatevgcreatelvcreatemkfs.xfsmkfs.ext4
? ? ? ? 顯示(display)pvdisplayvgdisplaylvdisplaydf, mount
? ? ? ? 增加(extend) vgextendlvextend (lvresize)xfs_growfsresize2fs
? ? ? ? 減少(reduce) vgreducelvreduce (lvresize) ,不支持resize2fs
????????刪除(remove)pvremovevgremovelvremoveumount, 重新格式化
????????調整尺寸大小(resize) lvresizexfs_growfsresize2fs
? ? ? ? 更改屬性(attribute)pvchangevgchangelvchange/etc/fstab, remount
at? ?一次工作計劃 ?(at [-mldv] TIME)
? ? ? ? ? ?參數:-m:當at的工作完成后,即使沒有輸出信息,也email通知使用者該工作已完成
? ? ? ? ? ? ? ? ? ? ? -l:at -l相當于atq,列出目前系統上面的所有該使用者的at計劃
? ? ? ? ? ? ? ? ? ? ? -d:at -d相當于atrm,可以取消一個在at計劃中的工作
? ? ? ? ? ? ? ? ? ? ? -v:可以使用較明顯的時間格式列出at計劃中的工作列表
? ? ? ? ? ? ? ? ? ? ? -c:可以列出后面接的該項工作的實際指令內容
? ? ? ? ? ? ? ? ? ? ? TIME:時間格式,這里可以定義“什么時候要進行at工作計劃”的時間,格式有:HH:MM(例如:05:00)
? ? ? ? ? ? ? ? ? ? ? 或?04:00 2015-07-30
? ? ? ? ? ? ? ? ? ? ? 或?04pm July 30
? ? ? ? ? ? ? ? ? ? ? 或now + 5 minutes、04pm + 3 days
????????eg:
????????????????at now + 5 minutes? <==單位要加 s !
????????????????at> /bin/mail -s "testing at job" root < /root/.bashrc
atq? ? 查詢有哪些工作計劃
atrm? ? 刪除工作計劃 ?如:atrm 3
cron? ? 循環工作計劃(crontab [-u username] [-l|-e|-r])
?? ??? ?? ? /var/spool/cron/$username ?<<配置文件
? ? ? ? ? ?參數:-u:只有root才能進行這種計劃,即幫助其他使用者建立或刪除crontab工作計劃?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?ex:crontab -u new -l ? ?,crontab -u new -e
? ? ? ? ? ? ? ? ? ? ? -e:編輯模式
? ? ? ? ? ? ? ? ? ? ? -l:查詢crontab中的計劃
? ? ? ? ? ? ? ? ? ? ? -r:移除所有的crontab的工作內容
????????????eg:crontab -e
????????????????????0 ?12? *? *? * mail -s "at 12:00" dmtsai < /home/dmtsai/.bashrc
ps ? ?報告進程狀態
? ? ? ? ? 查看每個進程(標準語法):ps -e ? ?ps -ef
? ? ? ? ? 查看每個進程(BSD語法):ps ax ? ps aux
USER:該process是那個用戶創建的?
PID :process的id。
%CPU:process占用的CPU資源的百分比;
%MEM:process 占用的內存的百分比;
VSZ :process 占用的虛擬內存 (Kbytes)
RSS :process 占用的固定內存大小(Kbytes)
TTY :process 是運行在哪個虛擬終端。另外,tty1-tty6 是本機上面的登錄,若為pts/0等,則表示通過網絡連接主機
STAT:process?目前的狀況
START:process 建立時間
TIME : process 實際運行時間
COMMAND:顯示process 發起的實際指令
nice ? ?新執行的指令即給新的nice值 (nice [-n 數字] command)
? ? ? ? ? 參數:-n:后面接一個整數,范圍-20~19
? ? ? ? ? eg:nice -n -5 vim
renice ? ?已有的進程的nice重新調整 (renice [number] PID)
? ? ? ? ? eg:renice -5 14836
jobs? ? 后臺進程狀態
? ? ? ? ? ?參數:-l:除了列出job number與指令之外,同時顯示PID
? ? ? ? ? ? ? ? ? ? ? -r:僅列出后臺運行的工作
? ? ? ? ? ? ? ? ? ? ? -s:僅列出后臺中監聽的工作
ctrl z ? ? 將前臺工作扔到后臺
fg ? ? ? ? ?將后臺工作扔到前臺
eg: ? ? fg ?%1
bg ? ? ? ? ?讓工作在后臺的狀態變為運行中
eg: ? ? bg %2
nohup ? 離線進程管理
? ? ? ?nohup ?“指令與參數” ? ? ? ?在終端機前臺中工作
? ? ? ?nohup??“指令與參數” & ? ? 在終端機后臺中工作
top? ? 動態進程狀態
? ? ? ? ? 參數:-d? :后面可以接秒,預設是 5 秒
? ? ? ? ? ? ? ? ? ? ?-b? :以批次的方式執行 top
? ? ? ? ? ? ? ? ?????通常會搭配數據流重定向將批次的結果輸出成為檔案。
? ? ? ? ? ? ? ? ? ? ?-n? :與-b 搭配,意義是,需要進行幾次 top 的輸出結果。
? ? ? ? ? ? ? ? ? ? ?-p? :指定某些個PID 來進行觀察檢測而已。
? ? ? ? ? ? ?? ?????在 top執行過程當中可以使用的按鍵指令:
? ? ? ? ? ? ? ? ??????? ? :顯示在 top 當中可以輸入的按鍵指令;
? ? ? ? ? ? ? ? ??????? P :以 CPU 的使用資源排序顯示;
? ? ? ? ? ? ? ? ??????? M :以 Memory 的使用字元排序顯示;
? ? ? ? ? ? ? ? ??????? N :以 PID 來排序
? ? ? ? ? ? ? ? ?? ?????T :由該 Process 使用的 CPU 時間積累(TIME+) 排序。
? ? ? ? ? ? ? ? ??????? k :給予某個 PID 一個信號 ?(signal)
? ? ? ? ? ? ? ? ? ? ? ? r :給予某個 PID 重新制訂一個nice 值。?????
? ? ? ? ? ? ? ? ?? ?????q :離開 top 軟件的按鍵。
pstree? ? 進程相關性查看
? ? ? ? ? ? ? ?參數:
? ? ? ? ? ? ? ? ? ? ? ? ? -p? :顯示每個 process 的 PID;
? ? ? ? ? ? ? ? ? ? ? ? ? -u? :顯示每個 process 的所屬用戶名
free? ? 查看內存使用情況
? ? ? ? ? 參數:-b? :直接輸入 free 時,顯示的單位是 Kbytes,可以使用 b(bytes), m(Mbytes)
? ? ????????????????????????? k(Kbytes), 及 g(Gbytes) 來顯示單位。也可以直接讓系統自己指定單位 (-h)
? ? ? ? ? ? ? ? ? ?? -t? :在輸出的最終結果,顯示實體內存與 swap 的總量。
? ? ? ? ? ? ? ? ? ? ?-s? :可以讓系統每幾秒輸出一次
uptime? ? 顯示系統啟動時間與工作負載(1,5,15分鐘的平均負載)
netstat? ? 跟蹤網絡或socket文件
? ? ? ? ? ? ? ?參數:-a? :將目前系統上所有的連接、監聽、Socket 資料都列出來
? ? ? ? ? ? ? ? ? ? ? ? ? -t? :列出 tcp 網絡封包的資料
? ? ? ? ? ? ? ? ? ? ? ? ? -u? :列出 udp 網絡封包的資料
? ? ? ? ? ? ? ? ? ?? ?????-n? :不以程序的服務名稱,以端口號 (port number) 來顯示;
? ? ? ? ? ? ? ? ? ?? ?????-l? :列出目前正在網絡監聽 (listen) 的服務;
? ? ? ? ? ? ? ? ? ?? ?????-p? :列出該網絡服務的程序 PID
Proto :網絡的封包協議,主要分為 TCP 與 UDP 封包;
Recv-Q:非由使用者程式連接到此 socket 的復制的總 bytes 數;
Send-Q:非由遠程主機傳送過來的 acknowledged 總 bytes 數;
Local Address :本地端的 IP:port 情況
Foreign Address:遠程主機的 IP:port 情況
State :鏈接狀態,主要有建立(ESTABLISED)及監聽(LISTEN);
dmesg? ? 分析核心產生的信息
vmstat ? ?檢測系統資源變化
? ? ? ? ? 參數:-a? :使用 inactive/active(是否活躍) 取代 buffer/cache 的內存輸出信息;
? ? ? ? ? ? ? ? ? ? ?-f? :開機到目前為止,系統復制 (fork) 的程序數;
? ? ? ? ? ? ? ? ? ? ?-s? :將一些事件 (開機至目前為止) 導致的內存變化情況列表說明;
? ? ? ? ? ? ? ? ?????-S? :后面可以接單位,讓顯示的信息有單位。例如 K/M 取代 bytes 的容量;
? ? ? ? ? ? ? ? ?????-d? :列出磁盤的讀寫總量統計表
? ? ? ? ? ? ? ? ?????-p? :后面列出分割槽,可顯示該分割槽的讀寫總量統計表
程序欄(procs) 的項目分別為:
r :等待運作中的程序數量;b:不可被喚醒的程序數量。這兩個項目越多,代表系統越忙碌 (因為系統太忙,所以很多程序就無法被執行或一直在等待而無法被喚醒的原因)
內存欄 (memory) 項目分別為:
swpd:虛擬內存被使用的容量; free:未被使用的內存容量; buff:用于緩沖內存; cache:用于緩存。 這部份與free是相同的。
內存交行空間 (swap) 的項目分別為:
si:由磁盤中將程序取出的量; so:由于內存不足而將沒用到的程序寫入到磁盤的swap的空間。 如果 si/so 的數值太大,表示內存的數據常常得在磁盤與主內存之間傳輸
磁盤讀寫 (io) 的項目分別為:
bi:由磁盤讀寫 的區塊數量; bo:寫入到磁盤去的區塊數量。如果這部份的值越高,代表系統的 I/O 非常忙碌
系統 (system) 的項目分別為:
in:每秒被終端的程序次數; cs:每秒進行的事件切換次數;這兩個數值越大,代表系通與周邊設備的溝通非常頻繁,這些周邊設備包括磁盤、網卡、時鐘等。
CPU的項目分別為 :
us:非核心層的 CPU 使用狀態; sy:核心層所使用的 CPU狀態; id:限制的狀態; wa:等待 I/O 所消耗的 CPU 狀態;st:被虛擬機 (virtual machine) 所使用的CPU使用狀態 (2.6.11 以后才支持)
lsof? ?列出被程序所開啟的文檔名,與fuser相反,是通過文件或設備的程序找到相應的檔案或設備
? ? ? ? ? ? ? ?參數:
? ? ? ? ? ? ? ? ? ? ?????-U? :僅列出 Unix like 系統的 socket 檔案類型
? ? ? ? ? ? ? ? ? ? ? ?? -u? :后面接username,列出該使用者相關程序所開啟的文件
? ? ? ? ? ? ? ? ? ? ?????+d? :后面接目錄,亦即找出某個目錄底下已經被開啟的文件
已知端口查服務:
例:lsof? -i:80
pidof? ?找出某個正在執行的進程PID
? ? ? ? ? 參數:-s:僅列出一個PID而不是列出所有PID
? ? ? ? ? ? ? ? ? ? ? -x:同時列出該程序名稱可能的PPID那個程序的PID
例:pidof systemd
selinux ? ?安全上下文
getsebool [-a] [規則的名稱] ? ?查詢各個規則的布爾值
? ? ? ? ? ? 參數:-a:列出目前系統上的所有selinux規則的布爾值(on|off)
setsebool ? ? 修改selinux規則的布爾值
? ? ? ? ? ? ? ?參數:-P:直接將設定值寫入配置文檔,該設定資料未來會生效
depmod? ? 自動建立內核模塊的依賴關系
? ? ? ? ? ? ? ?參數:-A:不加參數時,depmod會主動分析當前內核模塊,并重新寫入/lib/modules/$(uname -r)/modules.dep當中。若加入-A參數,則depmod會去搜索比modules.dep內還新的模塊,若找到新模塊,才會更新。
? ? ? ? ? ? ? ? ? ? ? ? ? -n:不寫入modules.dep,而是將結果輸出到屏幕。
? ? ? ? ? ? ? ? ? ? ? ? ? -e:顯示出當前已經加載的不可執行的模塊名稱。
? ? ? ? ? ? ? ?例:#cp a.ko /lib/modules/$(uname -r)/kernel/drivers/net
? ? ? ? ? ? ? ? ? ? ? #depmod
lsmod ? ?查詢所有內核加載的模塊
modinfo? ?模塊名稱或文件名
? ? ? ? ? ? ? ?參數:-a:僅列出所有者名稱
? ? ? ? ? ? ? ? ? ? ? ? ? -d:僅列出該modules的說明
? ? ? ? ? ? ? ? ? ? ? ? ? -l:僅列出授權(license)
? ? ? ? ? ? ? ? ? ? ? ? ? -n:僅列出該模塊的詳細路徑
insmod? ? 加載內核模塊
? ? ? ? ? ? ? ? [/fullpath/module_name] [parameters]
? ? ? ? ? ? ? ?例:insmod /lib/modules/$(uname -r)/kernel/fs/cifs/cifs.ko
? ? ? ? ? ? ? ? ? ? ? lsmod |grep cifs
rmmod? ? 刪除內核模塊
? ? ? ? ? ? ? ? [-fw] module_name
? ? ? ? ? ? ? ?參數:-f:強制將該模塊刪除,不論是否在使用
? ? ? ? ? ? ? ? ? ? ? ? ? -w:若該模塊正被使用,則rmmod會等待該模塊使用完畢后,才移除。
modprobe? ?[-lcfr] module_name ? ? 智能加載內核模塊
? ? ? ? ? ? ? ? 參數:-c :列出目前系統所有的模塊
? ? ? ? ? ? ? ? ? ? ? ? ? ?-l:列出當前在/lib/modules/`uname -r`/kernel當中的所有模塊完整的文件名
? ? ? ? ? ? ? ? ? ? ? ? ? ?-f:強制加載該模塊
? ? ? ? ? ? ? ? ? ? ? ? ? ?-r:移除模塊
dmidecode? ?查看硬件配置情況
? ? ? ? ? ? ? ? ?參數:-t:類型type
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?1:詳細系統信息,包括主板型號與硬件信息
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?4:cpu相關信息
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?9:系統相關插槽信息,pci、pci-e
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?17:每個內存插槽信息與內存信息
lspci? ? 查看PCI設備信息
? ? ? ? ? ? ? ? 參數:-v:顯示更多的PCI設備的信息
? ? ? ? ? ? ? ? ? ? ? ? ? ?-vv:更詳細的信息
? ? ? ? ? ? ? ? ? ? ? ? ? ?-n:直接觀察PCI的ID,沒有廠商名稱
iostat ? ? [-c|-d] [-k|-m] [-t] [間隔秒數] [偵測次數] ? ? ? ? ?查看CPU與周邊設備I/O狀態
? ? ? ? ? ? ? ? ?參數:-c:僅顯示CPU狀態
? ? ? ? ? ? ? ? ? ? ? ? ? ? -d:僅顯示存儲設備狀態
? ? ? ? ? ? ? ? ? ? ? ? ? ? -k:預設顯示為block
? ? ? ? ? ? ? ? ? ? ? ? ? ? -m:顯示以MB單位的結果
? ? ? ? ? ? ? ? ? ? ? ? ? ? -t:顯示日期
#tps? ? ? ?:平均每秒的傳輸次數!
#kB_read/s :開機到現在平均讀取的單位;
#kB_wrtn/s :開機到現在平均寫入的單位;
#kB_read? ?:開機到現在,總共讀出來的單位;
#kB_wrtn? ?:開機到現在,總共寫入的單位;
dd? ? 轉換與復制文件
? ? ? ? ? ? ? ? ? 例:dd if=/dev/sda ?of=/dev/sdb ? ? ?將sda復制到sdb
cpio ? ?文件復制與歸檔
? ? ? ? ? ? ? ? ? 例:find / -print|cpio -covB > /dev/st0? ? ?備份到磁帶
? ? ? ? ? ? ? ? ? ? ? ? ?cpio -iduv < /dev/st0? ? ?從磁帶還原
xfsdump? ? 備份
? ? ? ? ? ? ? ? ? ?例:xfsdump -l 0 -L 'full' -M 'full' -f /backupdata/home.dump /home ? ? 將/home中的數據 完整備份到/backupdata/home.dump中
? ? ? ? ? ? ? ? ? ? ? ? ? xfsdump -l 1 -L 'full-1' -M 'full-1' -f /backupdata/home.dump1 /home ?將/home中的數據進行一次增量備份到/backupdata/home.dump1中
rsync? ? 遠程文件復制
? ? ? ? ? ?? 參數:
-v, --verbose 詳細模式輸出?
-q, --quiet 精簡輸出模式?
-c, --checksum 打開校驗開關,強制對文件傳輸進行校驗?
-a, --archive 歸檔模式,表示以遞歸方式傳輸文件,并保持所有文件屬性,等于-rlptgoD?
-r, --recursive 對子目錄以遞歸模式處理?
-R, --relative 使用相對路徑信息?
-b, --backup 創建備份,也就是對于目的已經存在有同樣的文件名時,將老的文件重新命名為~filename。可以使用--suffix選項來指定不同的備份文件前綴。?
--backup-dir 將備份文件(如~filename)存放在在目錄下。?
-suffix=SUFFIX 定義備份文件前綴?
-u, --update 僅僅進行更新,也就是跳過所有已經存在于DST,并且文件時間晚于要備份的文件。(不覆蓋更新的文件)?
-l, --links 保留軟鏈結?
-L, --copy-links 想對待常規文件一樣處理軟鏈結?
--copy-unsafe-links 僅僅拷貝指向SRC路徑目錄樹以外的鏈結?
--safe-links 忽略指向SRC路徑目錄樹以外的鏈結?
-H, --hard-links 保留硬鏈結?
-p, --perms 保持文件權限?
-o, --owner 保持文件屬主信息?
-g, --group 保持文件屬組信息?
-D, --devices 保持設備文件信息?
-t, --times 保持文件時間信息?
-S, --sparse 對稀疏文件進行特殊處理以節省DST的空間?
-n, --dry-run現實哪些文件將被傳輸?
-W, --whole-file 拷貝文件,不進行增量檢測?
-x, --one-file-system 不要跨越文件系統邊界?
-B, --block-size=SIZE 檢驗算法使用的塊尺寸,默認是700字節?
-e, --rsh=COMMAND 指定使用rsh、ssh方式進行數據同步?
--rsync-path=PATH 指定遠程服務器上的rsync命令所在路徑信息?
-C, --cvs-exclude 使用和CVS一樣的方法自動忽略文件,用來排除那些不希望傳輸的文件?
--existing 僅僅更新那些已經存在于DST的文件,而不備份那些新創建的文件?
--delete 刪除那些DST中SRC沒有的文件?
--delete-excluded 同樣刪除接收端那些被該選項指定排除的文件?
--delete-after 傳輸結束以后再刪除?
--ignore-errors 及時出現IO錯誤也進行刪除?
--max-delete=NUM 最多刪除NUM個文件?
--partial 保留那些因故沒有完全傳輸的文件,以是加快隨后的再次傳輸?
--force 強制刪除目錄,即使不為空?
--numeric-ids 不將數字的用戶和組ID匹配為用戶名和組名?
--timeout=TIME IP超時時間,單位為秒?
-I, --ignore-times 不跳過那些有同樣的時間和長度的文件?
--size-only 當決定是否要備份文件時,僅僅察看文件大小而不考慮文件時間?
--modify-window=NUM 決定文件是否時間相同時使用的時間戳窗口,默認為0?
-T --temp-dir=DIR 在DIR中創建臨時文件?
--compare-dest=DIR 同樣比較DIR中的文件來決定是否需要備份?
-P 等同于 --partial?
--progress 顯示備份過程?
-z, --compress 對備份的文件在傳輸時進行壓縮處理?
--exclude=PATTERN 指定排除不需要傳輸的文件模式?
--include=PATTERN 指定不排除而需要傳輸的文件模式?
--exclude-from=FILE 排除FILE中指定模式的文件?
--include-from=FILE 不排除FILE指定模式匹配的文件?
--version 打印版本信息?
--address 綁定到特定的地址?
--config=FILE 指定其他的配置文件,不使用默認的rsyncd.conf文件?
--port=PORT 指定其他的rsync服務端口?
--blocking-io 對遠程shell使用阻塞IO?
-stats 給出某些文件的傳輸狀態?
--progress 在傳輸時現實傳輸過程?
--log-format=formAT 指定日志文件格式?
--password-file=FILE 從FILE中得到密碼?
--bwlimit=KBPS 限制I/O帶寬,KBytes per second?
-h, --help 顯示幫助信息?
? ? ? ? ? ? ?本地:? rsync [OPTION...] SRC... [DEST]
? ? ? ? ? ? ? ? ? ? 例:rsync -av /home /backupdata/
? ? ? ? ? ?? 遠程
? ? ? ? ? ? ? ? ? ? ?? Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST]
? ? ? ? ? ? ? ? ? ? ?? Push: rsync [OPTION...] SRC... [USER@]HOST:DEST?
例:1)拷貝本地文件。當SRC和DES路徑信息都不包含有單個冒號":"分隔符時就啟動這種工作模式。如:rsync -a /data /backup?
2)使用一個遠程shell程序(如rsh、ssh)來實現將本地機器的內容拷貝到遠程機器。當DST路徑地址包含單個冒號":"分隔符時啟動該模式。如:rsync -avz *.c foo:src?
3)使用一個遠程shell程序(如rsh、ssh)來實現將遠程機器的內容拷貝到本地機器。當SRC地址路徑包含單個冒號":"分隔符時啟動該模式。如:rsync -avz foo:src/bar /data?
4)從遠程rsync服務器中拷貝文件到本地機。當SRC路徑信息包含"::"分隔符時啟動該模式。如:rsync -av root@172.16.78.192::www /databack?
5)從本地機器拷貝文件到遠程rsync服務器中。當DST路徑信息包含"::"分隔符時啟動該模式。如:rsync -av /databack root@172.16.78.192::www?
6)列遠程機的文件列表。這類似于rsync傳輸,不過只要在命令中省略掉本地機信息即可。如:rsync -v rsync://172.16.78.192/www
file? ? 查看文件類型
gcc? ? 編譯
? ? ? ? ? 參數:-c ? ? 產生object對象文件,不加參數生成*.out二進制文件。
? ? ? ? ? ? ? ? ? ? ?-O ? ? 產生最佳化參數
? ? ? ? ? ? ? ? ? ? ?-Wall ? ? 產生編譯細節信息
? ? ? ? ? ? ? ? ? ? ?-o ? ? ?將所有對象文件(*.o)連接輸出一個編譯文件
? ? ? ? ? ? ? ? ? ? ?-l ? ? ??加入某個函數庫
? ? ? ? ? ? ? ? ? ? ?-m ? ? libm.so 函數庫連接
? ? ? ? ? ? ? ? ? ? ?-L ? ? 后面接函數庫路徑
? ? ? ? ? ? ? ? ? ? ?-I ? ? 后面接include文檔路徑
? ? ? ? ? ? ? ? ? ? 例:?gcc -O -c thanks.c thanks_2.c
? ? ? ? ? ? ? ? ? ? ? ? ? ??gcc -o thanks thanks.o thanks_2.o
? ? ? ? ? ? ? ? ? ? ? ? ? ? gcc sin.c -lm -L/lib -L/lib64
? ? ? ? ? ? ? ? ? ? ? ? ? ??gcc sin.c -lm -I/usr/include
ldconfig ? ?把動態函數庫加載到內存中緩存起來
? ? ? ? ? ? ? ?參數:-p ? ? 顯示所有已加載的動態函數庫
? ? ? ? ? ? ? ?例:#vim /etc/ld.so.conf
? ? ? ? ? ? ? ? ? ? ? /usr/lib64/mysql ? ? ? ? ?<==添加新的庫
? ? ? ? ? ? ? ? ? ? ? #ldconfig
? ? ? ? ? ? ? ? ? ? ? #ldconfig -p
ldd? ? 解析程序的動態函數庫
? ? ? ? ? ? ? ?參數:-v ? ? 列出所有內容信息
? ? ? ? ? ? ? ? ? ? ? ? ? -d ? ? 重新將信息中有丟失的link點列出來
? ? ? ? ? ? ? ? ? ? ? ? ? -r ? ? 將ELF有關的錯誤列出來
? ? ? ? ? ? ? ?例:ldd /usr/bin/passwd
md5sum? ? 驗證軟件的正確性
? ? ? ? ? ? ? ?參數:-b ? ? 使用二進制的讀取方式,預設為windows/dos檔案形態的讀取方式
? ? ? ? ? ? ? ? ? ? ? ? ? -c ? ? 檢驗檔案指紋
? ? ? ? ? ? ? ? ? ? ? ? ? -t ? ? 以文字形式來讀取檔案指紋
? ? ? ? ? ? ? ?例:md5sum ntp-**.tar.gz
? ? ? ? ? ? ? ?例:#ls /etc/{passwd,shadow,group} > important.file
? ? ? ? ? ? ? ? ? ? ? #find /usr/sbin /usr/bin -perm /6000 >> important.file
? ? ? ? ? ? ? ? ? ? ? #vim md5.checkfile.sh
? ? ? ? ? ? ? ? ? ? ? ? ? ? ??#!/bin/bash
? ? ? ? ? ? ? ? ? ? ? ? ? ? ??for filename in $(cat important.file)
? ? ? ? ? ? ? ? ? ? ? ?? ?????do
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ?????md5sum $filename >> finger1.file
? ? ? ? ? ? ? ? ? ? ? ?? ?????done
? ? ? ? ? ? ? ? ? ? ? ?#sh md5.checkfile.sh
? ? ? ? ? ? ? ? ? ? ? ?#chattr +i finger1.file
rpm? ? 軟件包管理器
? ? ? ? ? ?????參數:-i ? ? install
? ? ? ? ? ? ? ? ? ? ? ? ? -v ? ?查看更多安裝細節
? ? ? ? ? ? ? ? ? ? ? ? ? -h ?? 顯示安裝進度
? ? ? ? ? ? ? ? ? ? ? ? ? -e ? ? 刪除
? ? ? ? ? ? ? ? ? ? ? ? ? --nodeps ? ? 忽略軟件的依賴性強行安裝
? ? ? ? ? ? ? ? ? ? ? ? ? --replacefiles ? ? 覆蓋原來的已安裝的軟件
? ? ? ? ? ? ? ? ? ? ? ? ? --force ? ? ? ? ?覆蓋安裝
? ? ? ? ? ? ? ? ? ? ? ? ? --prefix ? ? ? ? 指定新的安裝路徑
? ? ? ? ? ? ? ? ? ? ? ? ? --noscripts ? ? 不想讓軟件在安裝過程中自動執行某些系統指令
? ? ? ? ? ? ? ? ? ? ? ? ? -Uvh ? ? ? ? ? ? ? 更新軟件
? ? ? ? ? ? ? ? ? ? ? ? ? -Fvh ? ? ? ? ? ? ? 修復與升級
? ? ? ? ? ? ? ? ? ? ? ? ? -q ? ? 查詢
? ? ? ? ? ? ? ? ? ? ? ? ? -qa ? ? 列出所有已安裝的軟件
? ? ? ? ? ? ? ? ? ? ? ? ? -qi ? ? 列出該軟件的詳細信息
? ? ? ? ? ? ? ? ? ? ? ? ? -ql ? ? 列出該軟件所有的檔案與目錄所在的完成文檔名
? ? ? ? ? ? ? ? ? ? ? ? ? -qc ? ? 列出該軟件的所有參數檔案名稱(/etc/下的)
? ? ? ? ? ? ? ? ? ? ? ? ? -qd ? ? 列出該軟件所有說明檔案
? ? ? ? ? ? ? ? ? ? ? ? ? -V ? ? 驗證該軟件是否被更改過,如果有被列出
? ? ? ? ? ? ? ? ? ? ? ? ? --rebuilddb ? ? 重建信息庫(由于刪除、安裝更新時產生/var/lib/rpm/內的文件破壞)
? ? ? ? ? ? ? ? ? ? ? ? ? provides ? ? 列出該指令所有的軟件
yum ? ?安裝管理
? ? ? ? ? ? ? ?選項 -y ? ? 自動跳過yes確認
? ? ? ? ? ? ? ?參數:install ? ? 安裝
? ? ? ? ? ? ? ? ? ? ? ? ? remove ? ? 刪除
? ? ? ? ? ? ? ? ? ? ? ? ?list ? ? ? ? ? ? ?列出當前yum所管理的軟件名稱
? ? ? ? ? ? ? ? ? ? ? ? ?search ? ? 搜索某個軟件名稱或描述
? ? ? ? ? ? ? ? ? ? ? ? ?info ? ? ? ? ?列出yum所有軟件名稱
? ? ? ? ? ? ? ? ? ? ? ? ?update ? ? 軟件升級
? ? ? ? ? ? ? ? ? ? ? ? ?repolist ?all ? ? 目前使用的軟件庫
? ? ? ? ? ? ? ? ? ? ? ? ?clean all ? ? 將所有軟件庫信息刪除
? ? ? ? ? ? ? ? ? ? ? ? ?makecache ? ? 創建軟件庫信息
? ? ? ? ? ? ? ? ? ? ? ? ?grouplist ? ? 列出所有可用的軟件組
? ? ? ? ? ? ? ? ? ? ? ? ?groupinstall ? ? 安裝軟件組
? ? ? ? ? ? ? ? ? ? ? ? ?groupremove ? ? 刪除軟件組
iptables ? 防火墻
iptables -I INPUT -p tcp --dport 22 -j ACCEPT
iptables -L ? ? 列出所有規則
iptables -D ? ? 刪除一條規則
rpmbuild? ? ? 對srpm進行編譯與打包或安裝(*.src.rpm)
? ? ? ? ? ? ? ? 參數:--rebuild 對srpm包進行編譯與打包,最后產生rpm包
? ? ? ? ? ? ? ? ? ? ? ? ? ?--recompile ?直接編譯、打包、并安裝
? ? ? ? ? ? ? ? ? ? ? ? ? ?--showrc ? 查看默認配置
? ? ? ? ? ? ? ? ? ? ? ? ?編譯后的rpm軟件包會被防止到/root/rpmbuild/RPMS/中 ? ? ? ??
根據spec文件產生rpm、srpm包
例:
rpmbuild -ba ntp.spec ? ? ? ? ?<==編譯并同時產生rpm與srpm包?
rpmbuild -bb ntp.spec ? ? ? ? ?<==僅編譯成rpm包
? ? ? ? ? ? ? ? ? ? ? ? ?#yum install rpmdevtools ? ??
? ? ? ? ? ? ? ? ? ? ? ?? #rpmdev-setuptree ? ? ? ? ? ?? ?????建立rpmbuild目錄
? ? ? ? ? ? ? ? ? ? ? ? ?#rpmdev-newspec
diff ? ? 比較兩個文件或目錄里文件的區別
? ? ? ? ? ? ? ?參數:
-a或--text diff預設只會逐行比較文本文件。
-b或--ignore-space-change 不檢查空格字符的不同。
-B或--ignore-blank-lines 不檢查空白行。
-c 顯示全部內文,并標出不同之處。
-C或--context 與執行"-c-"指令相同。
-d或--minimal 使用不同的演算法,以較小的單位來做比較。
-D或ifdef 此參數的輸出格式可用于前置處理器巨集。
-e或--ed 此參數的輸出格式可用于ed的script文件。
-f或-forward-ed 輸出的格式類似ed的script文件,但按照原來文件的順序來顯示不同處。
-H或--speed-large-files 比較大文件時,可加快速度。
-l或--ignore-matching-lines 若兩個文件在某幾行有所不同,而這幾行同時都包含了選項中指定的字符或字符串,則不顯示這兩個文件的差異。
-i或--ignore-case 不檢查大小寫的不同。
-l或--paginate 將結果交由pr程序來分頁。
-n或--rcs 將比較結果以RCS的格式來顯示。
-N或--new-file 在比較目錄時,若文件A僅出現在某個目錄中,預設會顯示:Only in目錄:文件A若使用-N參數,則diff會將文件A與一個空白的文件比較。
-p 若比較的文件為C語言的程序碼文件時,顯示差異所在的函數名稱。
-P或--unidirectional-new-file 與-N類似,但只有當第二個目錄包含了一個第一個目錄所沒有的文件時,才會將這個文件與空白的文件做比較。
-q或--brief 僅顯示有無差異,不顯示詳細的信息。
-r或--recursive 比較子目錄中的文件。
-s或--report-identical-files 若沒有發現任何差異,仍然顯示信息。
-S或--starting-file 在比較目錄時,從指定的文件開始比較。
-t或--expand-tabs 在輸出時,將tab字符展開。
-T或--initial-tab 在每行前面加上tab字符以便對齊。
-u,-U或--unified= 以合并的方式來顯示文件內容的不同。
-v或--version 顯示版本信息。
-w或--ignore-all-space 忽略全部的空格字符。
-W或--width 在使用-y參數時,指定欄寬。
-x或--exclude 不比較選項中所指定的文件或目錄。
-X或--exclude-from 您可以將文件或目錄類型存成文本文件,然后在=中指定此文本文件。
-y或--side-by-side 以并列的方式顯示文件的異同之處。
--help 顯示幫助。
--left-column 在使用-y參數時,若兩個文件某一行內容相同,則僅在左側的欄位顯示該行內容。
--suppress-common-lines 在使用-y參數時,僅顯示不同之處。
? ? ? ? ? 例:diff -uNr nginx1/ nginx2/ ? >nginx.patch ? ? <==生成補丁
wget?網絡工具
? ? ? ? 參數 -O 指定路徑與名稱
? ? ? ? 例:wget -O /etc/yum.repos.d/CentOS-Base.repo?http://mirrors.aliyun.com/repo/Centos-6.repo
tree? 列出樹狀結構
? ? ? ? 參數 -L ?顯示層級
? ? ? ? ? ? ? ? -d ?顯示目錄
? ? ? ? 例:tree ?-Ld ?1 ? /
tar? ?歸檔
? ? ? ? 參數:
? ? ? ? ? ? ? ?-c:創建 ?create
? ? ? ? ? ? ? ?-v:顯示 verbose
? ? ? ? ? ? ? ?-z:壓縮 gunzip ? gz格式
? ? ? ? ? ? ? ?-f:文件
? ? ? ? ? ? ? ?-x:解壓
? ? ? ? ? ? ? ?-C:指定位置解壓
? ? ? ? ? ? ? ?-t: list 列出
? ? ? ? ? ? ? ?--exclude :排除 --exclude=file
? ? ? ? ? ? ? ?-X:排除列表文件 ? ex: tar -zcvfX ?file.tar.gz ?file ?/tmp/*
? ? ? ? ? ? ? ?-j:壓縮 bz格式
seq ? 顯示序列數
?? ??? ?? ?參數:
?? ??? ??? ?? ? -s :間隔符號
?? ??? ??? ?? ? -w :顯示0
?? ??? ?? ? eg:
? ? ? ? ? ? ? ? ?seq ?100
? ? ? ? ? ? ? ? ?seq ? 1 ?2 ?100
? ? ? ? ? ? ? ? ?seq -s ';' 100
dumpe2fs ? 查看文件系統信息 支持ext2、ext3、ext4文件系統
? ? ? ?exg:dumpe2fs??/dev/sda1|grep -i "Inode size"
stat ? 查看文件或文件夾的狀態信息
Access: 訪問時間,find -atime
Modify: 修改時間,內容發生變化 ?find -mtime
Change: 變化時間,包含Modify,權限、屬主、用戶組 find -ctime
w? ? 查看誰登錄,做了什么
lastlog ? 查看所有創建用戶登錄信息
?? ??? ?? ? /var/log/lastlog
su? ? 切換用戶
? ? ? ? ?- 切換用戶環境變量
? ? ? ? ?-c ? 后面接?‘命令’ 。以某用戶身份執行命令
? ? ? ? ?ex:su - new -c ‘/tmp/new.sh’?
? ? ? ? ? ? ? ? ?su - new -c?“pwd”
? ? ? ? ? /var/db/sudo/ ?存放用戶時間戳信息
sudo? ?其他用戶執行
?? ??? ??-l ?查詢該用戶下權限信息
? ? ? ? ?-c ?檢查sudoer語法問題
?? ?? ? ? vi?/etc/sudoers == visudo
dig ? ?DNS解析指令
? ??dig @114.114.114.114 www.baidu.com +trace ? 以114.114.114.114 來跟蹤解析www.baidu.com過程
ip ? ?ip地址設置
? ? 查看ip信息:ip addr
? ? 添加輔助ip地址(虛擬ip):ip addr add 192.168.0.12/24 ?dev eth1:1 up
partprobe ? 通知內核分區表變化
?? ??做完分區后(例如用fdisk工具),需要告訴內核你做的分區調整,不然需要重啟系統。
?? ??? ??? ?? ?ex:?partprobe ?/dev/sdb
tcpdump? ? 抓包
?? ?? tcpdump -n icmp -i eth0
? ? ? eg:針對22端口抓3個包
?? ??? ?? ? tcpdump port 22 -Stn -c 3
cp ? 拷貝
?? ??? ?? ? eg: ?備份文件 ??cp ?/data/file{,.bak}
expr? ?表達式求值
scp ? 安全遠程拷貝
參數 ? ?-P ?端口號
? ? ? ? ? ? -r ? 遞歸目錄(可以拷貝目錄)
?? ??? ?? ? -p ?保持屬性
? ? ? ? ? ? -l ? ?限速
????????eg: ?scp -P 22 -rp ?/tmp ?root@$IP:/tmp