天天看點

linux常用指令二之權限,搜尋與幫助指令

一:權限管理指令

指令名稱:chown

指令原意:change file ownership

指令所在路徑:/bin/chown

執行權限:所有使用者

文法:chown 【使用者】【檔案或目錄】

範例:chown pengliang japan.list    改變japan.list的所有者為penglinag

root和檔案所有者可以改變檔案的權限,

例如一個使用者建立了一個檔案,該檔案的權限所有者和root都可以

注意:檔案所有者可以改變檔案的權限,但是不能改變檔案的所有者,隻有root可以

useradd【使用者名】添加普通使用者

groupadd【使用者組名】添加使用者組

指令名稱:chgrp

原意:change file group ownership

指令所在路徑:/bin/chgrp

執行權限:所有使用者

文法:chgrp 【使用者組】 【檔案或目錄】

功能描述:改變檔案或目錄的所屬組

範例:chgrp dajia japan      改變檔案japan的所屬組為dajia

誰建立了檔案誰就是檔案的所有者,他的使用者組就是他的預設組,每個使用者隻能有一個預設組,誰建立了檔案,檔案的使用者組就是所有者的預設組

當建立一個檔案或目錄是都有一個預設的權限,怎麼樣該預設權限呢

指令名稱:umask

原意:the user file-creation mask

指令所在路徑:shell内置指令

執行權限:所有使用者

文法:umask 【-S】

  -S以rwx形式顯示建立檔案預設權限(即建立檔案的預設權限)

功能描述:顯示,設定檔案的預設權限

範例:umask -S

         umask  顯示檔案的預設權限的掩碼

 掩碼詳解:比如umask指令後顯示0022 第一個0是特殊的權限先不管, 022就是權限的掩碼。有什麼用呢?

可以計算出預設檔案的權限,即777-022=755   755就是-rwxr-xr-x

linux的任何建立檔案都沒有x權限,目錄有,安全性方面的考慮

更改預設權限

範例:比如要設定預設權限為754不能直接umask 754   可以計算掩碼777-754=023

可以umask 023

一般不要改預設的預設權限,系統預設的就很好了系統預設是(755)

二.檔案搜尋指令find

搜尋會占用大量的資源,是以盡量在建檔案的時候就規劃好檔案目錄結構

不要再伺服器高峰期的時候做搜尋,搜尋條件越精準越好

指令名稱:find

指令所在路徑:/bin/find

執行權限:所有使用者

文法:find 【搜尋範圍】 【比對條件】

功能描述:檔案搜尋

範例:

find/etc -name init    在/etc目錄中查找檔案init

find/etc -name *init*  搜尋/etc目錄下的所有檔案名含有init的檔案(*是通配符)

find/etc -name init??? 搜尋init後面的跟三個字元的檔案(?比對單個字元)

find/etc -iname init   搜尋init檔案不區分大小寫

根據大小查找

find/ -size +204800(LINUx中資料塊是最小的機關,這裡的機關是資料塊,一個資料塊為0.5K)    在根目錄下查大于100M的檔案(+n大于 -n小于  n等于)

根據所有者來查找

find/home -user shenchao 在/home下查找所有者為shenchao的檔案

根據時間的屬性來查找

-amin通路時間

-cmin檔案屬性

-mmin檔案内容

find/etc -cmin -5  在/etc下查找5分鐘内被修改過屬性的檔案

find/etc -mmin -30 在/etc下查找30分鐘内被修改過内容的檔案 

稍微複雜的find

find/etc -size +163840 -a -size -204800  在/etc下查找大于80MB小于100MB的檔案

-a兩個條件同時滿足(and)

-o兩個條件滿足任意一個即可(or)

find/etc -name inittab -exec ls -l {} \

在/etc下查找inittab檔案并顯示其詳細資訊

-exec/-ok指令 {} \;對搜尋結果執行操作(\表示轉義符,-ok會在執行前詢問,-exec不會)

find/etc -name init* -a -exec -type f ls -l {} \ 查找以init開頭的檔案,并顯示其詳細資訊

-type根據類型查找

f檔案 d目錄 l軟連結檔案

find/etc -name init* -a -type f    在/etc查找以init開頭并且是檔案

find/etc -name init* -a -type d    在/etc下查找以init開頭并且是目錄

-inum根據結點查找檔案

find. -inum 31531 -exec rm {} \    查找并删除i結點為31531的檔案

指令名稱:locate

指令所在路徑:/usr/bin/locate

執行權限:所有使用者

文法:locate 檔案名

功能描述:在檔案資料庫中查找檔案

範例:locate inittab

速度比較快!因為locate'在檔案系統中維護着一個資料庫,在/var/mlocate/mlocate.db

缺點:假使建立的檔案沒有收錄更新在庫中就會找不到!而find就不會

怎樣更新?用指令:updatedb

此時便會被收錄!

注意:但是查找的檔案在/tmp臨時檔案夾中,即使update也是找不到的。

locate-i hehe.log    不區分大小寫查找hehe.log

指令名稱:which

指令所在路徑:/usr/bin/which

執行權限:所有使用者

文法:which指令

功能描述:搜尋指令所在目錄及别名資訊

範例:which ls   查找ls指令所在的路徑

          which cp       查找cp指令所在的目錄

結果中的alias ‘指令’=‘指令别名’

如:

          which cp       查找cp指令所在的目錄結果顯示 aliascp='cp -i'後面的cp -i就是cp的别名

指令名稱:grep

指令所在路徑:/bin/grep

執行權限:所有使用者

文法:grep -iv 【指定字串】【檔案】

功能描述:在檔案中搜尋字串比對的行并輸出

-i不區分大小寫

-v排除指定字串

範例:grep mysql /root/install.log

在linux中#表示注釋行

grep-v ^# /etc/inittab 去掉以#開頭的行,比如讀取apache的配置檔案時用,用來排除注釋的幹擾

三.檔案搜尋指令--幫助指令

指令名稱:man

原意:manual

指令所在路徑:/usr/bin/man

執行權限:所有使用者

文法:man 【指令或配置檔案】

功能描述:獲得幫助資訊

範例:man ls   檢視ls的幫助資訊

      man services     檢視配置檔案的services的幫助資訊(注意。此處的配置檔案不要加絕對路徑,隻要名稱就可以了)就是檢視配置檔案的作用等

幫助類型的說明:

1表示指令說明

5表示檔案說明

下面是一些檢視指令或簡短的作用

whatis【指令名稱】    檢視ls指令的作用

apropos【配置檔案名】   檢視配置檔案的作用

【指令】 --help  列出指令的屬性

如ls --help  列出ls指令的屬性(-a -l等)

man很有用,可以檢視指令的格式等,不必強記

指令名稱:help

所在路徑:Shell内置指令

執行權限:所有使用者

文法:help 指令

功能描述:獲得Shell内置指令的幫助資訊

範例:help umask   檢視umask指令的幫助資訊

内置指令是沒有路徑的

如which cd會找不到路徑

manumask找不到umask的幫助資訊,找到的是shell的幫助資訊

helpumask可以找到umask的幫助資訊

是以找不到shell指令的格式的話,可以help

繼續閱讀