Linux云計算基礎篇(8)

VIM 高級特性

插入模式
  • i 進入插入模式。
  • o 在當前行下方插入空行并進入插入模式。
  • O 在當前行上方插入空行并進入插入模式。
命令模式
  • :set nu 顯示行號。
  • :set nonu 取消顯示行號。
  • :100 光標跳轉到第 100 行。
  • G 光標跳轉到文件最后一行。
  • gg 光標跳轉到文件第一行。
  • 30G 跳轉到第 30 行。
  • dd 刪除(剪切)當前行。
  • Ndd 剪切當前行及下方 N-1 行(如 5dd 剪切 5 行)。
  • cc 替換當前行并進入插入模式。
  • d^ 刪除當前光標至行首的所有字符。
  • d$ 刪除當前光標至行尾的所有字符。
  • dw 刪除當前光標至當前單詞末尾的所有字符。
  • P(大寫)在光標前粘貼剪切板內容。
  • p(小寫)在光標后粘貼剪切板內容。
  • u 撤銷上一次操作。
  • yy 復制當前行。
  • Nyy 復制當前行及下方 N-1 行(如 3yy 復制 3 行)。
  • :set ignorecase:set ic 忽略大小寫。
  • :%s/no/yes/g 全局替換文件中的 noyes% 表示整個文件,g 表示全局替換)。
文件查找
  • /word 從當前光標向下查找 word
  • ?word 從當前光標向上查找 word
  • n 跳轉至下一個匹配項。
  • N 跳轉至上一個匹配項。
  • u 撤銷最近一次操作(多次按 u 可撤銷多步)。
  • U 撤銷當前行的所有修改。
  • Ctrl-r 恢復最后一次撤銷。
  • . 重復上一次操作。

文本處理工具

cat 命令

說明:用于查看文件內容,合并文件或創建新文件。
使用規則
cat [選項] [文件名]
常見選項:

  • -n:顯示行號
  • -b:顯示非空行行號
  • -s:壓縮連續空行
    示例:
    cat file.txt 顯示文件內容
    cat file1.txt file2.txt > merged.txt 合并文件

less 命令

說明:分頁查看文件內容,支持上下滾動和搜索。
使用規則
less [選項] [文件名]
常見操作:

  • 空格:向下翻頁
  • b:向上翻頁
  • /關鍵詞:搜索內容
  • q:退出
    示例:
    less large_file.log 分頁查看大文件

more 命令

說明:與 less 類似,但功能更簡單,僅支持向下翻頁。
使用規則
more [選項] [文件名]
常見操作:

  • 空格:向下翻頁
  • Enter:向下逐行滾動
  • q:退出
    示例:
    more long_text.txt 逐頁查看文件

nl 命令

說明:顯示文件內容并添加行號。
使用規則
nl [選項] [文件名]
常見選項:

  • -b a:為所有行編號(包括空行)
  • -b t:僅非空行編號(默認)
    示例:
    nl script.sh 顯示文件并標注行號

綜合對比

  • cat:適合快速查看小文件或合并文件。
  • less/more:適合查看大文件,less 功能更豐富。
  • nl:需顯示行號時使用,類似 cat -n 但更靈活。

注意:所有命令均支持輸入重定向(如 cat < file.txt)和管道操作(如 ls | less)。

tail 命令簡介

tail 是 Linux/Unix 系統中常用的命令行工具,用于顯示文件的末尾內容。默認顯示文件的最后 10 行,適合查看日志文件或實時監控文件更新。


基本語法

tail [選項] [文件]


常用選項

-n <行數>--lines=<行數>
指定顯示文件的末尾行數。例如顯示最后 20 行:

tail -n 20 filename

-f--follow
實時跟蹤文件變化,常用于監控日志文件。按 Ctrl+C 退出:

tail -f filename

-q--quiet
不顯示文件名標題(多文件時默認顯示文件名)。

tail -q file1 file2

-v--verbose
始終顯示文件名標題(默認多文件時生效)。

tail -v filename

-c <字節數>--bytes=<字節數>
顯示文件的末尾字節數。例如顯示最后 100 字節:

tail -c 100 filename


使用示例

顯示文件最后 10 行(默認)

tail filename

顯示文件最后 5 行

tail -n 5 filename

實時監控日志文件

tail -f /var/log/syslog

顯示多個文件的末尾內容

tail file1 file2

從第 100 行開始顯示到文件末尾

tail -n +100 filename


高級用法

結合管道與其他命令
tail 輸出傳遞給其他工具(如 grep)過濾內容:

