首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >《Linux 输入输出重定向与 VI 编辑器:全面操作指南与原理剖析》

《Linux 输入输出重定向与 VI 编辑器:全面操作指南与原理剖析》

作者头像
XPcode7
发布2025-10-23 14:53:35
发布2025-10-23 14:53:35
6300
代码可运行
举报
运行总次数:0
代码可运行

《Linux 输入输出重定向与 VI 编辑器:全面操作指南与原理剖析》

导读:在当今的服务器运维和开发领域,Linux 系统凭借其高效、稳定和开源的特性占据着重要地位。而 Linux 输入输出重定向和 VI 编辑器作为系统中不可或缺的两大核心功能,是每一位 Linux 使用者必须掌握的关键技能。输入输出重定向能够灵活控制命令的输入来源和输出去向,大大提升了数据处理的效率;VI编辑器则以其强大的文本编辑能力,成为在命令行环境下编辑文件的首选工具。 本文将带你深入探索这两个重要功能,不仅会详细介绍它们的各种操作方法,还会对其背后的原理进行剖析。无论你是初涉 Linux的新手,还是希望进一步提升技能的专业人士,相信都能从本文中获得有价值的知识和实践经验。

2.12.1 VI编辑器
1-1 移动光标
代码语言:javascript
代码运行次数:0
运行
复制
## 左,下,上,右,如果键盘上没有上下左右键,可以h,j,k,l 
## 进入编辑模式有三个按钮:i、a、o, i在光标位置编辑、a是在光标后一位编辑、o是换行编辑,新起一行
    ctrl+f 下翻一页
    ctrl+b 上翻一页
    ctrl+u 上翻半页
    ctrl+d 下翻半页
## 0 跳至行首,不管有无缩进,就是跳到第0个字符
## ^ 跳至行首的第一个字符
## $ 跳至行尾(shift+4)
## gg 跳至文首
## G 跳至文尾(shift+g)
## 5gg/5G 调至第5行,或者命令行模式:5回车,也是跳到第5行,所以其实操作命令都不是唯一的
1-2 删除复制
代码语言:javascript
代码运行次数:0
运行
复制
## x删除单个字符
## 10x删除10个字符
## dd 删除光标所在行(其实dd是剪切的操作),  

## 使用u撤销之前的操作,使用ctrl+r恢复

## 6dd 从光标开始往下删除6行
## dw 删除一个单词(word)
## 小p 粘贴粘贴板的内容到当前行的下面,比如将dd剪切的行黏贴到下面
## 大P 粘贴粘贴板的内容到当前行的上面
## yy 复制行
## 5yy复制5行,复制的内容可以通过p\P来黏贴
1-3 搜索和替换
代码语言:javascript
代码运行次数:0
运行
复制
## 搜索:
   /pattern 向后搜索字符串pattern  #辅助小n向下和大N向上,一般都是用/来搜索
   ?pattern 向前搜索字符串pattern  #辅助小n向上和大N向下,?搜索用的少

## 替换:
 :1369s/shell/jaden/g  # 将第1369行的shell替换为jaden,/还可以用#或者@符号来代替::1369s#shell#jaden#g
        
 :1369,1379s/shell/jaden/g  # 将1369至1379这10行中的shell替换为jaden
 :1369,$s/shell/jaden/g  # 将1369至文末中的shell替换为jaden
   :%s/old/new/g  #搜索整个文件,将所有的old替换为new
   :%s/old/new/gc #搜索整个文件,将所有的old替换为new,每次都要你确认是否替换(y/n/a/..),y表示确认替换一个、n表示不替换、a表示全部替换
1-4 退出编辑器
代码语言:javascript
代码运行次数:0
运行
复制
## :w 将缓冲区写入文件,即保存修改到硬盘上,但是不退出vi,如果我们改到一半的时候可以提前保存一下,以防断电,因为新编辑的数据是在内存中的,而且vi不会自动保存。

## :wq 保存修改并退出

## :x 保存修改并退出,和wq一样的效果。

## :q 退出,如果对缓冲区进行过修改,则会提示

## :q! 强制退出,放弃修改

## :wq! 强制保存修改并退出
1-5 vi注意问题和原理说明
代码语言:javascript
代码运行次数:0
运行
复制
### vi编辑内容原理
在这里插入图片描述
在这里插入图片描述

注意,如果内存中的数据没有修改,没什么事儿,如果修改了,并且不小心断开连接了,也就是没有正常退出vi,比如我们看一下:

在这里插入图片描述
在这里插入图片描述

那么这个隐藏文件会一直在硬盘上,当我们再次vi修改jaden.txt的时候,就会看到如下提示信息:

