一.以文件名查找:
1. find 命令
因爲find具備強大的功能,因此它的選項也不少,其中大部分選項都值得咱們花時間來了解一下。即便系統中含有網絡文件系統( NFS),find命令在該文件系統中一樣有效,只你具備相應的權限。
在運行一個很是消耗資源的find命令時,不少人都傾向於把它放在後臺執行,由於遍歷一個大的文件系統可能會花費很長的時間(這裏是指30G字節以上的文件系統)。
find命令的通常形式爲;
find pathname -options [-print -exec -ok ...]
如
find / -name "filename"
目的:在根目錄「/」開始搜被稱爲filename的文件,「filename」文件名能夠包含通配符(*,?),注意:filename是文件名字符串,能夠帶雙引號,也可不帶find命令功能強大,它有不少選項讓你以不一樣的方式搜索文件,例如,經過日期,文件大小,權限,擁有者等等。
find命令的參數;
pathname: find命令所查找的目錄路徑。例如用.來表示當前目錄,用/來表示系統根目錄。
-print: find命令將匹配的文件輸出到標準輸出。
-exec: find命令對匹配的文件執行該參數所給出的shell命令。相應命令的形式爲'command' { } ;,注意{ }和;之間的空格。
-ok: 和-exec的做用相同,只不過以一種更爲安全的模式來執行該參數所給出的shell命令,在執行每個命令以前,都會給出提示,讓用戶來肯定是否執行。
三、find命令選項
-name
按照文件名查找文件。
-perm
按照文件權限來查找文件。
-prune
使用這一選項可使find命令不在當前指定的目錄中查找,若是同時使用-depth選項,那麼-prune將被find命令忽略。
-user
按照文件屬主來查找文件。
-group
按照文件所屬的組來查找文件。
-mtime -n +n
按照文件的更改時間來查找文件, - n表示文件更改時間距如今n天之內,+ n表示文件更改時間距如今n天之前。find命令還有-atime和-ctime 選項,但它們都和-m time選項。
-nogroup
查找無有效所屬組的文件,即該文件所屬的組在/etc/groups中不存在。
-nouser
查找無有效屬主的文件,即該文件的屬主在/etc/passwd中不存在。
-newer file1 ! file2
查找更改時間比文件file1新但比文件file2舊的文件。
-type
查找某一類型的文件,諸如:
b - 塊設備文件。
d - 目錄。
c - 字符設備文件。
p - 管道文件。
l - 符號連接文件。
f - 普通文件。
-size n:[c] 查找文件長度爲n塊的文件,帶有c時表示文件長度以字節計。
-depth:在查找文件時,首先查找當前目錄中的文件,而後再在其子目錄中查找。
-fstype:查找位於某一類型文件系統中的文件,這些文件系統類型一般能夠在配置文件/etc/fstab中找到,該配置文件中包含了本系統中有關文件系統的信息。
-mount:在查找文件時不跨越文件系統mount點。
-follow:若是find命令遇到符號連接文件,就跟蹤至連接所指向的文件。
-cpio:對匹配的文件使用cpio命令,將這些文件備份到磁帶設備中。
2. locate 命令
locate filename
locate命令實際上是「find -name」的另外一種寫法,可是要比後者快得多,緣由在於它不搜索具體目錄,而是搜索一個數據庫(/var/lib/locatedb),這個數據庫中含有本地全部文件信息。Linux系統自動建立這個數據庫,而且天天自動更新一次,因此使用locate命令查不到最新變更過的文件。爲了不這種狀況,能夠在使用locate以前,先使用updatedb命令,手動更新數據庫。
locate命令的使用實例:
$ locate /etc/sh
搜索etc目錄下全部以sh開頭的文件。
$ locate ~/m
搜索用戶主目錄下,全部以m開頭的文件。
$ locate -i ~/m
搜索用戶主目錄下,全部以m開頭的文件,而且忽略大小寫。
發現包含字符串「filename」的文件名。這比find命令更容易。可是基於數據庫(一般在夜間重建),因此你沒法找到剛剛存到文件系統的文件。爲了強制當即更新數據庫,做爲超級用戶可使用:updatedb& (中間沒有空格)
3. which命令
which executeable_name
查找可執行文件,根據可執行文件的文件名。
例如 which apache2 , 返回/usr/sbin/apache2
二.以文件內容查找
1. grep -n 字符串名字 /filepath/filename
返回包含該字符串的該行,能夠是多行。且包含行數。
2. sudo gedit /filepath/filename
然後,用ctrl+F 去查找相應的字符串。
3. vi或者less命令能夠查找相應的內容
例如 vi /filepath/filename然後,輸入 「/字符串」 ,按下字母「n」到下一個匹配的字符串
4. tail命令
查看文件內容的特殊方法
1. 若是你只想看文件的前5行,可使用head命令,如:
head -5 /etc/passwd
2. 若是你想查看文件的後10行,可使用tail命令,如:
tail -20 /etc/passwd
tail -f /var/log/messages
參數-f使tail不停地去讀最新的內容,這樣有實時監視的效果
tail -f /var/log/messages
按Ctrl+C後,直接從腳本退出到提示符下了shell