命令:1、chmod 修改許可權:
chmod命令的一般格式為:chmod [who] operator [permission] filenamew h o的含義是:u 檔案屬主許可權。g 同組使用者權限。o 其他使用者權限。a 所有使用者(檔案屬主、同組使用者及其他使用者)。operator的含義:+ 增加許可權。- 取消許可權。= 設定許可權。permission的含義:r 讀許可權。w 寫入權限。x 執行許可權。s 檔案屬主和組s e t - I D。t 粘性位*。l 給檔案加鎖,使其他使用者無法訪問。u,g,o 針對檔案屬主、同組使用者及其他使用者的操作。例:chmod a-x myfile rw- rw- rw- 收回所有使用者的執行許可權chmod og-w myfile rw- r-- r- - 收回同組使用者和其他使用者的寫入權限chmod g+w myfile rw- rw- r- - 賦予同組使用者寫入權限chmod u+x myfile rwx rw- r- - 賦予檔案屬主執行許可權chmod go+x myfile rwx rwx r- x 賦予同組使用者和其他使用者執行許可權 chmod 666 rw- rw- rw- 賦予所有使用者讀和寫的許可權chmod 644 rw- r-- r- - 賦予所有檔案屬主讀和寫的許可權,所有其他使用者讀許可權chmod 744 rwx r-- r- - 賦予檔案屬主讀、寫和執行的許可權,所有其他使用者讀的許可權chmod 664 rw- rw- r- - 賦予檔案屬主和同組使用者讀和寫的許可權,其他使用者讀許可權chmod 700 rwx --- --- 賦予檔案屬主讀、寫和執行的許可權chmod 444 r-- r-- r- - 賦予所有使用者讀許可權
2、find命令:①、 按檔案名稱尋找,使用name選項。
不管當前路徑是什麼,如果想要在自己的根目錄$HOME中尋找檔案名稱符合* . t x t的檔案,使用~作為pathname參數,波浪號~代表了你的$ H O M E目錄。$ find ~ -name "*.txt" -print想要在目前的目錄及子目錄中尋找所有的‘* . t x t’檔案,可以用:$ find . -name "*.txt" -print想要的目前的目錄及子目錄中尋找檔案名稱以一個大寫字母開頭的檔案,可以用:$ find . -name "[A-Z]*" -print想要在/ e t c目錄中尋找檔案名稱以h o s t開頭的檔案,可以用:$ find /etc -name "host*" -print想要尋找$ H O M E目錄中的檔案,可以用:$ find ~ -name "*" -print 或find . -print要想讓系統高負荷運行,就從根目錄開始尋找所有的檔案。如果希望在系統管理員那裡保留一個好印象的話,最好在這麼做之前考慮清楚!$ find / -name "*" -print如果想在目前的目錄尋找檔案名稱以兩個小寫字母開頭,跟著是兩個數字,最後是* . t x t的檔案,下面的命令就能夠返回名為a x 3 7 . t x t的檔案:$ find . -name "[a-z][a-z][0--9][0--9].txt" -print
②、按檔案許可權模式來尋找:使用perm選項:
為了在目前的目錄下尋找檔案許可權位為7 5 5的檔案,即檔案屬主可以讀、寫、執行,其他使用者可以讀、執行的檔案,可以用:$ find . -perm 755 -print如果希望在目前的目錄下尋找所有使用者都可讀、寫、執行的檔案(要小心這種情況),我們可以使用f i n d命令的- p e r m選項。在八位元字前面要加一個橫杠-。在下面的命令中- p e r m代表按照檔案許可權尋找,而‘0 0 7’和你在c h m o d命令的絕對模式中所採用的標記法完全相同。$ find . -perm -007 -print
③、忽略某個目錄使用-prune選項:
如果在尋找檔案時希望忽略某個目錄,因為你知道那個目錄中沒有你所要尋找的檔案,那麼可以使用- p r u n e選項來指出需要忽略的目錄。在使用- p r u n e選項時要當心,因為如果你同時使用了- d e p t h選項,那麼- p r u n e選項就會被f i n d命令忽略。如果希望在/ a p p s目錄下尋找檔案,但不希望在/ a p p s / b i n目錄下尋找,可以用:$ find /apps -name "/apps/bin" -prune -o -print
④、按照檔案屬主尋找:使用user和nouser選項:
如果希望按照檔案屬主尋找檔案,可以給出相應的使用者名稱。例如,在$ H O M E目錄中尋找檔案屬主為d a v e的檔案,可以用:$ find ~ -user dave -print在/ e t c目錄下尋找檔案屬主為u u c p的檔案:$ find /etc -user uucp -print為了尋找屬主帳戶已經被刪除的檔案,可以使用- n o u s e r選項。這樣就能夠找到那些屬主在/ e t c / p a s s w d檔案中沒有有效帳戶的檔案。在使用- n o u s e r選項時,不必給出使用者名稱;f i n d命令能夠為你完成相應的工作。例如,希望在/ h o m e目錄下尋找所有的這類檔案,可以用:$ find /home -nouser -print
⑤、按照檔案所屬組尋找,使用group和nogroup 選項:
就像u s e r和n o u s e r選項一樣,針對檔案所屬於的使用者組,f i n d命令也具有同樣的選項,為了在/ a p p s目錄下尋找屬於a c c t s使用者組的檔案,可以用:$ find /apps -group accts -print要尋找沒有有效所屬使用者組的所有檔案,可以使用n o g r o u p選項。下面的f i n d命令從檔案系統的根目錄處尋找這樣的檔案$ fine/-nogroup-print
⑥、按照檔案類型尋找使用type選項:
如果要在/etc目錄下尋找所有的目錄,可以用:$ find /etc -type d -print為了在目前的目錄下尋找除目錄以外的所有類型的檔案,可以用:$ find . ! -type d -print為了在/ e t c目錄下尋找所有的符號連結檔案,可以用:$ find /etc -type l -print
⑦、按照更改時間尋找檔案使用-mtime選項:
如果希望按照更改時間來尋找檔案,可以使用m t i m e選項。如果系統突然沒有可用空間了,很有可能某一個檔案的長度在此期間增長迅速,這時就可以用m t i m e選項來尋找這樣的檔案。用減號-來限定更改時間在距今n日以內的檔案,而用加號+來限定更改時間在距今n日以前的檔案。希望在系統根目錄下尋找更改時間在5日以內的檔案,可以用:$ find / -mtime -5 -print為了在/ v a r / a d m目錄下尋找更改時間在3日以前的檔案,可以用:$ find /var/adm -mtime +3 -print
⑧、使來執行shell命令:
當匹配到一些檔案以後,可能希望對其進行某些操作,這時就可以使用- e x e c選項。一旦f i n d命令匹配到了相應的檔案,就可以用- e x e c選項中的命令對其進行操作(在有些作業系統中只允許- e x e c選項執行諸如l s或ls -l這樣的命令)。e x e c選項後面跟隨著所要執行的命令,然後是一對兒{ },一個空格和一個\,最後是一個分號。為了用ls -l命令列出所匹配到的檔案,可以把ls -l命令放在f i n d命令的- e x e c選項中,例如:
find . -type f -exec ls -l {} \;
為了在/ l o g s目錄中尋找更改時間在5日以前的檔案並刪除它們,可以用:
$ find logs -type f -mtime +5 -exec rm {} \;⑨、find命令和xargs的使用:似乎xargs 與exec 功能相同
下面的例子在整個系統中尋找記憶體資訊轉儲檔案 (core dump),然後把結果儲存到/tmp/core.log 檔案中:$ find . -name "core" -print | xargs echo "" >/tmp/core.log下面的例子在/ a p p s / a u d i t目錄下尋找所有使用者具有讀、寫和執行許可權的檔案,並收回相應的寫入權限:$ find /apps/audit -perm -7 -print | xargs chmod o-w在下面的例子中,我們用g r e p命令在所有的普通檔案中搜尋d e v i c e這個詞:$ find / -type f -print | xargs grep "device"在下面的例子中,我們用g r e p命令在目前的目錄下的所有普通檔案中搜尋D B O這個詞:$ find . -name \*-type f -print | xargs grep "DBO"注意,在上面的例子中,\用來取消find命令中的*在shell中的特殊含義。