当前位置: 首页 > news >正文

Linux 学习笔记之 VI 编辑器与文件查找技巧

在 Linux 系统操作中,VI 编辑器是文本编辑的核心工具,文件查找与过滤则是高效管理系统文件的关键技能。本章将从元字符基础、VI 编辑器的全方位使用(模式切换、命令操作、配置优化),到文件查找与过滤的实用命令,带你系统掌握这些 Linux 必备技能,适合刚接触 Linux 的开发者或需要巩固基础的运维人员。

一、元字符:Linux 命令行的 “万能匹配符”

元字符是 Linux 命令行中用于模糊匹配、多命令执行或数据传递的特殊字符,掌握它们能大幅提升命令行操作效率,常用元字符及场景如下:

元字符功能说明示例
*匹配 0 个或多个任意字符(常用于文件批量操作)ls *.txt(列出当前目录所有.txt文件)
?匹配 1 个任意字符ls test?.sh(匹配test1.shtesta.sh等,不匹配test.sh
``管道符,将前一个命令的输出作为后一个命令的输入`ls -l /etcmore(分页查看/etc` 目录下文件的详细信息)
;分隔多个命令,按顺序执行cd /home; ls -a(先切换到/home目录,再列出所有文件(含隐藏文件))

二、VI 编辑器:Linux 下的 “全能文本工具”

VI 编辑器是 Linux 系统自带的文本编辑工具,支持多种编辑模式,灵活度高,是编写脚本、配置文件的首选工具。

2.1 VI 的三种核心模式及切换

VI 的所有操作基于 “模式” 展开,三种核心模式的功能和切换逻辑是入门关键:

  • 命令模式(Command Mode):默认启动模式,用于光标移动、文本删除 / 复制等操作,无法直接输入文本。
  • 输入模式(Entry Mode):用于文本输入,需从命令模式切换进入,按Esc键返回命令模式。
  • 底行模式(Last-line Mode):用于保存文件、退出编辑器、全局查找替换等,需从命令模式输入:/?//进入,按Esc返回命令模式。

模式切换流程图

plaintext

命令模式(默认)↓ 输入i/a/o/I/A/O(6种进入方式)
输入模式(编辑文本)↓ 按Esc键
命令模式↓ 输入:/?
底行模式(执行保存/退出/替换等)↓ 按Esc键或执行命令后
命令模式

6 种进入输入模式的差异

命令功能
i在光标当前位置插入文本
a在光标当前位置插入文本
o在光标所在行下方新建一行并插入
I在光标所在行行首插入文本
A在光标所在行行尾插入文本
O在光标所在行上方新建一行并插入

2.2 VI 常用命令:从基础操作到高级编辑

