tail
基本格式:
tail [ -f ] [ -c Number | -n Number | -m Number | -b Number | -k Number ] [ File ]
參數解釋:
-f 該參數用於監視File文件增長。 -c Number 從 Number 字節位置讀取指定文件 -n Number 從 Number 行位置讀取指定文件。 -m Number 從 Number 多字節字符位置讀取指定文件,比方你的文件假設包括中文字,假設指定-c參數,可能導致截斷,但使用-m則會避免該問題。 -b Number 從 Number 表示的512字節塊位置讀取指定文件。 -k Number 從 Number 表示的1KB塊位置讀取指定文件。 File 指定操作的目標文件名稱
示例:
tail -300f shopbase.log #倒數300行並進入實時監聽文件寫入模式
tail -f catalina.out |grep "S201903161209220000001" #輸出指定文件的指定內容
grep
grep是根據文件的內容進行查找,會對文件的每一行按照給定的模式(patter)進行匹配查找。
基本格式:
grep [OPTIONS] PATTERN [FILE...]
grep [OPTIONS] [-e PATTERN]... [-f FILE]... [FILE...]
[options]主要參數:
OPTIONS: -e: 使用正則搜索 -i: 不區分大小寫 -v: 查找不包含指定內容的行 -w: 按單詞搜索 -c: 統計匹配到的次數 -n: 顯示行號 -r: 逐層遍歷目錄查找 -A: 顯示匹配行及前面多少行, 如: -A3, 則表示顯示匹配行及前3行 -B: 顯示匹配行及后面多少行, 如: -B3, 則表示顯示匹配行及后3行 -C: 顯示匹配行前后多少行, 如: -C3, 則表示顯示批量行前后3行 --color: 匹配到的內容高亮顯示 --include: 指定匹配的文件類型 --exclude: 過濾不需要匹配的文件類型
pattern正則表達式主要參數:
\: 忽略正則表達式中特殊字符的原有含義。 ^: 匹配正則表達式的開始行。 $: 匹配正則表達式的結束行。 \<: 從匹配正則表達 式的行開始。 \>: 到匹配正則表達式的行結束。 [ ]: 單個字符,如[A]即A符合要求 。 [ - ]: 范圍,如[A-Z],即A、B、C一直到Z都符合要求 。 .: 所有的單個字符。 *: 有字符,長度可以為0。
示例:
grep 'forest' f.txt #文件查找 grep 'forest' f.txt cpf.txt #多文件查找 grep 'log' /home/admin -r -n #目錄下查找所有符合關鍵字的文件 grep 'shopbase' /home/admin -r -n --include *.{vm,java} #指定文件后綴 grep 'shopbase' /home/admin -r -n --exclude *.{vm,java} #反匹配
find
find命令是根據文件的屬性進行查找,如文件名,文件大小,所有者,所屬組,是否為空,訪問時間,修改時間等。
基本格式:
find pathname -options [-print -exec -ok ...]
參數:
pathname: find命令所查找的目錄路徑。例如用.來表示當前目錄,用/來表示系統根目錄。 -print:find命令將匹配的文件輸出到標准輸出。 -exec:find命令對匹配的文件執行該參數所給出的shell命令。相應命令的形式為'command' { } ;,注意{ }和;之間的空格。 -ok: 和-exec的作用相同,只不過以一種更為安全的模式來執行該參數所給出的shell命令,在執行每一個命令之前,都會給出提示,讓用戶來確定是否執行。 find[options]命令選項: -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
示例:
- 按照文件名查找
find / -name httpd.conf #在根目錄下查找文件httpd.conf,表示在整個硬盤查找 find /etc -name httpd.conf #在/etc目錄下文件httpd.conf find /etc -name 'srm' #使用通配符(0或者任意多個)。表示在/etc目錄下查找文件名中含有字符串‘srm’的文件 find . -name 'srm' #表示當前目錄下查找文件名開頭是字符串‘srm’的文件
- 按照文件特征查找
find / -amin -10 # 查找在系統中最后10分鍾訪問的文件(access time) find / -atime -2 # 查找在系統中最后48小時訪問的文件 find / -empty # 查找在系統中為空的文件或者文件夾 find / -group cat # 查找在系統中屬於group為cat的文件 find / -mmin -5 # 查找在系統中最后5分鍾里修改過的文件(modify time) find / -mtime -1 #查找在系統中最后24小時里修改過的文件 find / -user fred #查找在系統中屬於fred這個用戶的文件 find / -size +10000c #查找出大於10000000字節的文件(c:字節,w:雙字,k:KB,M:MB,G:GB) find / -size -1000k #查找出小於1000KB的文件
- 使用混合查找方式查找文件
參數有: !,-and(-a),-or(-o)
find /tmp -size +10000c -and -mtime +2 #在/tmp目錄下查找大於10000字節並在最后2分鍾內修改的文件 find / -user fred -or -user george #在/目錄下查找用戶是fred或者george的文件文件 find /tmp ! -user panda #在/tmp目錄中查找所有不屬於panda用戶的文件