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

    如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈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…