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
英文地址,請注明出處:http://en.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。 核心服務 設計與制…