日常我們開(kāi)發(fā)時(shí),我們會(huì)遇到各種各樣的奇奇怪怪的問(wèn)題(踩坑o(╯□╰)o),這個(gè)常見(jiàn)問(wèn)題系列就是我日常遇到的一些問(wèn)題的記錄文章系列,這里整理匯總后分享給大家,讓其還在深坑中的小伙伴有繩索能爬出來(lái)。
專(zhuān)注于為中小企業(yè)提供成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)興國(guó)免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了上千多家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過(guò)網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
同時(shí)在這里也歡迎大家把自己遇到的問(wèn)題留言或私信給我,我看看其能否給大家解決。
在Linux中我們經(jīng)常需要查找一些文件或者根據(jù)文件內(nèi)容進(jìn)行查找到底在哪些文件里面,這時(shí)就需要用到本節(jié)要講到的find命令了,這個(gè)命令可以讓我們進(jìn)行查找到想要的文件,話不多說(shuō)下面直接開(kāi)始本節(jié)的干貨。
1、查找當(dāng)前目錄下的指定文件(當(dāng)前目錄向下無(wú)限極)
2、全文搜索符合于文件名的
3、不區(qū)分大小寫(xiě)文件名的搜索
4、列出當(dāng)前目錄及子目錄下的所有文件
5、查找近10天內(nèi)被更新過(guò)的文件(-ctime 天 -cmin分鐘 )
6、根據(jù)文件內(nèi)容查找文件
7、在特定文件類(lèi)型下根據(jù)文件內(nèi)容查找文件
以上就是我整理的常用的查詢文件命令,整理出來(lái)供大家一起使用,有需要補(bǔ)充的歡迎在留言區(qū)進(jìn)行留言補(bǔ)充,謝謝大家~~~
常用的7個(gè)Linux文件內(nèi)容查看命令:
1.cat由第一行開(kāi)始顯示文件內(nèi)容
用法:
cat-A 相當(dāng)于-vET的整合選項(xiàng),可列出一些特殊字符而不是空白;
cat-b 列出行號(hào),僅針對(duì)非空白行做行號(hào)顯示,空白行不標(biāo)行號(hào);
cat-E 將結(jié)尾的斷行字節(jié)$顯示出來(lái);
cat-n 列印出行號(hào),連同空白行也會(huì)有行號(hào),與-b的選項(xiàng)不同;
cat-T 將[tab]按鍵以^I顯示出來(lái);
cat-v 列出一些看不出來(lái)的特殊字符;
2.tac 由最后一行開(kāi)始顯示文件內(nèi)容
tac-b 在行前而非行尾添加分隔標(biāo)志;
tac-r 將分隔標(biāo)志視作正則表達(dá)式來(lái)解析;
tac-s 使用指定字符串代替換行作為分隔標(biāo)志;
3.nl 顯示行號(hào)
nl-b a 無(wú)論是否為空行,均列出行號(hào);
nl-b t 空行不列出行號(hào);
nl-n ln 行號(hào)在熒幕的最左方顯示;
nl-n rn 行號(hào)在自己欄位的最右方顯示,且不加0;
nl-n rz 行號(hào)在自己欄位的最右方顯示,且加0;
nl-w 行號(hào)欄位的占用的位數(shù);
4.more 一頁(yè)一頁(yè)的顯示文件內(nèi)容
在more程序運(yùn)行過(guò)程中,可以按以下鍵:
空白鍵(space):代表向下翻一頁(yè);
Enter:代表向下翻『一行』;
/字串:代表在這個(gè)顯示的內(nèi)容當(dāng)中,向下搜尋『字串』這個(gè)關(guān)鍵字;
:f:立刻顯示出檔名以及目前顯示的行數(shù);
q:代表立刻離開(kāi)more,不再顯示該文件內(nèi)容。
b或[ctrl]-b:代表往回翻頁(yè),不過(guò)這動(dòng)作只對(duì)文件有用,對(duì)管線無(wú)用。
5.less與more類(lèi)似,但是比more更好的是,他可以往前翻頁(yè)
less運(yùn)行時(shí)可以輸入的命令有:
空白鍵:向下翻動(dòng)一頁(yè);
[pagedown]:向下翻動(dòng)一頁(yè);
[pageup]:向上翻動(dòng)一頁(yè);
/字串:向下搜尋『字串』的功能;
?字串:向上搜尋『字串』的功能;
n:重復(fù)前一個(gè)搜尋(與/或?有關(guān)!);
N:反向的重復(fù)前一個(gè)搜尋(與/或?有關(guān)!);
q:離開(kāi)less這個(gè)程序;
6.head 顯示前幾行
語(yǔ)法:
head-n 后面接數(shù)字,代表顯示行數(shù);
7.tail 顯示后幾行
tail-n 后面接數(shù)字,代表顯示行數(shù);
tail-f 表示持續(xù)偵測(cè)后面所接的檔名,要等到按下[ctrl]-c才會(huì)結(jié)束tail的偵測(cè);
find,用于在文件樹(shù)中查找文件并作相應(yīng)的處理
-name:按照文件名查找文件
-perm:按照文件權(quán)限查找文件
-user:按照文件屬主來(lái)查找文件
-size:按照指定的文件大小查找文件【+n:大于,-n:小于,n:等于】
-group:按照文件所屬的組來(lái)查找文件
-mtime-n+n:按照文件更改時(shí)間來(lái)查找文件,-n表示n天之內(nèi),+n表示n天以前
-newer file1 file2:查找更改時(shí)間在file1和file2之間的文件
例如:
find -mtime -2:查找48小時(shí)修改過(guò)的文件
find -name ".log":查找當(dāng)前目錄以".log"結(jié)尾的文件
find /opt/soft/test -perm 777:查找指定目錄下權(quán)限為777的文件
find -type f -name "*.log":查找當(dāng)前目錄下以".log"結(jié)尾的普通文件
find -type d | sort:查找當(dāng)前所有目標(biāo)目錄并排序
find /home/wansw -size +20M:查找大于20M的文件
locate指令,可以快速定位文件路徑,利用事先建立的系統(tǒng)中的所有文件名稱(chēng)和路徑的locate數(shù)據(jù)庫(kù),無(wú)需遍歷整個(gè)文件系統(tǒng),查詢速度較快,為了保證查詢準(zhǔn)確性,需要定期更新?!禠inux就該這么學(xué)》
updatedb:第一次運(yùn)行前,創(chuàng)建locate數(shù)據(jù)庫(kù)
grep,用于過(guò)濾/搜索指定字符串??梢允褂谜齽t表達(dá)式,能配合多種命令使用。
用法:grep 【選項(xiàng)】 查找內(nèi)容 源文件
-A:顯示符合的行及之后的內(nèi)容
-B:顯示符合的行及之前的內(nèi)容
-C:顯示符合的行及前后的內(nèi)容
-c:計(jì)算符合的行數(shù)目
-n:顯示匹配行和行號(hào)
-i:忽略大小寫(xiě)
規(guī)則表達(dá)式
:'grep'表示匹配所有以grep開(kāi)頭的行
'表示匹配所有以grep結(jié)尾的行
.:'gr.p'表示匹配'gr'后面接任意字符然后是'p'
:'grep'表示匹配一個(gè)或多個(gè)空格后緊跟grep的行
[]:[Gg]rep表示匹配Grep與grep
[]:[A-FH-Z]rep表示匹配不以A-F、H-Z開(kāi)頭并緊跟rep的行
例如(grep命令大多數(shù)時(shí)候多要和別的命令一起使用才有意義):
ps -ef | grep -c SVN:查找指定的進(jìn)程的個(gè)數(shù)
cat test.txt | grep -f test2.txt:從text2.txt中讀取關(guān)鍵字后在test.txt中搜索
cat test.txt | grep nf text2.txt:從text2.txt中讀取關(guān)鍵字后在text.txt中搜索并顯示行號(hào)
grep 'linux' text.txt test2.txt:從多個(gè)文件中搜索關(guān)鍵字'linux'
cat test.txt | grep -E 'ed|at':顯示包含ed或at的行
1、grep [選項(xiàng)] 字符串 文件名(在文件中匹配符合條件的字符串)
選項(xiàng):
-i 忽略大小寫(xiě)
-v 排除指定的字符串
例子:
grep "test" a.txt(在a.txt中搜索匹配test的字符串)
注意:
find命令:在系統(tǒng)中搜符合條件文件名,使用通用符,通用符是完全匹配
grep命令:在文件中搜索符合條件字符串,使用正則匹配,正則包含匹配
1、登錄Linux系統(tǒng)之后打開(kāi)終端,確定你要找關(guān)鍵字的目錄。
2、查看下當(dāng)前目錄下所有的文件,你所要找的關(guān)鍵字就在當(dāng)前目錄下某個(gè)文件里面。
3、find -type f -print這個(gè)命令可以列出當(dāng)前目錄下的所有文件。
4、type后面的f是file的意思,所以只列出文件,而排除文件夾。
5、接下來(lái)只要在find命令后面加上exec命令就可以實(shí)現(xiàn)。
文件搜索命令(只能搜索文件)
locate 文件名
在后臺(tái)數(shù)據(jù)庫(kù)中按文件名搜索,搜索速度快????? /var/lib/mlocate(locate文件數(shù)據(jù)庫(kù))??? 這個(gè)數(shù)據(jù)庫(kù)默認(rèn)一天更新一次,強(qiáng)制更新命令:updatedb
按照/etc/updatedb.conf配置文件里面規(guī)則進(jìn)行搜索
搜索命令的命令:whereis
whereis 命令名???????????????????????????????? 作用:搜索命令所在路徑及幫助文檔所在位置
-b(只查找可執(zhí)行文件)????? -m(只查找?guī)椭募?
which? 文件名??? 作用:搜索命令所在路徑及別名
PATH環(huán)境變量:定義的是系統(tǒng)搜索命令的路徑
find [搜索范圍] [搜索條件]
find? /root?? -nouser(搜索沒(méi)有所有者的文件)
find? /var/log? -mtime +10 (查找10天前修改的文件)??????????? atime(文件訪問(wèn)時(shí)間)? ctime(改變文件屬性的時(shí)間)? mtime(修改文件內(nèi)容的時(shí)間)
find ? .? -size 25k(查找當(dāng)前目錄等于25k的文件)???????????? find?? .?? -size?? +10M(查找當(dāng)前目錄大于10M的文件)
find? /etc? -size +20k? -a? -size -50k (查找/etc下大于20k小于50k的文件)?????? -a(and)?? -o(or)
find? /etc? -size +20k? -a? -size -50k -exec ls -lh {} \; (查找/etc下大于20k小于50k的文件,并顯示詳細(xì)信息)?《Linux就該這么學(xué)》 一起學(xué)習(xí)更多命令
ls -i 文件名(查看該文件的i節(jié)點(diǎn))
grep [選項(xiàng)] 字符串 文件名
-i (忽略大小寫(xiě))?? -v(排除指定字符串)
Linux中的通配符:
*?? :匹配任意內(nèi)容?? ?? ? ?? :匹配任意一個(gè)字符 ? ? ?? [] ?? 匹配任意一個(gè)中括號(hào)內(nèi)的字符