image-20230708151527097
image-20230708151527097

这是提示你,已经有这个 .jaden.txt.swp 文件了。你看到这个提示信息就要考虑一下,是不是自己之前不小心没保存就掉线了,还是说有其他人正在编辑这个文件。如果是自己之前没有保存,那么可以选择删除这个隐藏的swp文件,再编辑就没有这个提示了,这是最简单的方式。或者输入 vi -r jaden.txt 会看到自己之前保存的内容,重新 wq! 保存一下,然后再删除 .jaden.txt.swp 文件即可,自己之前的修改也就还在。 vim编辑的时候会提示如下

image-20230708151605312
image-20230708151605312
代码语言:javascript
代码运行次数:0
运行
复制
## 如果是有其他人在编辑这个文件,你就输入O,表示只读模式打开,E是直接编辑,R是恢复文件,Q是退出不编辑了,A是中止操作。其实还有个D指令,直接删除隐藏文件。
1-6 不会vi怎么办
代码语言:javascript
代码运行次数:0
运行
复制
## 可以把文件拷贝到物理机,通过物理机的记事本或者nodepad++等编辑器修改,修改完去替换原文件即可。

## 比如xftp就可以帮我们下载文件。但是如果一个比较大的文件,我们只改动一点内容,就可以学学vi,没必要上传下载文件来操作,耗时。
2.12.2 输入输出重定向
2-1 输出重定向01–清空文件
代码语言:javascript
代码运行次数:0
运行
复制
## 输出:
   ## > 输出重定向, 将命令执行结果不输出到屏幕上,输出到文件里,会清空原文件,所以输出的时候一定要注意,文件名称要看好了。
       [root@localhost ~]# head -20 services > 2.txt
       [root@localhost ~]# cat 2.txt
    
       [root@localhost ~]# seq 100 > 1.txt
       [root@localhost ~]# echo 123 > 1.txt
       [root@localhost ~]# cat 1.txt
        123
        
## 清空文件内容        
       [root@localhost ~]# > 1.txt 
       [root@localhost ~]# cat 1.txt
2-2 输出重定向02–追加
代码语言:javascript
代码运行次数:0
运行
复制
 ##  >> 输出追加重定向,不会清空原文件
       [root@localhost ~]# echo aaaaa >> 2.txt
       [root@localhost ~]# cat 2.txt
2-3 标准正确–错误输出重定向
代码语言:javascript
代码运行次数:0
运行
复制
## 如果输出文件还没指定,则自动创建
[root@localhost ~]# cat jaden.txt 1>1.txt 2>2.txt 
# 指令正确会将数据保存到1.txt中
2-4 < 输入重定向
代码语言:javascript
代码运行次数:0
运行
复制
## 输入:
   ## < 输入重定向
   [root@localhost ~]# cat < jaden.txt > 3.txt # 将jaden.txt的数据输入过来并写入3.txt中
   [root@localhost ~]# cat jaden.txt 
    
  ##  << 输入追加重定向(这个就不演示了,遇到了再说)
    	# 标准输入0,支持用户直接输入内容
   		[root@localhost ~]# cat << 0  
           > 1
           > 2
           > 2222
           > 0  ## 输入0就退出
            1
            2
            2222
       [root@localhost ~]# cat << 0 > 22.txt  ## 给屏幕输入一些内容,并保存到文件里
           > a
           > b
           > ddd
             > 0
       [root@localhost ~]# cat 22.txt
           a
           b
           ddd

总结:

希望这篇文章能够为你在探索 Linux系统的道路上提供有力的帮助,让你在操作 Linux 系统时更加得心应手。 我是**旺仔SeC**,是一名热衷于系统技术的博主,对 Linux系统有着深入的研究和丰富的实践经验。我致力于分享各种系统相关的知识和技巧,帮助大家解决在使用过程中遇到的各种问题。如果你觉得这篇文章对你有所帮助,欢迎点赞、收藏和分享哦 同时,也希望你能关注我的博客,我会持续为大家带来更多优质的系统技术文章,包括但不限于 Linux> 系统的深入探索、系统优化、故障排除以及各种有趣的实战案例。 如果你在学习和使用 Linux 系统的过程中遇到任何问题,或者对某些内容有疑问,欢迎在评论区留言,我会尽力为大家解答。让我们一起在系统技术的海洋中遨游,不断提升自己的技能水平,共同探索系统世界的奥秘 再次感谢大家的阅读,期待我们下次再见!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-01-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 《Linux 输入输出重定向与 VI 编辑器:全面操作指南与原理剖析》
    • 2.12.1 VI编辑器
    • 2.12.2 输入输出重定向
    • 总结:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档