道阻且长,行则将至。埋头苦干,不鸣则已,一鸣惊人!加油,骚年!!!

1 背景

  最近在工作开发中,经常需要通过 Xshell 连接设备,进行调试等。可是在日常使用时,一般都是通过串口直接连接到控制板,查看打印信息。此时如果有另外一个人,通过 ssh 连接到控制板,他是没办法看到打印的日志信息的,当然重新启动程序,即可看到打印信息。但是在实际中不推荐这样用,因为一些设备由于条件、环境等因素限制,不能重启,那怎么办呢?

  此时,Linux下的 tail 命令,可以帮助我们很好的解决这个问题!????

  参考网址:菜鸟教程 - Linux tail 命令,看完之后,应该就有一个大概的了解了。

顺便附上菜鸟教程Linux命令大全的网址:菜鸟教程 - Linux命令大全,温馨提示:善于使用 Ctrl + F 快捷键哦????

  下边是自己在使用过程中的,经验总结记录。

2 tail 命令分析

  tail 命令可用于查看文件的内容。英文翻译:尾。在实际使用时,常用的一个命令如下:

tail -f filename

  此命令使用了一个主要的参数 -f,可以用来查阅正在改变的日志文件。

  此命令会把 filename 文件里的最尾部的内容显示在屏幕上,并且不断刷新,只要 filename 更新就可以看到最新的文件内容。

  命令格式:

tail [参数] [文件名]

2.1 参数分析

  tail 命令可以搭配多个参数使用,不过我目前只用到了 -f,参考菜鸟教程总结常用参数如下:

参数 作用
-f 循环读取
-q 不显示处理信息
-v 显示详细的处理信息
-c<数目> -c + 空格 + 数目 n:显示的字节数。
自己测试是从文件末尾开始往前计数 n 个字节数。
-n<行数> -n + 空格 + 行数 n:显示文件的尾部 n 行内容。
–pid=PID 一般与 -f 一块使用,表示在进程 ID、PID 死掉之后结束

2.2 简要举例

  • 实时打印日志文件
tail -f log.log
  • 显示文件 log.log 的内容,从第20行至文件末尾
tail +20 log.log
  • 显示文件 log.log 的最后100个字符
tail -c 100 log.log
  • 显示文件 log.log 最后100行数据
tail -n 100 log.log
  • 除了 log.log 前99行不显示外,显示第100行到末尾行
tail -n -100 log.log
  • 实时打印非当前路径的日志文件 log.log
tail -f /etc/log.log
3 重定向实时打印

  当我们在实际使用时,可能会同时有多个进程在运行,那这每个进程都会有日志信息打印,当日志文件太多,设备空间不够时,怎么办?怎么能只看某个正在运行的进程打印出来的日志信息呢?那就要使用重定向命令了

  参考网址:LINUX 下使用 reredirect 重定向进程输出

  上述网址有对应的安装路径,以及编译的时候,需要配置相关参数,由于我只是在实际使用过程中,已经有这个东西了,所以我也就没有太深入的了解怎么安装等等。

  具体用法:

  • 先使用命令查看当前进程ID
ps -aux                    // 全部显示
ps -aux | grep 进程名       // 只显示与“进程名”相关的进程信息,增加一层过滤
  • 重定向到指定进程ID(PID)
reredirect -m filename 进程ID   // 将此进程的日志信息,定向输出到 filename 此文件中。
  • 实时查看日志信息
tail -f filename
4 总结
  1. 命令虽好,但还是要多加练习,学会变通,举一反三才能熟练掌握;
  2. 只是简单总结实际常用的内容,其他的了解的还不是很深入,看后续情况,再决定是否进一步加强;
  3. 有错误还望多多指正!谢谢

笔记总结不易,觉得文章内容还不错的,点个赞呗????,谢谢您嘞!