tail -f /var/log/nginx/access.log | grep "404"cat  /etc/vsftpd/vsftpd.conf  |grep -v ^# |grep -v ^$grep  -v  ^$   表示過濾空行

反向顯示文件內容(需結合 tac
tail 本身不提供反向顯示功能,但可通過以下方式實現:

tac filename | head -n 10
?查看日志分析方法

    tail -f /var/log/nginx/access.log | grep -A3  -B3  -E '(err|warn)'
    
    • -E?啟用擴展正則表達式,匹配模式?(err|warn)?表示查找包含?err?或?warn?的行。
    • -A3?顯示匹配行及其后 3 行(After)
    • -B3?顯示匹配行及其前 3 行(Before)

    注意事項

    • 若文件不存在或無權限訪問,會報錯提示。
    • -f 模式下,文件被刪除后需重新跟蹤(可用 --follow=name 保持跟蹤)。
    • 大文件處理時建議結合 -n 限制行數以避免性能問題。

    grep 定義

    grep(Global Regular Expression Print)是 Unix/Linux 系統中的命令行工具,用于在文件或標準輸入中搜索匹配指定模式(正則表達式或固定字符串)的行,并將匹配的行輸出。


    grep 常用選項

    grep 的選項分為以下幾類:

    搜索模式控制
    • -i:忽略大小寫(case-insensitive)。
    • -v:反向匹配,輸出不包含模式的行。
    • -w:僅匹配完整單詞(word-regexp)。
    • -x:僅匹配整行(line-regexp)。
    輸出控制
    • -c:統計匹配的行數而非輸出內容。
    • -n:顯示匹配行及其行號。
    • -l:僅輸出包含匹配的文件名(不輸出具體行)。
    • -L:輸出未包含匹配的文件名。
    • -o:僅輸出匹配的部分(而非整行)。
    • -q:靜默模式(不輸出結果,用于腳本判斷)。
    文件處理
    • -r-R:遞歸搜索目錄中的文件。
    • --include:指定搜索的文件擴展名(如 --include="*.txt")。
    • --exclude:排除特定文件(如 --exclude="*.log")。
    正則表達式類型
    • -E:啟用擴展正則表達式(等效于 egrep)。
    • -F:禁用正則表達式,僅匹配固定字符串(等效于 fgrep)。
    • -P:啟用 Perl 兼容正則表達式(需支持 PCRE)。

    參數說明

    • 模式:搜索的正則表達式或固定字符串。
    • 文件:目標文件或目錄(可省略,默認從標準輸入讀取)。

    使用規則與示例

    基礎搜索
    grep "error" log.txt      # 在 log.txt 中搜索 "error"  
    grep -i "warning" file    # 忽略大小寫搜索 "warning"  cat? /etc/vsftpd/vsftpd.conf |grep -v '#'? ?反向選擇非#號的內容。
    cat  /etc/vsftpd/vsftpd.conf |grep  ^#      過濾以#號開頭的內容
    cat  /etc/vsftpd/vsftpd.conf |grep  ^#  |grep -i yes$     過濾以#號開頭的內容,顯示yes結尾的。

    遞歸搜索目錄
    grep -r "pattern" /path/to/dir  # 遞歸搜索目錄中的所有文件  
    

    正則表達式匹配
    grep -E "[0-9]{3}-[0-9]{4}" contacts.txt  # 匹配電話號碼格式  
    grep -P "\d+" data.txt                    # 使用 Perl 正則匹配數字  
    

    多文件處理
    grep "text" *.log              # 搜索當前目錄下所有 .log 文件  
    grep -l "success" *.txt        # 僅列出包含 "success" 的文件名  cat  /etc/passwd  |grep  -i  /bin/bash$  |grep  -v  ^roo |cut -d: -f 1 > userlist.txt
    grep -v ^roo
    排除以 roo 開頭的用戶行(-v 反向匹配,^ 匹配行首),主要避免包含 root 或類似特權用戶。cut -d: -f 1
    按冒號(:)分隔每行內容(-d:),提取第一個字段(-f 1),即用戶名。> userlist.txt
    將最終結果(符合條件的用戶名列表)重定向輸出到文件 userlist.txt。典型輸出示例
    

    管道結合
    cat log.txt | grep "error"     # 從管道輸入中搜索  
    ps aux | grep "nginx"          # 過濾進程列表  
    

    排除與包含文件
    grep -r --include="*.py" "import" /code  # 僅搜索 .py 文件  
    grep -r --exclude="*.tmp" "data" /var    # 排除 .tmp 文件  
    


    注意事項

    1. 正則表達式需根據 -E-P 選項調整語法(如 +| 需擴展模式支持)。
    2. 特殊字符(如 $*)需用單引號或反斜杠轉義(如 grep '\$' file)。
    3. 遞歸搜索時避免系統目錄(如 /proc),可能引發權限問題。

    本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
    如若轉載,請注明出處:http://www.pswp.cn/bicheng/87627.shtml
    繁體地址,請注明出處:http://hk.pswp.cn/bicheng/87627.shtml
    英文地址,請注明出處:http://en.pswp.cn/bicheng/87627.shtml

    如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

    相關文章

    Linux進程單例模式運行

    Linux進程單例模式運行 #include <iostream> #include <stdlib.h> #include <unistd.h> #include <string.h> #include <stdio.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h>int write_pid(const cha…

    【Web 后端】部署服務到服務器

    文章目錄 前言一、如何啟動服務二、掛載和開機啟動服務1. 配置systemctl 服務2. 創建server用戶3. 啟動服務 總結 前言 如果你的后端服務寫好了如果部署到你的服務器呢&#xff0c;本次通過fastapi寫的服務實例&#xff0c;示范如何部署到服務器&#xff0c;并做服務管理。 一…

    國產MCU學習Day5——CW32F030C8T6:窗口看門狗功能全解析

    每日更新教程&#xff0c;評論區答疑解惑&#xff0c;小白也能變大神&#xff01;" 目錄 一.窗口看門狗&#xff08;WWDG&#xff09;簡介 二.窗口看門狗寄存器列表 三.窗口看門狗復位案例 一.窗口看門狗&#xff08;WWDG&#xff09;簡介 CW32F030C8T6 內部集成窗口看…

    2025年文件加密軟件分享:守護數字世界的核心防線

    在數字化時代&#xff0c;數據已成為個人與企業的寶貴資產&#xff0c;文件加密軟件通過復雜的算法&#xff0c;確保信息在存儲、傳輸與共享過程中的保密性、完整性與可用性。一、文件加密軟件的核心原理文件加密軟件算法以其高效性與安全性廣泛應用&#xff0c;通過對文件數據…

    node.js下載教程

    1.項目環境文檔 語雀 2.nvm安裝教程與nvm常見命令,超詳細!-阿里云開發者社區 C:\Windows\System32>nvm -v 1.2.2 C:\Windows\System32>nvm list available Error retrieving "http://npm.taobao.org/mirrors/node/index.json": HTTP Status 404 C:\Window…

    (AI如何解決問題)在一個項目,跳轉到外部html頁面,頁面布局

    問題描述目前&#xff0c;ERP后臺有很多跳轉外部鏈接的地方&#xff0c;會直接打開一個tab顯示。因為有些頁面是適配手機屏幕顯示&#xff0c;放在瀏覽器會超級大。不美觀&#xff0c;因此提出優化。修改前&#xff1a;修改后&#xff1a;思考過程1、先看下代碼&#xff1a;log…

    網絡通信協議與虛擬網絡技術相關整理(上)

    #作者&#xff1a;程宏斌 文章目錄 tcp協議udp協議arp協議icmp協議dhcp協議BGP協議OSPF協議BGP vs OSPF 對比表VLAN&#xff08;Virtual LAN&#xff09;VXLAN&#xff08;Virtual Extensible LAN&#xff09;IPIP&#xff08;IP-in-IP&#xff09;vxlan/vlan/ipip網橋/veth網…

    物聯網軟件層面的核心技術體系

    物聯網軟件層面的核心技術體系 物聯網(IoT)軟件技術棧是一個多層次的復雜體系&#xff0c;涵蓋從設備端到云平臺的完整解決方案。以下是物聯網軟件層面的關鍵技術分類及詳細說明&#xff1a; 一、設備端軟件技術 1. 嵌入式操作系統 實時操作系統(RTOS)&#xff1a; FreeRTO…

    GreatSQL通過偽裝從庫回放Binlog文件

    GreatSQL通過偽裝從庫回放Binlog文件 一、適用場景說明 1、主庫誤操作恢復 利用 Binlog 在其他實例解析、回放&#xff0c;根據gtid只回放到指定位點。 2、網絡隔離環境同步 備份恢復后可以拉去主庫Binlog文件至新實例同步增量數據。 3、備份恢復遇到Binlog文件過大處理 恢復實…

    MVC 架構設計模式

    在現代軟件開發中&#xff0c;架構設計決定了一個項目的可維護性與可擴展性。MVC&#xff08;Model-View-Controller&#xff09;作為經典的分層設計模式&#xff0c;廣泛應用于 Web 系統、前端應用乃至移動端開發中。本文不僅介紹 MVC 的核心思想和機制&#xff0c;還將結合具…

    (18)python+playwright自動化測試鼠標拖拽-上

    1.簡介 本文主要介紹兩個在測試過程中可能會用到的功能&#xff1a;在selenium中介紹了Actions類中的拖拽操作和Actions類中的劃取字段操作。例如&#xff1a;需要在一堆log字符中隨機劃取一段文字&#xff0c;然后右鍵選擇摘取功能。playwright同樣可以實現元素的拖拽和釋放的…

    Android 網絡全棧攻略(四)—— TCPIP 協議族與 HTTPS 協議

    Android 網絡全棧攻略系列文章&#xff1a; Android 網絡全棧攻略&#xff08;一&#xff09;—— HTTP 協議基礎 Android 網絡全棧攻略&#xff08;二&#xff09;—— 編碼、加密、哈希、序列化與字符集 Android 網絡全棧攻略&#xff08;三&#xff09;—— 登錄與授權 Andr…

    Python爬蟲實戰:從零構建完整項目(數據采集+存儲+異常處理)

    Python爬蟲實戰&#xff1a;從零構建完整項目&#xff08;數據采集存儲異常處理&#xff09; 爬蟲不是簡單的請求解析&#xff0c;而是一個系統工程。本文將帶你體驗企業級爬蟲開發的核心流程。 一、前言&#xff1a;為什么需要完整的爬蟲項目&#xff1f; 作為初學者&#xf…

    大數據時代UI前端的用戶體驗設計新思維:以用戶為中心的數據可視化

    hello寶子們...我們是艾斯視覺擅長ui設計、前端開發、數字孿生、大數據、三維建模、三維動畫10年經驗!希望我的分享能幫助到您!如需幫助可以評論關注私信我們一起探討!致敬感謝感恩!一、引言&#xff1a;大數據重構用戶體驗設計的底層邏輯在數據爆炸式增長的今天&#xff0c;用…

    FreeRTOS 中任務控制塊(Task Control Block,TCB)用于管理和描述任務的核心數據結構

    在 FreeRTOS 中&#xff0c;任務控制塊&#xff08;Task Control Block&#xff0c;TCB&#xff09;是用于管理和描述任務的核心數據結構。每個任務都有一個對應的 TCB&#xff0c;它包含了任務的所有相關信息。 TCB 的主要功能 存儲任務狀態信息&#xff1a;TCB 中包含了任務…

    前端-HTML-day1

    目錄 1、標簽語法 2、HTML基本骨架 3、標簽的關系 4、注釋 5、標題標簽 6、段落標簽 7、換行和水平線標簽 8、文本格式化標簽 9、圖像標簽-基本使用 10、圖像標簽-屬性 11、相對路徑 12、絕對路徑 13、超鏈接 14、音頻 15、視頻 16、綜合案例1--個人簡介 17、…

    OpenCV篇——項目(二)OCR文檔掃描

    目錄 文檔掃描項目說明 前言 文檔掃描代碼總體演示 OCR文檔識別代碼總體演示: ?編輯 代碼功能詳解 1. 預處理階段 2. 邊緣檢測 3. 輪廓處理 4. 透視變換 5. 后處理 主要改進說明&#xff1a; 使用建議&#xff1a; 文檔掃描項目說明 前言 本項目實現了一個自動…

    Java 中導出包含多個 Sheet 的 Excel 文件

    在 Java 中導出包含多個 Sheet 的 Excel 文件&#xff0c;可以使用 Apache POI 或 EasyExcel&#xff08;阿里開源庫&#xff09;。以下是兩種方法的詳細實現&#xff1a; 方法 1&#xff1a;使用 Apache POI&#xff08;支持 .xls 和 .xlsx&#xff09; 1. 添加 Maven 依賴 …

    OneCode采用虛擬DOM結構實現服務端渲染的技術實踐

    一、技術背景與挑戰 隨著企業級應用復雜度的提升&#xff0c;傳統服務端渲染(SSR)面臨頁面交互性不足的問題&#xff0c;而純前端SPA架構則存在首屏加載慢和SEO不友好的缺陷。OneCode框架創新性地將虛擬DOM技術引入服務端渲染流程&#xff0c;構建了一套兼顧性能與開發效率的企…

    變幻莫測:CoreData 中 Transformable 類型面面俱到(八)

    概述 各位似禿似不禿小碼農們都知道&#xff0c;在蘋果眾多開發平臺中 CoreData 無疑是那個最簡潔、擁有“官方認證”且最具兼容性的數據庫框架。使用它可以讓我們非常方便的搭建出 App 所需要的持久存儲體系。 不過&#xff0c;大家是否知道在 CoreData 中還存在一個 Transfo…