---
author: Arindam
category: 技术
comments_data: []
count:
  commentnum: 0
  favtimes: 0
  likes: 0
  sharetimes: 0
  viewnum: 2635
date: '2023-01-18 10:16:00'
editorchoice: false
excerpt: 如果你想调试或排除任何问题，你需要一个像 lnav 这样的高级日志文件查看器。它在任何 Linux 系统的终端都能创造奇迹。
fromurl: https://www.debugpoint.com/advanced-log-file-viewer-lnav-ubuntu-linux/
id: 15454
islctt: true
largepic: /images/p/202301/18/101616eio2v80m1v34ol2o.jpg
permalink: /article-15454-1.html
pic: /images/p/202301/18/101616eio2v80m1v34ol2o.jpg.thumb.jpg
related: []
reviewer: wxy
selector: lkxed
summary: 如果你想调试或排除任何问题，你需要一个像 lnav 这样的高级日志文件查看器。它在任何 Linux 系统的终端都能创造奇迹。
tags:
- lnav
thumb: false
title: 'lnav: 用于 Linux 的高级日志文件浏览器'
titlepic: true
translator: geekpi
updated: '2023-01-18 10:16:00'
---

![](/images/p/202301/18/101616eio2v80m1v34ol2o.jpg)



> 
> 如果你想调试或排除任何问题，你需要一个像 lnav 这样的高级日志文件查看器。它在任何 Linux 系统的终端都能创造奇迹。
> 
> 
> 


### lnav: 日志文件查看器


`lnav` 可以即时解压缩所有的压缩日志文件，并将它们合并在一起进行漂亮的显示。显示是根据错误/警告的类型进行解析和格式化的，这有助于快速浏览成千上万的日志，特别是在服务器中。


在分析日志的时候，时间戳是非常重要的。所以 `lnav` 会根据时间戳合并多个日志，这对追踪系统问题很有帮助。


大多数重要的日志文件格式检测都是内置的，包括如下：


* <ruby> 通用网络访问日志 <rt>  Common Web Access Log </rt></ruby>格式
* CUPS page\_log
* Syslog
* Glog
* VMware ESXi/vCenter 日志
* dpkg.log
* uwsgi
* “通用”：任何以时间戳开头的信息
* Strace
* sudo
* GZIP、BZIP


这还不是全部，`lnav` 还能实现以下功能，使其成为 Linux 系统的重要应用：


* 根据正则表达式过滤消息
* 错误日志的时间轴视图
* 漂亮的打印视图，这有助于重新格式化
* 使用 SQL 查询日志
* 在搜索时，日志会实时更新
* 通过正则表达式高亮显示语法（比如你想在整个日志中找出一个 IP 地址）
* 显示的日志中任何单词的 Tab 补全！!


![lnav 在 ubuntu 中运行](/images/p/202301/18/101701z6w652nr663ne66p.png)


要查看上述功能的截图和了解更多信息，请访问 [本页面](http://lnav.org/features/) 。


### 如何安装


这个程序在 Ubuntu、Debian 的官方仓库中可以找到。使用以下命令安装它。



```
sudo apt install lnav

```

而对于 Fedora、RHEL 用户，使用下面的命令：



```
sudo dnf install lnav

```

另外，开发者还提供了一个离线的独立可执行文件，你不需要安装。你可以从 [GitHub 发布页](https://github.com/tstack/lnav/releases/) 下载压缩包，然后按以下方式执行：



```
./lnav

```

**注意**：它也可用于 macOS，你可以在上述 GitHub 页面找到。


### lnav: 如何使用（基础）


简单的命令语法是：



```
lnav [options] [logfile1 logfile2 …]

```

如果你直接运行 `lnav` 命令，它会显示你系统中的所有日志（`/var/log/messages` 和 `/var/log/syslog`)



```
lnav

```

要查看任何特定的日志文件，在命令行中输入：



```
lnav /var/log/syslog

```

使用 `-t` 参数在你的日志输出中添加时间戳：



```
lnav -t /var/log/syslog

```

以下是 `lnav` 的一些关键开关：


* `-d file`：将调试信息写入给定的文件。
* `-a`：加载所有最新的日志文件类型。
* `-r`：也加载较早的轮转的日志文件。
* `-t`：在标准输入中读入的数据行上预加时间戳。
* `-w file`：将标准输入的内容写入该文件。
* `-c cmd`：在文件加载后执行命令。
* `-f path`：执行给定文件中的命令。
* `-n`：不使用 curses UI 运行（无头模式）。


![lnav 在 Ubuntu 22.04 中运行](/images/p/202301/18/101718zmm5m02zat7momr0.jpg)


要进一步阅读和探索，请访问 [官方文档](https://docs.lnav.org/en/latest/intro.html)。




---


via: <https://www.debugpoint.com/advanced-log-file-viewer-lnav-ubuntu-linux/>


作者：[Arindam](https://www.debugpoint.com/author/admin1/) 选题：[lkxed](https://github.com/lkxed) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)


本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出