Linux系统之less 命令详解

一、命令概述

less 是一款功能强大的文本分页查看工具,类似于 more,但支持向前/向后滚动、快速定位,且无需读取整个文件即可启动,适合查看大型文件。它兼容多种终端,命令语法融合了 morevi 的特点,支持通过数字前缀(N)指定操作次数,灵活性极高。

二、基本语法
# 帮助与版本
less -?                # 显示帮助信息(同 h 命令)
less --help            # 显示帮助信息
less -V                # 显示版本信息
less --version         # 显示版本信息

# 主要使用格式
less [选项] [文件名...]
# 选项可包含短选项(如 -e、-f)或长选项(如 --quit-at-eof、--force),支持混合使用
三、核心功能
  1. 双向滚动:可向前(下)、向后(上)滚动文件内容,支持按页、按行、按比例滚动。
  2. 快速启动:无需加载整个文件,适合 GB 级大文件。
  3. 搜索与过滤:支持正则表达式搜索,可高亮匹配结果,过滤显示特定行。
  4. 多文件浏览:可同时打开多个文件,快速切换并保持标记位置。
  5. 终端兼容:通过 termcapterminfo 适配多数终端,包括硬拷贝终端。
四、常用命令详解(交互时使用)

less 中输入的命令可带数字前缀 N(默认 1),表示执行 N 次操作。

