精华内容
下载资源
问答
  • linux日志中查找关键字、前几行、结尾几行1、查看日志 前 n行:2、查看日志 尾 n行:3、根据 关键词 查看日志 并返回关键词所在行:3.1方法一:cat 路径/文件名 | grep 关键词3.2方法二:grep -i 关键词 路径/...

    linux在日志中查找关键字、前几行、结尾几行,Linux的find用法示例



    部分内容来源自微信公众号:代码湾 匠心零度

    部分内容原文地址:Linux命令行:find的26个用法示例



    1、linux在日志中查找关键字、前几行、结尾几行

    1.1查看日志 前 n行:

    cat 文件名 | head -n 数量

    demo:

    cat  test.log | head -n 200  # 查看test.log前200行
    

    1.2查看日志 尾 n行:

    cat 文件名 | tail -n 数量

    demo:

    cat  test.log | tail -n 200  # 查看test.log倒数200行
    

    1.3根据 关键词 查看日志 并返回关键词所在行:

    1.3.1方法一:cat 路径/文件名 | grep 关键词

    demo:

    cat  test.log | grep "http"  # 返回test.log中包含http的所有行
    

    1.3.2方法二:grep -i 关键词 路径/文件名

    demo:

    grep -i "http" ./test.log  # 返回test.log中包含http的所有行
    

    2、Linux的find-基本用法

    2.1列出当前目录和子目录下的所有文件

    $ find
    
    .
    
    ./abc.txt
    ./subdir
    
    ./subdir/how.php
    ./cool.php
    
    该命令与以下命令效果相同
    
    $ find .
    
    $ find . -print
    

    2.2查找特殊的目录或路径

    查找当前目录下 test 文件夹中的文件,默认列出所有文件。

    $ find ./test
    ./test
    ./test/abc.txt
    ./test/subdir
    ./test/subdir/how.php
    ./test/cool.php
    

    下面的命令用于查找指定名称的文件。

    $ find ./test -name “abc.txt”
    
    ./test/abc.txt
    

    也可以使用通配符

    $ find ./test -name “*.php”
    
    ./test/subdir/how.php
    ./test/cool.php
    

    请注意,所有的文件夹都会被递归地查找。所以,这是用于查找指定扩展名文件的一种非常强大的方式。

    如果我们尝试搜索 / 文件夹,也就是根目录,就会搜索整个文件系统,包括挂载的设备以及网络存储设备。所以请小心使用。当然,你随时可以通过按 Ctrl + C 来终止命令。

    注意:当指定文件夹的时候(例如示例中的”./test”文件夹),忽略末尾的斜杠是没有问题的。但是,如果文件夹是一个指向其它位置的链接(symlink)时,你必须在末尾写上斜杠才能使find命令正常工作(find ./test/)。

    2.3忽略大小写

    在查找文件名时,忽略大小写往往非常有用。要忽略大小写,只需要使用 iname 选项,而不是name 选项。

    $ find ./test -iname “*.Php”
    
    ./test/subdir/how.php
    ./test/cool.php
    

    总是用双引号或单引号来包围匹配模式(文件名参数),这非常有用。不这样做的话有时也能正常工作,有时也可能会产生奇怪的结果。

    2.4限制目录查找的深度

    find 命令默认会递归查找整个目录树,而这非常消耗时间和资源。好在目录查找的深度可以手动指定。例如我们只想查找一到两层以内的子目录,可以通过 maxdepth 选项来指定。

    $ find ./test -maxdepth 2 -name “*.php”
    
    ./test/subdir/how.php
    ./test/cool.php
    
    $ find ./test -maxdepth 1 -name *.php
    ./test/cool.php
    

    第二个示例中指定了 maxdepth 为1,表明最多只查找一层内的子目录,也就是只查找当前文件夹。

    当我们只想在当前目录下查找,而不是查找整个目录树的时候,这个选项会特别有用。

    与 maxdepth 选项相似,还有一个选项叫做 mindepth ,正如名字所表示的那样,它会至少到达第 N 层子目录后才开始查找文件。

    2.5反向查找

    除了查找满足条件的文件之外,我们还可以查找不满足条件的所有文件。当我们知道要在查找中排除哪些文件时,这个选项就能发挥作用了。

    $ find ./test -not -name “*.php”
    
    ./test
    ./test/abc.txt
    ./test/subdir
    

    在上面的示例中我们找到了所有扩展名不是 php 的文件和文件夹。我们也可以使用感叹号 ! 来代替 -not。

    find ./test ! -name “*.php”
    

    2.6结合多个查找条件

    我们可以同时使用多个查找条件来指定文件名并排除某些文件。

    $ find ./test -name ‘abc*’ ! -name ‘*.php’
    
    ./test/abc.txt
    ./test/abc
    

    上面的命令查找所有以 abc 开头并且不含 .php 扩展名的文件。这个示例展现了 find 命令自带的查找表达式是多么的强大。

    OR 操作符

    当我们使用多个查找条件时, find 命令会将它们通过 AND 操作符结合起来,也就是说,只有满足所有条件的文件才会被列出。不过,如果我们需要进行基于 OR 运算的查找时,可以加上 -o开关。

    $ find -name ‘*.php’ -o -name ‘*.txt’
    
    ./abc.txt
    ./subdir/how.php
    ./abc.php
    ./cool.php
    

    上面的命令查找所有以 .php 结尾或者以 .txt 结尾的文件。

    2.7只查找文件或目录

    有时我们只想通过某个名字查找对应的文件或对应的目录,我们可以很容易实现这个要求。

    $ find ./test -name abc*
    ./test/abc.txt
    ./test/abc
    

    只查找文件

    $ find ./test -type f -name “abc*”./test/abc.txt
    

    只查找目录

    $ find ./test -type d -name “abc*”./test/abc
    

    2.8同时在多个目录下查找

    如果你想要在两个不同的目录内进行查找,命令非常简单。

    $ find ./test ./dir2 -type f -name “abc*”
    
    ./test/abc.txt
    ./dir2/abcdefg.txt
    

    检查一下,它确实列出了来自给定的两个目录的文件。

    2.9查找隐藏文件

    在Linux系统中,隐藏文件的名字以英文的句号开头,即 . 。所以要列出隐藏文件,只需加上简单的文件名过滤条件就行了。

    $ find ~ -type f -name “.*”
    

    3、Linux的find-基于文件权限和属性的查找

    3.1查找指定权限的文件

    通过指定 perm 选项,我们可以查找具有特定权限的文件。下面的示例中查找了所有具有 0664 权限的文件。

    $ find . -type f -perm 0664
    ./abc.txt
    ./subdir/how.php
    ./abc.php
    ./cool.php
    

    我们可以用这个命令来查找带有错误权限的文件,这些文件可能会产生安全问题。

    可以结合 反向查找 来进行权限检查。

    $ find . -type f ! -perm 0777
    ./abc.txt
    ./subdir/how.php
    ./abc.php
    ./cool.php
    

    3.2查找具有 SGID/SUID 属性的文件

    下面的命令查找所有具有 644 权限和 SGID 属性的文件。

    # find / -perm 2644
    

    我们同样可以使用 1664 来查找设置了 粘滞位 (sticky bit)的文件。

    # find / -perm 1644
    

    perm 选项除了接受数值型参数外,同样接受 chmod 命令中的模式串。在下面的查找中,我们用另一种语法来代替数字。

    $ find / -maxdepth 2 -perm /u=s 2>/dev/null
    /bin/mount
    /bin/su
    /bin/ping6
    /bin/fusermount
    /bin/ping
    /bin/umount
    /sbin/mount.ecryptfs_private
    

    注意:由于权限不足,某些目录会拒接访问。命令中的 2>/dev/null 正是用于清除输出中的错误访问结果。

    3.3查找只读文件

    $ find /etc -maxdepth 1 -perm /u=r
    /etc
    /etc/thunderbird
    /etc/brltty
    /etc/dkms
    /etc/phpmyadmin… output truncated …
    

    3.4查找可执行文件

    $ find /bin -maxdepth 2 -perm /a=x
    /bin
    /bin/preseed_command
    /bin/mount
    /bin/zfgrep
    /bin/tempfile… output truncated …
    

    4、Linux的find-基于文件拥有者和用户组的查找

    4.1查找属于特定用户的文件

    查找当前目录下,属于 bob 的文件。

    $ find . -user bob../abc.txt
    ./abc
    ./subdir
    ./subdir/how.php
    ./abc.php
    

    在指定所属用户的同时,我们同样可以指定文件名。

    $ find . -user bob -name ‘*.php’
    

    很容易看出,我们可以通过增加过滤条件来缩小查找文件的范围。

    4.2查找属于特定用户组的文件

    # find /var/www -group developer
    

    5、Linux的find-基于日期和时间的查找

    5.1查找过去的第 N 天被修改过的文件

    # find / -mtime 50
    

    5.2查找过去的 N 天内被访问过的文件

    # find / -atime -50
    

    5.3查找某段时间范围内被修改过内容的文件

    # find / -mtime +50 -mtime -100
    

    5.4查找过去的 N 分钟内状态发生改变的文件

    $ find /home/bob -cmin -60
    

    5.5查找过去的 1 小时内被修改过内容的文件

    # find / -mmin -60
    

    5.6查找过去的 1 小时内被访问过的文件

    # find / -amin -60
    

    6、Linux的find-基于文件大小的查找

    6.1查找指定大小的文件

    $ find / -size 50M
    

    6.2查找大小在一定范围内的文件

    $ find / -size +50M -size -100M
    

    6.3查找最大和最小的文件

    我们可以将 find 命令与 ls 和 sort命令结合,从而找出最大或最小的文件。

    下面的命令使用了 sort 命令的 -r 选项,也就是从大到小降序排列。经过 head 命令的过滤之后,会显示当前目录和子目录下最大的5个文件。命令的执行过程需要一段时间,查找的速度取决于文件的总数。

    $ find . -type f -exec ls -s {} ; | sort -n -r | head 5
    

    同样,我们可以去掉 sort 命令的 -r 选项来进行升序排列,从而显示出最小的5个文件。

    $ find . -type f -exec ls -s {} ; | sort -n | head 5
    

    6.4查找空文件和空目录

    查找空文件:

    # find /tmp -type f -empty
    

    查找空目录:

    $ find ~/ -type d -empty
    

    7、Linux的find-高级用法

    7.1使用 ls 命令列出文件信息

    我们使用 find 命令找到文件后,只能看到文件路径。如果想进一步查看文件信息,可以结合 ls命令来实现。

    $ find . -exec ls -ld {} ;
    
    drwxrwxr-x 4 enlightened enlightened 4096 Aug 11 19:01 .
    
    -rw-rw-r– 1 enlightened enlightened 0 Aug 11 16:25 ./abc.txt
    drwxrwxr-x 2 enlightened enlightened 4096 Aug 11 16:48 ./abc
    drwxrwxr-x 2 enlightened enlightened 4096 Aug 11 16:26 ./subdir
    -rw-rw-r– 1 enlightened enlightened 0 Aug 11 16:26 ./subdir/how.php
    -rw-rw-r– 1 enlightened enlightened 29 Aug 11 19:13 ./abc.php
    -rw-rw-r– 1 enlightened enlightened 0 Aug 11 16:25 ./cool.php
    

    7.2删除找到的文件

    下面的命令会删除 tmp 目录下扩展名为 .txt 的文件。

    $ find /tmp -type f -name “*.txt” -exec rm -f {} ;
    

    我们同样可以删除目录,只要把 -type 后面的 f 改为 d ,并且在 rm 命令后面加上 -r 即可。

    $ find /tmp -type d -name “dirToRemove” -exec rm -r -f {} ;
    
    展开全文
  • cat -n hrun.log | tail -n 50 cat hrun.log | head -n 50 cat -n hrun.log | grep "新增用户" -C 10 cat hrun.log | grep "新增用户" -B 10 cat hrun.log | grep "新增用户" -A 10 cat hrun.log | grep "新增用户...

     

    cat -n hrun.log | tail -n 50 

    cat hrun.log | head -n 50
    cat -n hrun.log | grep "新增用户" -C 10
    cat hrun.log | grep "新增用户" -B 10

    cat hrun.log | grep "新增用户" -A 10
    cat hrun.log | grep "新增用户"

    说明:
    -A 表示关键字之后,After
    -B 表示关键字之前,Before
    -C 表示关键字前后,Context

    展开全文
  • linux系统中,利用grep打印匹配的上下几行   如果在只是想匹配模式的上下几行,grep可以实现。   $grep -5 'parttern' inputfile //打印匹配行的前后5行   $grep -C 5 'parttern' inputfile //...

    linux系统中,利用grep打印匹配的上下几行

     
    如果在只是想匹配模式的上下几行,grep可以实现。
     
    $grep -5 'parttern' inputfile //打印匹配行的前后5行
     
    $grep -C 5 'parttern' inputfile //打印匹配行的前后5行
     
    $grep -A 5 'parttern' inputfile //打印匹配行的后5行
     
    $grep -B 5 'parttern' inputfile //打印匹配行的前5行

    查看mysql慢日志中ip地址为192.168.0.10发送过来的SQL语句的后面三行

    1. tail -50 /usr/local/mysql/data/sql-slow.log |grep -3 '192.168.0.10'  

    匹配php错误日志中某一个字段

      2,tail -100 /data/logs/php/php_error_5.3.log  | grep  "Memcache::get()";

    查看某一个文件第5行和第10行

     sed -n '5,10p' filename 这样你就可以只查看文件的第5行到第10行。


    展开全文
  • 查看前几行 在这里插入图片描述 将文件写入其他文件 在这里插入图片描述 可以使用head(查看前几行)、tail(查看末尾几行)两个命令。 例如: 查看/etc/profile的前10行内容,应该是: head -n 10 /etc/profile ...

    由于日志条数较多,使用tail查看末尾几行命令
    查看末尾几行
    在这里插入图片描述
    查看关键字
    在这里插入图片描述
    查看前几行
    在这里插入图片描述
    将文件写入其他文件
    在这里插入图片描述

    可以使用head(查看前几行)、tail(查看末尾几行)两个命令。
    例如:
    查看/etc/profile的前10行内容,应该是:

    head -n 10 /etc/profile
    查看/etc/profile的最后5行内容,应该是:

    tail -n 5 /etc/profile
    如果想同时查看可以将前10行和后5行的显示信息通过输出重定向的方法保存到一个文档,这样查看文档即可一目了然。
    例如:
    将内容输出到/home/test文件中

    head -n 10 /etc/profile >>/home/test
    tail -n 5 /etc/profile>>/home/test
    查看的话只需要打开test文件即可。
    cat /home/test
    【一】从第3000行开始,显示1000行。即显示3000~3999行

    cat filename | tail -n +3000 | head -n 1000

    【二】显示1000行到3000行

    cat filename| head -n 3000 | tail -n +1000

    *注意两种方法的顺序

    分解:

    tail -n 1000:显示最后1000行

    tail -n +1000:从1000行开始显示,显示1000行以后的

    head -n 1000:显示前面1000行
    1
    2
    3
    4
    5
    【三】用sed命令

    sed -n ‘5,10p’ filename 这样你就可以只查看文件的第5行到第10行。

    展开全文
  • 概述分享几个平时工作中基本会用到的linux日志查询命令,主要是在跟开发排查问题的时候比较有用。。。1.查看实时日志tail -f nohup.out2.分页查看所有日志cat nohup.out | more3.分页查看N行日志tail -n 1000 ...
  • 1、查看日志前 n行:  cat 文件名 | head -n 数量  demo:  cat test.log | head -n 200 # 查看test.log前200行 2、查看日志尾 n行:  cat 文件名 | tail -n 数量  demo:  cat test.log | tail -n ...
  • 概述分享几个平时工作中基本会用到的linux日志查询命令,主要是在跟开发排查问题的时候比较有用。。。1.查看实时日志tail -f nohup.out2.分页查看所有日志cat nohup.out | more3.分页查看N行日志tail -n 1000 ...
  • Linux grep根据关键字匹配前后几行

    万次阅读 2017-07-31 18:09:16
    Linux环境下,查看文件内容时,很多时候需要查看指定关键字的前后几行,如查看日志文件时,如果日志文件太大,想直接在Linux 终端中查看,可以grep ‘partten’ filename 进行过滤,如果想查看匹配行的前后几行,...
  • 查看匹配内容的前后几行: reg : 代表要搜索的内容 destFile : 代表要搜索的文件 #grep -5 'reg' destFile //打印匹配行的前后5行 #grep -C 5 'reg' destFile //打印匹配行的前后5行 #grep ...
  • linux系统中,利用grep打印匹配的上下几行 如果在只是想匹配模式的上下几行,grep可以实现。 $grep -5 ‘parttern’ inputfile //打印匹配行的前后5行 $grep -C 5 ‘parttern’ inputfile //打印匹配行的前后5行 $...
  • 如果开发需要日志的话就执行以下命令:grep -C 100 'ABC' A.log > /opt/error.log 想匹配模式的上下几行,grep可以实现: $grep -5 'parttern' inputfile //打印匹配行的前后5行 $grep -C 5 'parttern' .....
  • 我举一个具体的例子:在打印日志堆栈信息时,就是在字符串“exception” 之后的几行,但这整个部分是在文件的中间,如果将这部分数据提取出来呢? 使用grep命令可以比较轻松达到目的,具体使用如下: $ grep -A|B n ...
  • 查看匹配的行数: grep-o“关键字xxxx”/etc/tomcat.log | wc–l 最近匹配的记录明细: grep“关键字xxx” -A 1 /etc/tomcat.log | tail–n 10 查看其中一条前后10行: grep-C 10“具体行的唯一......
  • linux grep查看指定内容上下几行

    千次阅读 2020-04-08 19:59:26
    linux系统中,可以利用grep查看指定的内容, 比如:grep “123” test.log //查看test.log中包含123字符的日志 如果想查看指定内容上下几行,可以用参考下面的用法: $grep -10 ‘123’ test.log//打印匹配行的...
  • 如果在只是想匹配模式的上下几行,grep可以实现。 $grep -5 'parttern' inputfile //打印匹配行的前后5行 $grep -C 5 'parttern' inputfile //打印匹配行的前后5行 $grep -A 5 'parttern' inputfile //打印...
  • linux 日志查看

    2020-09-02 11:01:54
    Linux日志筛选命令 循环实时查看最后50行记录: tailf -n 50 tomcat_stdout.log 指定时间区间的日志: 前提是日志中有日期打印,可先执行此命令:grep '2020-09-01 14:40:20’ tomcat_stdout.log sed -n '...
  • Linux 日志文件搜索

    千次阅读 2018-01-31 14:10:08
    1. 通常查找出错误日志 cat error.log | grep 'nick' , 这时候我们还有个需求就是输出当前这个日志的前后几行: cat error.log | grep -C 5 'nick' 显示file文件里匹配foo字串那行以及上下5行 cat error....
  • Linux日志查找关键字

    万次阅读 2018-05-16 16:49:00
    linux系统中,利用grep打印匹配的上下几行   如果在只是想匹配模式的上下几行,grep可以实现。   $grep -5 ‘parttern’ inputfile //打印匹配行的前后5行 &...
  • linux 日志查看总结

    2019-10-01 14:48:18
    1 grep "ERROR" catalina.log -a 20 -b 10 查看 catalina.log 中error的唯一 一行的后20行 10行这种情况一般要唯一确定。 2 tail -n 200 catalina.log 后200行 从尾部开始查tai -f catalina.log 强制监控修改 ...
  • nux系统中,利用grep打印匹配的上下几行 如果在只是想匹配模式的上下几行,grep可以实现。 $grep -5 'parttern' inputfile //打印匹配行的前后5行 $grep -C 5 'parttern' inputfile //打印匹配行的前后5行 $...
  • linux查看线上日志

    2019-09-17 15:24:22
    通常查找出错误日志 cat error.log | grep 'nick' , 这时候我们要输出当前这个日志的前后几行: 显示file文件里匹配nick那行以及上下5行 cat error.log | grep -C 5 'nick' 显示nick及5行 cat ...
  • grep linux的文字查找命令head、tail显示输出文本的前几行或者后几行 格式 head -5/tail -10技巧查看指定行开始的若干行 tail -n +指定行号 文件|head -若干行grep linux的文字查找命令命令格式 grep [-参数] &...
  • 1运行startup.sh后查看catalina日志前几行信息,或者运行shutdown.sh后的信息,检查JRE_HOME和JAVA_HOME是否正确 Using CATALINA_BASE: /usr/local/apache-tomcat-8.5.39 Using CATALINA_HOME: /usr/local/apache-...
  • 目前在测试环境或生产环境用的比较多的查日志方式: 1.搜索某个文件里面是否包含字符串 命令格式:grep “被查找的字符串” filename 例如:一般会都使用traceId线程号来追踪 grep 23e5434fr884d53f9 /applogs/...

空空如也

空空如也

1 2 3 4
收藏数 69
精华内容 27
关键字:

linux日志前几行

linux 订阅