linux命令less的实际应用

less 是 Linux/Unix 中交互式文件查看神器,相比 morecat,它支持自由导航、搜索、高亮等强大功能,尤其适合处理大文件或实时日志。以下是深度应用指南:


一、核心优势

less large_file.log         # 秒开GB级文件(不加载整个文件到内存)
tail -f log.txt | less      # 结合管道实时查看动态日志(比 tail -f 更强)

二、高效导航操作

快捷键功能描述使用场景示例
Space / f向下翻一页快速浏览长文件
b向上翻一页回看错过的内容
g跳到文件首行回到开头重新查看
G跳到文件末尾直接查看最新日志
10g跳转到第 10 行精确定位代码位置
50%跳转到文件的 50% 位置快速定位文件中部

三、交互式搜索(媲美编辑器)​

less access.log
  1. 向前搜索

    • 键入 / + 关键词 (如 /404) → 按 Enter 跳转到下一个匹配项
    • n:跳转到下一个匹配
    • N:跳转到上一个匹配
  2. 向后搜索

    • 键入 ? + 关键词 (如 ?error) → 逆向搜索
    • n / N 方向与 / 相反
  3. 高亮显示所有匹配
    less 中先键入 -,再输入 -i -p"keyword"

    less -i -p"ERROR" system.log  # 启动时即高亮忽略大小写的 "ERROR"

四、高级技巧

  1. 实时追踪文件变化(日志监控)​

    less +F /var/log/syslog     # 进入实时追踪模式(类似 tail -f)
    • Ctrl+C​ 退出追踪模式,回到普通导航
    • F​ 重新进入追踪模式
  2. 多文件同时操作

    less file1.log file2.log    # 打开多个文件
    • :n 切换到下一个文件
    • :p 切换到上一个文件
  3. 标记位置 & 快速返回

    • 在某个位置按 m + 字母 (如 ma) → 标记为 a
    • 随时按 ' + 字母 (如 'a) → ​精准跳回标记位置
  4. 可视化特殊字符

    less -R -U data.bin        # -R 保留颜色 -U 显示控制字符(如换行符 ^M)

五、组合 grep 实现超级搜索

grep -n "error" server.log | less  # 高亮错误行并显示行号,用 less 自由导航
grep -A5 -B5 "crash" app.log | less -p crash  # 显示 crash 前后 5 行并高亮关键词

六、环境配置(持久化优化)​

~/.bashrc 添加:

export LESS='-i -N -w -z-4 -g -e -M -X -F -R -P%t?f%f :stdin .?pb%pb\%:..%lt'  
  • ​-i​:搜索时忽略大小写
  • ​-R​:保留 ANSI 颜色代码
  • ​-F​:自动退出小于一屏的文件
  • ​-X​:禁用清屏(保留 less 退出后的内容)

七、典型工作流示例

场景:分析 Nginx 访问日志中的异常请求

# 1. 筛选含 500 错误的请求,高亮关键词
grep ' 500 ' access.log | less -p " 500 "# 2. 在 less 中操作:
#   按 /bot 搜索爬虫请求 → 用 n 遍历结果
#   按 ma 标记可疑行 → 用 G 跳到末尾 → 按 'a 返回标记点
#   按 -i 打开忽略大小写 → 再按 /attack 搜索攻击行为# 3. 导出关键行到文件
在 less 中按 v 用 vim 编辑当前内容 → 保存退出后返回 less

八、你不知道的冷知识

less -S data.csv       # -S 禁用自动换行(查看宽表数据不换行)
less -j5 error.log     # 在第 5 行显示**搜索高亮锚点**(方便上下文定位)
ps aux | less          # 结合进程监控(冻结当前进程列表)

效率提示:​

  • &keyword 在 ​当前匹配中二次筛选​(如先查 /error,再输入 &timeout 筛选含 timeout 的错误)
  • ! + 命令(如 !tail -n 20)​临时执行 shell 命令不退出 less
  • s 保存当前内容到文件

掌握这些技巧后,less 将成为你浏览代码、日志分析和数据处理的核心工具!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/91237.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/91237.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

DAY31 整数矩阵及其运算

DAY31 整数矩阵及其运算 本次代码通过IntMatrix类封装了二维整数矩阵的核心操作,思路如下:数据封装→基础操作(修改和获取元素、获取维度,toString返回字符串表示,getData返回内部数组引用)→矩阵运算&…

飞桨深度学习环境搭建

一、安装 PyCharm PyCharm 官网下载页面 记得全部勾选。 二、安装 miniconda miniconda 官网下载页面 根据你的操作系统选择。 记得勾选前三个。 三、安装 CUDA 首先 nvidia-smi 查看支持最高的 CUDA 版本。 然后去 nvidia 官网下载 CUDA,选择适合你的版本。 …

MySQL 8.0 OCP 1Z0-908 题目解析(37)

题目146 Choose two. Which two are true about binary logs used in asynchronous replication? □ A) The master connects to the slave and initiates log transfer. □ B) They contain events that describe all queries run on the master. □ C) They contain events …

vue element 封装表单

背景: 在前端系统开发中,系统页面涉及到的表单组件比较多,所以进行了简单的封装。封装的包括一些Form表单组件,如下:input输入框、select下拉框、等 实现效果: 理论知识: 表单组件官方链接&…

flutter-完美解决键盘弹出遮挡输入框的问题

文章目录1. 前言2. 借助 Scaffold 的特性自动调整3. 使用 MediaQuery 精准控制抬升高度3.1. 底部抽屉内输入框的方案4. 注意事项5. 总结1. 前言 在 Flutter 的开发过程中,经常会碰到某一个页面有个 TextField 输入组件,点击的时候键盘会弹起来&#xff…

