tail -n 10 test.log 查询日志尾部最后10行的日志;
tail -n +10 test.log 查询10行之后的所有日志;
head -n 10 test.log 查询日志文件中的头10行日志;
head -n -10 test.log 查询日志文件除了最后10行的其他所有日志;
场景1: 按行号查看—过滤出关键字附近的日志
1.1 cat -n test.log |grep “地形” 得到关键日志的行号
1.2得到”地形”关键字所在的行号是102行. 此时如果我想查看这个关键字前10行和后10行的日志:
cat -n test.log |tail -n +92|head -n 20
tail -n +92表示查询92行之后的日志
场景2:那么按日期怎么查呢? 通常我们非常需要查找指定时间端的日志
sed -n ‘/2014-12-17 16:17:20/,/2014-12-17 16:17:36/p’ test.log
特别说明:上面的两个日期必须是日志中打印出来的日志,否则无效.
关于日期打印,可以先 grep ‘2014-12-17 16:17:20’ test.log 来确定日志中是否有该时间点,以确保第4步可以拿到日志
这个根据时间段查询日志是非常有用的命令.
如果我们查找的日志很多,打印在屏幕上不方便查看, 有两个方法:
(1)使用more和less命令, 如: cat -n test.log |grep “地形” |more这样就分页打印了,通过点击空格键翻页
(2)使用 >xxx.txt 将其保存到文件中,到时可以拉下这个文件分析.如:
cat -n test.log |grep “地形” >xxx.txt
自:https://jingyan.baidu.com/article/656db918fccd01e381249c2b.html
按日期截取线上日志命令
(1)首先,需清楚日志输出的时间日期格式,具体命令如下:
sed -n ‘/6-5 00:00:00/,/6-5 16:30:31/’p catalina.log > test.log
上面的命令就代表截取总日志catalina.log中日期为6月5号0点到16点30分31秒的日志,并输出重定向到test.log。
(2)其中日期格式不同就只需修改下日期格式即可,如下只需改日期即可:
sed -n ‘/1-09 15:00:00/,/1-09 16:30:31/’p catalina.log > catalina.2017-01-09.log
这样就可以取出1月9号下午15点到下午16点30分31秒的日志。
按行数截取线上日志
(1)首先,先查看总日志,如下面操作:
vi catalina.log
输入英文的冒号,再输入set nu,显示行数,然后定位一下你所需取的行数,接着输入命令:
sed -n ‘10000,20000p’ catalina.log > test.log
这样就可以取出10000到20000行的日志。
(2)其中,我们要定位其行数时,我们可以这样操作:
vi catalina.log
gets函数从标准的输入读取,如果使用gets函数给字符数组输入字符串时,字符数组不能指定长度,因为,只要字符数组的长度小于gets函数读取的行缓存的大小,即使你输入的字符数大于你所规定的字符数组的长度,gets函数也会接收所输入的全部字符,造成字符数组越界。答:如果您在确认了自己注册的用户密码正确的情况下linux常用命令,一般是因为您用户名或密码输的过快导致的,当输入有连续数字(比如55)时要注意需要慢一点输入,否则数字会变成英文字符。虽然结贴了,但我还要说一句,是忍不住要说一句啊,不管怎么说,易语言是中国的东西,是以我们的母语为基础的,任何一样新事物出现时都会有不完美的地方,有人喜欢有人不喜欢,但只要我们中国人自己喜欢那么就是世界25%的人喜欢了linux常用命令,中文没有英文输入快,那不是理由,既然这么喜欢英文怎么没见楼上的各位大大用英文发贴嘛,“函数”输入快还是“function”输入快啊,“数字”输入快还是“integer”输入快啊,“字符”输入快还是“string”输入快啊,这么喜欢英文,怎么没见你说“五笔”“智能abc”是哪个吃饱了饭没事干的发明的啊,无言中,最后我只想说,作为一个中国人,希望大家能给“中国”的这个新事物一个良好的发展空间,我相信有一天经过我们国人的一起努力,老外也不得不用我们自己的东西。