less 命令是一个功能强大的文件查看工具,它支持分页显示文本文件内容,允许向前和向后浏览文件。与 more 命令相比,less 提供了更多的功能和更好的用户体验,是Linux系统中最常用的文件查看工具之一。
less [选项] 文件名
从管道读取:
命令 | less [选项]
| 快捷键 | 功能 |
|---|---|
/模式 |
向前搜索指定模式 |
?模式 |
向后搜索指定模式 |
n |
重复上一次搜索(相同方向) |
N |
重复上一次搜索(相反方向) |
& 模式 |
只显示包含模式的行 |
# 查看文件
less filename.txt
# 查看并显示行号
less -N filename.txt
# 查看文件,启动后立即搜索
less +/error logfile.txt
# 查看命令输出
ls -la | less
# 查看进程信息
ps aux | less
# 查看日志文件(带颜色)
grep --color=always "ERROR" app.log | less -R
# 查看大文件的开头
head -n 100 largefile.txt | less
# 显示行号且不换行
less -NS filename.txt
# 忽略搜索大小写
less -i logfile.txt
# 查看短文件时自动退出
less -F shortfile.txt
# 退出时不清屏
less -X filename.txt
# 查看系统日志
less /var/log/syslog
# 查看应用日志,搜索错误信息
less +/ERROR /var/log/app.log
# 实时监控日志(结合tail)
tail -f /var/log/nginx/access.log | less
# 在日志中导航:
# 1. 使用 /error 搜索错误
# 2. 使用 n 查找下一个
# 3. 使用 G 跳到底部查看最新日志
# 4. 使用 g 跳回顶部
# 查看源代码文件
less -N source_code.py
# 查看Git差异
git diff | less -R
# 查看文件,搜索特定函数
less +/function_name *.c
# 在代码中导航:
# 1. 使用行号快速跳转 (50g 跳转到第50行)
# 2. 搜索函数定义 (/def function_name)
# 3. 使用 -S 选项防止代码换行
# 4. 标记重要位置 (ma 标记为a, 'a 跳转到标记a)
# 查看系统配置文件
less /etc/nginx/nginx.conf
# 查看多个配置文件
less /etc/passwd /etc/group
# 在配置文件间切换:
# 使用 :n 查看下一个文件
# 使用 :p 查看上一个文件
# 使用 :e filename 打开新文件
# 搜索配置项
less +/server /etc/nginx/nginx.conf
# 分析磁盘使用情况
df -h | less
# 查看系统进程
ps aux --sort=-%cpu | less
# 查看网络连接
netstat -tulpn | less
# 查看历史命令
history | less
# 在命令输出中:
# 使用 / 搜索特定进程或模式
# 使用 & 过滤显示特定内容
# 使用 -S 防止长行换行
# 在less中使用标记:
# ma - 在当前行设置标记a
# 'a - 跳转到标记a
# '' - 回到上一次跳转前的位置
# 示例:在代码中标记重要位置
less source_file.java
# 导航到重要方法,按 ma 设置标记
# 浏览其他部分后,按 'a 快速返回
# 同时打开多个文件
less file1.txt file2.txt file3.txt
# 文件间导航命令:
:e filename # 打开新文件
:n # 下一个文件
:p # 上一个文件
:x # 第一个文件
:d # 从列表中删除当前文件
# 只显示包含特定模式的行
# 在less中按 & 然后输入模式
# 示例:在日志中只显示错误
less app.log
# 按 & 输入 ERROR
# 只显示包含 ERROR 的行
# 清除过滤,按 & 然后回车
# 在 ~/.bashrc 或 ~/.lesskey 中设置环境变量
export LESS='-i -N -S -R -M'
# 常用环境变量设置:
# LESS=-i # 搜索时忽略大小写
# LESS=-R # 显示颜色
# LESS=-M # 显示更多提示
# LESS=-X # 退出时不清屏
# 或者使用LESS环境变量组合
export LESS='-i -R -M --shift 5'
#!/bin/bash
# 创建交互式查看菜单
show_file() {
local file=$1
if [ -f "$file" ]; then
less -N "$file"
else
echo "文件不存在: $file"
fi
}
# 使用示例
echo "选择要查看的文件:"
echo "1) 系统日志"
echo "2) 应用配置"
echo "3) 当前目录文件列表"
read -p "输入选择 (1-3): " choice
case $choice in
1) show_file "/var/log/syslog" ;;
2) show_file "/etc/nginx/nginx.conf" ;;
3) ls -la | less ;;
*) echo "无效选择" ;;
esac
| 功能 | less | more |
|---|---|---|
| 向后滚动 | 支持 | 不支持 |
| 搜索功能 | 双向搜索 | 只支持向前搜索 |
| 跳转到文件头/尾 | 支持 | 不支持跳转到文件头 |
| 标记位置 | 支持 | 不支持 |
| 多文件操作 | 支持 | 有限支持 |
| 退出后清屏 | 可选 | 总是清屏 |
结论: 在大多数情况下,less 是比 more 更好的选择,因为它提供了更多的功能和更好的用户体验。
less -S 查看宽表格或代码,防止换行LESS 环境变量来自定义默认行为less -R 查看带颜色的命令输出-i 选项忽略大小写v 键可以在当前文件位置启动编辑器h 键可以查看所有可用命令的帮助-X 选项-S 选项可以提高性能~/.lesskey 和 ~/.lesslesspipe 或 lessfile 扩展对压缩文件的支持