机器学习笔记(四)——聚类算法KNN、Kmeans、Dbscan

写在前面:写本系列(自用)的目的是回顾已经学过的知识、记录新学习的知识或是记录心得理解,方便自己以后快速复习,减少遗忘。概念部分大部分来自于机器学习菜鸟教程,公式部分也会参考机器学习书籍、阿里云天池。机器学习如果只啃概…

【C#】事务(进程 ID 64)与另一个进程被死锁在锁资源上,并且已被选作死锁牺牲品。请重新运行该事务。不能在具有唯一索引“XXX_Index”的对象“dbo.Test”中插入重复键的行。

🌹欢迎来到《小5讲堂》🌹 🌹这是《C#》系列文章,每篇文章将以博主理解的角度展开讲解。🌹 🌹温馨提示:博主能力有限,理解水平有限,若有不对之处望指正!&#…

LeetCode Hot 100 搜索二维矩阵

给你一个满足下述两条属性的 m x n 整数矩阵:每行中的整数从左到右按非严格递增顺序排列。每行的第一个整数大于前一行的最后一个整数。给你一个整数 target ,如果 target 在矩阵中,返回 true ;否则,返回 false 。示例…

python毕设高分案例:基于机器学习的抑郁症数据分析与预测系统,flask框架,算法包括XGboost模型、梯度提升树模型等

1 绪论 1.1 课题研究背景和意义 1.1.1 研究背景 在医疗行业不断发展的当下,数据量呈现出爆炸式增长,医学数据的复杂性和多样性也达到了前所未有的程度。电子病历系统记录了患者丰富的诊疗信息,医学影像技术如 CT、MRI 等生成海量的图像数据…

STM32与ADS1256多通道数据采样原理及控制程序

好的,使用 STM32 与 ADS1256 通信读取多通道电压是精密数据采集的常见方案。ADS1256 是一款高精度、24 位、8 通道(或差分 4 通道)的 ΔΣ ADC,非常适合需要高分辨率的应用(如传感器信号、医疗仪器等)。 以下是对整个过程的详细分析及基于 STM32 HAL 库的程序示例: 核…

Spring Boot 3.5.x 使用 SpringDoc 2 / Swagger3

这篇文章资料来自于网络,对部分知识整理,这里只是记录一下,仅供参考 为什么要用 Swagger Swagger 的核心思想是通过定义和描述 API 的规范、结构和交互方式,以提高 API 的可读性、可靠性和易用性,同时降低 API 开发的难…

@RefreshScope 核心原理深度解析:Spring Boot 的动态魔法

让我们通过全新的原理图解和代码级分析,揭开RefreshScope实现配置热更新的神秘面纱!一、工作原理全景图(优化版) #mermaid-svg-50lhLlOFeSRIWnLn {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px…

万字详解——OSI七层模型:网络通信的完整架构解析

OSI七层模型:网络通信的完整架构解析OSI(Open Systems Interconnection)七层模型是计算机网络领域最基础、最权威的参考框架。它由国际标准化组织(ISO)于1984年提出,旨在为不同厂商、不同技术的网络设备和系…

一个人开发一个App(OpenApi)

为了少写代码,统一前后端的网络层,我使用了OpenApi设计restful接口。然后用openapi-generator来生成flutter的代码。生成go代码用的是oapi-codegen,它对go更友好一些。 我们直接在api.yml中设计接口,所有的返回值与请求者都提取到components里…

光伏气象监测系统:助力光伏发电的智慧大脑

光伏气象监测系统:助力光伏发电的智慧大脑 柏峰【BF-GFQX】在全球积极推动能源转型、大力倡导 “双碳” 目标的当下,光伏发电凭借其清洁、可再生的显著优势,宛如一颗冉冉升起的新星,在能源领域迅速崭露头角,得以广泛推…

SpringCloud01——项目演变、微服务远程调用三种方式、springcloud介绍、nacos注册中心

目录 一、项目架构演变过程 1、单体应用架构 2、垂直应用架构 3、分布式服务架构 4、流动计算架构(SOA架构) 5、微服务架构 二、如何实现微服务远程调用 1、HttpClient工具类(springboot中) 形式1:调用第三方…

Oracle 和 MySQL 中的日期类型比较

Oracle 和 MySQL 都提供了多种日期和时间数据类型,但它们在实现和功能上有一些差异。以下是两者的主要日期类型对比:Oracle 日期类型DATE存储日期和时间(精确到秒)格式:YYYY-MM-DD HH24:MI:SS示例:TO_DATE(…

基于 Redis 实现共享 Session 登录的多种方法与实践

全文目录:开篇语**前言****1. 什么是共享 Session 登录?****2. 基于 Redis 实现共享 Session 的基本方法****2.1 通过 Redis 存储 Session 数据****2.1.1 基本流程****2.1.2 示例代码(Java Spring Boot Redis)****3. 使用 Redis…

spring cloud + easyRules 零基础搭建智能规则引擎

你是否曾想过在项目中嵌入一套轻量级且高度可扩展的规则引擎,轻松实现动态化的业务决策?在金融、电商、政务等领域,风险控制是业务安全的核心。传统硬编码方式很难应对复杂多变的风控需求,而规则引擎允许我们将这些规则独立出来&a…

AI应用:电路板设计

Diode Computers 公司 Diode Computers是一家专注于利用AI技术进行定制电路板设计和制造的公司,提供从概念到量产的全流程服务。其核心优势在于将电路板设计转化为AI可理解的代码形式,大幅提升设计效率并降低传统EDA工具的使用门槛 0。 核心服务 设计与制…