我喜欢less ,我可以使用+F标志(或Shift F热键)跟踪日志,向前和向后search,并且通常在文档中自由移动。
但是有一件事情less :通常我在文件的末尾,我想看到新的事情发生。 在tail -f我会打几次进入 ,新的日志行将显然清楚地分开的旧线。
可以添加到less ? 怎么样?
这不是真的tail的行为 – 这是terminal。 尾巴只是发送一个输出stream到标准输出,它到达您的terminal,并通过按回车在输出中间插入空行。 尾巴本身实际上并不接受你的意见。 你可以input任何你想要的东西,也会显示出来。
然而, less是一个控制台应用程序,它需要input和处理它。 它使用terminal控制序列来pipe理控制台,这就是你可以滚动的方式。 让你插入任意的字符到stream中会弄乱显示,而且更less使用你的input来控制程序。
不幸的是,它似乎没有办法在视觉上标记当前位置。 这不是一个可怕的function请求,但less一些仍然不断获得新function。
我在为自己寻求同样的答案时发现了你的问题。
被接受的答案感到失望,我想出了一个解决方法。 这是不理想的,但它可以让我标记我的日志,我跟着less ,这是整个点。
我用下面的内容创build了一个小的可执行脚本(我称之为marklog ),并把它放在我的path中:
#!/bin/sh echo >> $1 echo >> $1 echo >> $1 echo `date` ---------------------------------------------------------------------- >> $1 echo >> $1 echo >> $1
当然,这只有在你有写访问日志文件的情况下才有效 – 在许多情况下这可能是一个交易断路器。 我也创build了这个版本,我用它来写入日志文件,我不拥有(但我有sudo访问):
#!/bin/sh sudo sh -c "echo >> $1" sudo sh -c "echo >> $1" sudo sh -c "echo >> $1" sudo sh -c "echo `date` ------------------------------------------------------------------------- >> $1" sudo sh -c "echo >> $1" sudo sh -c "echo >> $1"
这些脚本提供了我正在寻找的那种视觉中断。 至less有三种方法可以使用它们:
在使用tail -f ,通常会按几次input,而是从另一个terminal运行marklog (提供日志文件的path作为参数)。
使用Ctrl Z可以less挂起,所以你可以在同一个terminal窗口中运行脚本,但是当你重新前景less (当然使用fg ),它将不再处于“跟随”模式,所以你需要再次点击Shift F …
最后 – 这可能是最方便的方法,因为您不需要input日志文件的path:通过input!marklog %直接运行marklog 。 Less将replace当前的文件名为% 。 但是, less不会回应! 当它处于'follow'模式时,所以你必须!marklog % Ctrl C退出跟随模式,运行!marklog % ,然后再按F 键 。
使用方法3,您还可以获得Less的命令历史logging的额外奖励:只需点击! 然后使用向上箭头select最近的命令(对我来说,它总是marklog )。
希望这可以帮助已经帮助过我的人。
按下文件末尾的Shift + F ,小于tail -f将开始工作。
我不认为你可以做到这一点。 我用m和'来标记感兴趣的地方,然后再转到它们,但是这不会给你所要求的分离。 也许像multitail一样会做你想要的。