1. 程式人生 > 其它 >Linux命令進階之一(useradd,file,which,whereis,find,locate)

Linux命令進階之一(useradd,file,which,whereis,find,locate)

1.useradd

useradd 命令用於建立使用者帳號

語法:useradd選參 使用者名稱

useradd 指令所建立的帳號,實際上是儲存在 /etc/passwd 文字檔案中

userdel 刪除帳號

2.檢視檔案的型別

利用file命令檢視檔案的型別

命令:file

語法:file [-bLvz] 檔案

  • -b:顯示結果,但是不顯示檔名稱
  • -L:直接顯示符號連結所指向的檔案的型別,顯示符號連結的檔案型別
  • -v:顯示版本資訊
  • -z:測試去讀取壓縮檔案的內容

audit是目錄檔案

3.which搜尋

which用於查詢檔案, 會在環境變數$PATH設定的目錄裡查詢符合條件的檔案

語法:which [-a] 查詢檔名

  • -a:將PATH中可以找到的指令都列出來,而不是第一個被找到的名稱

4.檔案查詢命令

whereis 查詢檔案

語法:whereis [-bmsu] 目錄或檔名

  • -b:只找binary(二進位制)格式的檔案
  • -m:只找在說明檔案manual路徑下的檔案
  • -s:只找source(原始程式碼)來源檔案
  • -u:搜尋不在上述三個專案當真的其他特殊檔案

注:只能用於查詢二進位制檔案、原始碼檔案和man手冊頁,一般檔案的定位需使用locate命令

locate用於查詢符合條件的文件,他會去儲存文件和目錄名稱的資料庫內,查詢合乎範本樣式條件的文件或目錄

語法:locate [-irc] keyword

  • -i :忽略大小寫
  • -r :使用正規運算式做尋找的條件
  • -c, --count -- 只輸出找到的數量

需要強調的是:

  • locate 只在 /var/lib/slocate 資料庫中找。
  • locate查的是資料庫(一般檔案資料庫在 /var/lib/slocate/slocate.db 中)
  • locate 的查詢並不是實時的,而是以資料庫的更新為準
  • locate的速度比 find 快

locate查詢的資料庫一般是系統自己維護,也可以手工升級資料庫 ,命令為:

updatedb

  

EG:

忽略大小寫搜尋當前使用者目錄下所有以 r 開頭的檔案 :

locate -i ~/r

  

系統自己維護了

find用來在指定目錄下查詢檔案

語法:find [路徑] [option] [action]

(find的引數有很多,我們介紹簡單一點的,更多用法記得man find )

與時間相關的選項:-atime,-ctime和-mtime,以-mtime說明:

-mtime n :n 為數字

-mtime +n :n天之前(不含n天本身)

-mtime -n:n天之內(含n天本身)

-nwer file:file為一個存在的檔案,列出比file更新的檔案

-name 檔名,查詢檔名稱符合 的檔案

注:使用該命令時,不設定任何引數,則 find 命令將在當前目錄下查詢子目錄與檔案。並且將查詢到的子目錄和檔案全部進行顯示

5.作業

請說明whereis和find有何區別?它們各自的優缺點是什麼?


whereis只能用於查詢二進位制檔案、原始碼檔案和man手冊頁且通過檔案索引資料庫而非PATH來查詢的

find通過直接搜尋硬碟的方式查詢

優點 缺點

find 保證查詢的資訊絕對可靠 效率不高,比較慢

whereis 快 若沒及時更新,資訊會不準確,要常常更新

請使用man page,如何使用find 命令查詢/etc下大於500K的檔案?


find /etc -size +500k

 

讓一個普通使用者heetian能夠進行cp /dir1/file1 /dir2的命令時,請說明dir1,file1,dir2的最小所需許可權為何?


對於dir1最低肯定需要能夠進入的許可權x

對於file1肯定要有能讀取的許可權r

對於dir2肯定要有能建立的許可權w以及能進入的許可權x