1. 滚动命令
命令功能描述示例
SPACE / f / ^F向前滚动 N 页(默认 1 页)5f 向前滚动 5 页
b / ^B向后滚动 N 页(默认 1 页)3b 向后滚动 3 页
ENTER / j向前滚动 N 行(默认 1 行)10j 向前滚动 10 行
k / ^Y向后滚动 N 行(默认 1 行)5k 向后滚动 5 行
d / ^D向前滚动 N 半页(默认 1 半页),N 会成为后续 d/u 的默认值2d 向前滚动 2 半页,后续 d 也默认滚动 2 半页
u / ^U向后滚动 N 半页(默认 1 半页),N 会成为后续 d/u 的默认值4u 向后滚动 4 半页
z向前滚动 N 行,N 会成为新的“页大小”(默认 1 页)20z 向前滚动 20 行,后续 z 默认滚动 20 行
ESC-) / RIGHTARROW向右水平滚动 N 字符(默认半屏宽度)ESC-) 向右滚动半屏,10ESC-) 向右滚动 10 字符
ESC-( / LEFTARROW向左水平滚动 N 字符(默认半屏宽度)ESC-( 向左滚动半屏
2. 跳转命令
命令功能描述示例
g / <跳转到第 N 行(默认第 1 行,文件开头)100g 跳转到第 100 行,g 跳转到文件开头
G / >跳转到第 N 行(默认最后一行,文件结尾)500G 跳转到第 500 行,G 跳转到文件结尾
p / %跳转到文件的 N% 位置(N 为 0-100,可带小数)50p 跳转到文件中间(50% 位置),33.3% 跳转到 33.3% 位置
P跳转到字节偏移量为 N 的行1024P 跳转到第 1024 字节所在行
{ / }跳转到与当前屏幕首行/末行的左/右大括号匹配的位置{ 从当前首行的左大括号跳转到匹配的右大括号
( / )跳转到与当前屏幕首行/末行的左/右括号匹配的位置) 从当前末行的右括号跳转到匹配的左括号
3. 标记与跳转
命令功能描述示例
m<字母>用小写字母标记当前位置(如 ma 标记当前位置为 amb 标记当前行为 b
'<字母>跳转到标记 <字母> 对应的位置'b 跳转到标记 b 的位置
''(两个单引号)跳转到上一次“大移动”(如 g/G/p)的位置执行 G 后,'' 跳回之前的位置
4. 搜索与过滤
命令功能描述示例
/pattern向前搜索匹配 pattern 的第 N 行(pattern 为正则表达式)/error 向前搜索“error”,3/warn 向前搜索第 3 个“warn”
?pattern向后搜索匹配 pattern 的第 N?debug 向后搜索“debug”
n重复上一次搜索(同方向)执行 /error 后,n 找下一个“error”
N重复上一次搜索(反方向)执行 /error 后,N 找上一个“error”
&pattern只显示匹配 pattern 的行(空 pattern 取消过滤)&^# 只显示以“#”开头的行(注释行),& 取消过滤
5. 文件操作
命令功能描述示例
:e [文件名]打开新文件(无文件名则重新加载当前文件):e new.txt 打开 new.txt,:e 重新加载当前文件
:n查看下一个文件(命令行指定的文件列表):n 切换到下一个文件,2:n 切换到第 2 个下一个文件
:p查看上一个文件:p 切换到上一个文件
:d从文件列表中删除当前文件:d 移除当前文件,后续 :n 不会再显示
6. 其他常用命令
命令功能描述示例
h / H显示帮助信息h 查看所有命令说明
v用编辑器打开当前文件(默认 vi,可通过 VISUAL/EDITOR 环境变量修改)v 用 vi 编辑当前文件
!command执行 shell 命令(% 代表当前文件,# 代表上一个文件)!grep error % 在当前文件中搜索“error”,!ls 执行 ls 命令
q / Q退出 lessq 退出
= / ^G显示当前文件信息(文件名、行号、百分比等)= 查看当前位置:“file.txt lines 100-200/1000 (20%)”
五、常用选项详解(命令行参数)

选项支持短格式(如 -e)和长格式(如 --quit-at-eof),长格式可缩写(如 --quit 等效 --quit-at-eof)。

1. 退出控制
选项功能描述示例
-e / --quit-at-eof第 2 次到达文件末尾时自动退出less -e log.txt 查看 log.txt,两次到末尾后退出
-E / --QUIT-AT-EOF第 1 次到达文件末尾时自动退出less -E data.txt 到末尾后立即退出
-F / --quit-if-one-screen若文件内容少于一屏,自动退出less -F short.txt 若 short.txt 内容一页可显,直接退出
2. 搜索与高亮
选项功能描述示例
-i / --ignore-case搜索时忽略大小写(若 pattern 含大写则不忽略)less -i text.txt 搜索“Hello”时匹配“hello”“HELLO”
-I / --IGNORE-CASE搜索时强制忽略大小写(即使 pattern 含大写)less -I text.txt 搜索“HELLO”时仍匹配“hello”
-g / --hilite-search只高亮上一次搜索的匹配结果(默认高亮所有匹配)less -g log.txt 搜索“error”后,只高亮当前找到的“error”
-G / --HILITE-SEARCH关闭所有搜索高亮less -G log.txt 搜索结果不高亮
3. 显示设置
选项功能描述示例
-s / --squeeze-blank-lines合并连续空行为一行less -s report.txt 连续空行显示为一行
-S / --chop-long-lines截断长行(不换行,默认换行)less -S wide.txt 长行超出屏幕部分不显示
-N / --LINE-NUMBERS显示行号less -N code.c 每行前显示行号
-n / --line-numbers不显示行号(提升大文件性能)less -n bigfile.dat 不显示行号,加快加载
-w / --hilite-unread向前翻页后,高亮第一行新内容(临时)less -w book.txt 翻页后高亮新出现的第一行
4. 文件处理
选项功能描述示例
-f / --force强制打开非普通文件(如目录、二进制文件),不显示警告less -f /dev/log 查看日志设备文件
-k <keyfile> / --lesskey-file=<keyfile>加载自定义按键绑定文件(lesskey 生成)less -k ~/.lesskey 使用自定义按键配置
-t <tag> / --tag=<tag>跳转到 tag 对应的位置(依赖 tags 文件,需 ctags 生成)less -t main code.c 直接跳转到 main 函数定义处
5. 其他实用选项
选项功能描述示例
-j <n> / --jump-target=<n>设置搜索/跳转的目标行在屏幕中的位置(n 为行号或百分比,如 -j5 目标行在第5行)less -j.3 log.txt 搜索结果显示在屏幕 30% 位置
-X / --no-init不发送终端初始化/反初始化命令(避免退出后清屏)less -X report.txt 退出后保留屏幕内容
-r / --raw-control-chars显示原始控制字符(默认用 ^A 等表示)less -r control.txt 直接显示 ^A 等控制字符
-R / --RAW-CONTROL-CHARS只显示 ANSI 颜色控制序列(保留屏幕格式)less -R color.log 正确显示带颜色的日志
六、环境变量

less 行为可通过环境变量调整,常用变量如下:

变量名功能描述示例
LESS预设 less 选项(命令行选项会覆盖此处)export LESS="-i -N" 默认开启忽略大小写和行号
LESSOPEN输入预处理器(如自动解压压缩文件)`export LESSOPEN="
LESSCLOSE输入后处理器(如清理预处理器生成的临时文件)export LESSCLOSE="lessclose.sh %s %s" 清理临时文件
VISUAL/EDITOR定义 v 命令使用的编辑器(VISUAL 优先)export VISUAL="nvim" 用 neovim 编辑文件
LESSCHARSET指定字符集(如 utf-8latin1export LESSCHARSET="utf-8" 正确显示 UTF-8 文本
七、实用示例
  1. 查看文件并显示行号

    less -N README.md
    
  2. 实时监控日志文件(类似 tail -f

    less +F /var/log/syslog  # 按 Ctrl+C 退出监控,按 F 继续
    
  3. 搜索并高亮匹配内容

    less -i /etc/passwd  # 忽略大小写搜索,输入 `/root` 查找含“root”的行
    
  4. 处理压缩文件(需 LESSOPEN 配置)

    # 假设 LESSOPEN 已配置为调用解压工具
    less data.tar.gz  # 直接查看压缩包内内容
    
  5. 多文件浏览并切换

    less file1.txt file2.txt file3.txt
    # 输入 `:n` 切换到 file2.txt,`:p` 回到 file1.txt,`:d` 删除当前文件
    
  6. 截断长行并水平滚动

    less -S wide.csv  # 长行截断,按右箭头向右滚动查看
    
  7. 只显示含特定关键词的行

    less access.log
    # 输入 `&404` 只显示含“404”的行,输入 `&` 恢复显示所有行
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值