(1)光标移动命令(命令模式)
命令功能
h/左箭头光标向左移动 1 个字符
j/下箭头光标向下移动 1 行
k/上箭头光标向上移动 1 行
l/右箭头光标向右移动 1 个字符
21G直接跳转到第 21 行(G单独使用跳转到文件末尾,1G跳转到文件开头)
:21底行模式下跳转到第 21 行
(2)文本删除与复制粘贴(命令模式)
命令功能
x删除光标所在位置的 1 个字符
dw删除光标所在位置的 1 个单词(从光标处到单词末尾)
3dw删除 3 个单词
dd删除光标所在行(可用于 “剪切”,配合p粘贴)
5dd删除从光标行开始的 5 行
:5,10d底行模式下删除第 5-10 行
yy(或Y复制光标所在行
3yy复制从光标行开始的 3 行
p在光标所在行下方粘贴复制 / 剪切的内容
:1,2co3底行模式下复制第 1-2 行到第 3 行下方
:4,5m6底行模式下移动第 4-5 行到第 6 行下方
(3)文本替换(命令模式)
命令功能
r替换光标所在位置的 1 个字符(输入r后直接按目标字符)
cw替换光标所在位置的 1 个单词(从光标处到单词末尾,替换后进入输入模式)
cc替换光标所在行(替换后进入输入模式)
C替换从光标处到行尾的内容(替换后进入输入模式)
:%s/旧串/新串/g底行模式下全局替换%表示全文件,g表示每行替换所有匹配项)
:5,10s/old/new/底行模式下替换第 5-10 行的第一个 “old” 为 “new”
(4)文件保存与退出(底行模式)
命令功能
:w保存当前文件(不退出)
:w newfile.txt将当前内容另存为newfile.txt
:wq(或ZZ/:x保存并退出 VI
:q!强制退出,不保存修改(适用于误编辑不想保留的情况)

2.3 VI 配置优化:打造个性化编辑环境

默认 VI 功能较基础,通过配置可实现 “显示行号”“自动缩进” 等实用功能,配置分为用户级别(仅当前用户生效)和系统级别(所有用户生效)。

(1)用户级别配置(推荐)

编辑用户家目录下的.vimrc文件(若不存在则新建):

bash

vi ~/.vimrc

添加以下配置内容(按需调整):

vim

set nu          # 显示行号
set autoindent  # 自动缩进(新行与上一行缩进一致)
set tabstop=2   # Tab键缩进2个空格(默认8个,开发场景更适配)
syntax on       # 语法高亮(编辑代码时自动识别语法并着色)
set wrap        # 自动换行(长文本不超出屏幕宽度)

配置生效:保存.vimrc后,重新打开 VI 即可生效,无需重启系统。

(2)系统级别配置(需 root 权限)

编辑系统级配置文件/etc/vim/vimrc,配置内容与用户级别一致,但需使用sudo获取权限:

bash

sudo vi /etc/vim/vimrc

注意:系统级别配置会影响所有用户,建议仅管理员操作。

2.4 VI 分屏功能:多文件同时编辑

当需要对比或同时编辑多个文件时,VI 的分屏功能非常实用,所有操作需在底行模式执行:

命令功能
:split(或:sp横向分屏(上下两个窗口,默认打开当前文件)
:vsplit(或:vs纵向分屏(左右两个窗口,默认打开当前文件)
:sp file2.txt横向分屏,新窗口打开file2.txt
:vs file3.sh纵向分屏,新窗口打开file3.sh
Ctrl + ww在多个分屏窗口间切换光标
:close关闭当前分屏窗口
:only关闭除当前窗口外的所有分屏窗口

2.5 实战:用 VI 编写 HelloWorld.html 并访问

以编写简单 HTML 文件为例,熟悉 VI 的完整使用流程:

  1. 新建并打开文件

    bash

    vi ~/HelloWorld.html  # 在用户家目录新建并打开文件
    
  2. 进入输入模式:按i键,输入 HTML 代码:

    html

    预览

    <!DOCTYPE html>
    <html>
    <head><meta charset="UTF-8"><title>Hello World</title>
    </head>
    <body><h1>Hello, Linux VI!</h1>
    </body>
    </html>
    
  3. 保存并退出:按Esc返回命令模式,输入:wq保存退出。
  4. 部署与访问:将文件移动到 Apache 的默认部署目录(需提前安装 Apache),并赋予权限:

    bash

    sudo mv ~/HelloWorld.html /var/www/html/
    sudo chmod 644 /var/www/html/HelloWorld.html  # 赋予读权限
    
  5. 浏览器访问:在浏览器输入http://云服务器公网IP/HelloWorld.html,即可看到 “Hello, Linux VI!” 页面。

常见问题:若访问 404,检查文件名大小写(Linux 区分大小写,HelloWorld.htmlhelloworld.html是两个文件);若权限不足,执行sudo chmod -R 755 /var/www/html/级联赋予目录权限。

三、文件查找与过滤:高效定位系统文件

Linux 提供findgrep等命令,分别用于 “按文件属性查找文件” 和 “按内容过滤文本”,配合管道符|可实现复杂查找需求。

3.1 find 命令:按属性查找文件

find是功能最强大的文件查找命令,支持按文件名、大小、修改时间、权限等多维度筛选,语法为:

bash

find [查找目录] [筛选条件] [执行操作]
常用筛选条件与示例
条件说明示例
-name "*.html"按文件名匹配(支持通配符,需加引号)find /var/www -name "*.html"(在/var/www目录下查找所有.html文件)
-type f/d按文件类型筛选(f为普通文件,d为目录)find ~ -type d -name "test*"(在用户家目录查找所有以test开头的目录)
-size +400k按文件大小筛选(+表示大于,-表示小于,单位支持k/M/Gfind /etc -size +1M(在/etc目录下查找大于 1MB 的文件)
-mtime +7按修改时间筛选(+7表示 7 天前修改,-7表示 7 天内修改)find ~/docs -mtime -3(查找用户docs目录下 3 天内修改过的文件)
-user root按文件所有者筛选find /tmp -user root(查找/tmp目录下所有者为 root 的文件)
结合执行操作(-exec)

find可通过-exec对查找到的文件执行后续命令(如删除、复制),语法为:

bash

find [目录] [条件] -exec [命令] {} \;  # {}代表查找到的文件,\;表示命令结束

示例:删除/home目录下 1 年未访问的普通文件:

bash

find /home -type f -atime +365 -exec rm {} \;

3.2 grep 命令:按内容过滤文本

grep用于从文本文件或命令输出中筛选包含指定字符串的行,语法为:

bash

grep [选项] "目标字符串" [文件/命令输出]
常用选项与示例
选项说明示例
-i忽略大小写grep -i "linux" test.txt(在test.txt中查找含 “linux” 或 “Linux” 的行)
-v反向筛选(显示不包含目标字符串的行)grep -v "#" /etc/profile(查看/etc/profile中不含注释(#)的行)
-n显示匹配行的行号grep -n "PATH" ~/.bashrc(查找~/.bashrc中含 “PATH” 的行并显示行号)
-r递归查找目录下所有文件grep -r "import" /home/project(在/home/project目录下递归查找含 “import” 的文件)
结合管道符使用

grep常与lsps等命令配合,筛选输出结果,示例:

  • 查看当前系统中运行的apache进程:

    bash

    ps -ef | grep apache
    
  • 统计/var/log目录下含 “error” 的日志文件行数:

    bash

    cat /var/log/*.log | grep "error" | wc -l  # wc -l用于统计行数
    

3.3 其他实用工具

  • wc 命令:统计文本行数、单词数、字符数,常用选项-l(行数)、-w(单词数)、-c(字符数):

    bash

    wc -l ~/HelloWorld.html  # 统计HTML文件的行数
    
  • xargs 命令:将find等命令的输出转换为后续命令的参数(解决find输出过多时的 “参数列表过长” 问题),示例:

    bash

    find /var/www -name "*.html" | xargs grep "title"  # 查找所有HTML文件中的“title”标签
    

四、总结

本章围绕 VI 编辑器和文件查找两大核心技能展开,重点需掌握:

  1. VI 的三种模式切换逻辑,以及光标移动、文本编辑、保存退出的常用命令;
  2. 通过.vimrc配置个性化 VI 环境,提升编辑效率;
  3. find命令按文件属性定位文件,grep命令按内容筛选文本,结合管道符实现复杂需求。

这些技能是 Linux 开发和运维的基础,建议多通过实战练习(如编写脚本、查找配置文件)加深理解,后续在部署项目、排查问题时会频繁用到。

http://www.dtcms.com/a/487298.html

相关文章:

  • 贵阳网站建设多钱钱清远专业网站制作公司
  • 网站设计对网站搜索引擎友好性的影响南宁市两学一做网站
  • 什么是部署php网站邢台城乡建设局网站
  • 搜狐三季度营收多少新开网站seo
  • 基于 clangd 搭建 Redis 6.2 源码阅读与调试环境
  • 备案主体负责人 网站负责人哪个网站做ppt好
  • C文件中在编译时候怎么把几个同名函数链接进来
  • 影视 IP 全链开发:App 如何成为核心
  • 机房网络组建方案搜索引擎优化的核心是
  • CentOS7虚拟机扩容操作指南(CentOS7虚拟机磁盘大小不够)
  • Replication(下):事务,一致性与共识
  • PIL与OpenCV图像读取的颜色格式陷阱:RGB vs BGR
  • 佳能LBP6018L黑白激光打印机打印浅淡的一点尝试性解决方法
  • 网站主页面设计哪个好jizhicms
  • x86虚拟化漏洞与硬件辅助虚拟化演进要点
  • 做奥网站营销网站建设设计
  • Cocos Creator学习之性能优化
  • 分类信息多城市网站优秀网站设计要素
  • 从 “越充越坏” 到 “精准修复”:DCA-8000 动态诊断充电系统实操案例与问题解决
  • 做oa系统的网站网站开发方向的工作
  • 服务请求出现偶发超时问题,经查服务本身没问题,问题出现在nginx转发。
  • 前端 20 个零依赖浏览器原生 API 实战清单
  • 网站管理包括广州新闻发布会
  • 网站开发外包哪家好wordpress好还是
  • SGD、Adam 和 AdamW
  • 导出pdf记录-暂记
  • HarmonyOS屏幕方向适配指南
  • 浏览器书签脚本(书签小程序)学习
  • 网站营销单页怎么设计方案怎样做视频网站
  • ComfyUI部署以及节点扩展