系统凭借其高效、稳定和开源的特性占据着重要地位。而 Linux 输入输出重定向和 VI 编辑器作为系统中不可或缺的两大核心功能是每一位 Linux 使用者必须掌握的关键技能。输入输出重定向能够灵活控制命令的输入来源和输出去向大大提升了数据处理的效率VI编辑器则以其强大的文本编辑能力成为在命令行环境下编辑文件的首选工具。本文将带你深入探索这两个重要功能不仅会详细介绍它们的各种操作方法还会对其背后的原理进行剖析。无论你是初涉 Linux的新手还是希望进一步提升技能的专业人士相信都能从本文中获得有价值的知识和实践经验。2.12.1 VI编辑器1-1 移动光标代码语言javascriptAI代码解释## 左下上右如果键盘上没有上下左右键可以h,j,k,l ## 进入编辑模式有三个按钮i、a、o i在光标位置编辑、a是在光标后一位编辑、o是换行编辑新起一行 ctrlf 下翻一页 ctrlb 上翻一页 ctrlu 上翻半页 ctrld 下翻半页 ## 0 跳至行首不管有无缩进就是跳到第0个字符 ## ^ 跳至行首的第一个字符 ## $ 跳至行尾(shift4) ## gg 跳至文首 ## G 跳至文尾(shiftg) ## 5gg/5G 调至第5行或者命令行模式:5回车也是跳到第5行所以其实操作命令都不是唯一的1-2 删除复制代码语言javascriptAI代码解释## x删除单个字符 ## 10x删除10个字符 ## dd 删除光标所在行(其实dd是剪切的操作), ## 使用u撤销之前的操作使用ctrlr恢复 ## 6dd 从光标开始往下删除6行 ## dw 删除一个单词(word) ## 小p 粘贴粘贴板的内容到当前行的下面比如将dd剪切的行黏贴到下面 ## 大P 粘贴粘贴板的内容到当前行的上面 ## yy 复制行 ## 5yy复制5行复制的内容可以通过p\P来黏贴1-3 搜索和替换代码语言javascriptAI代码解释## 搜索 /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 退出编辑器代码语言javascriptAI代码解释## :w 将缓冲区写入文件即保存修改到硬盘上但是不退出vi如果我们改到一半的时候可以提前保存一下以防断电因为新编辑的数据是在内存中的而且vi不会自动保存。 ## :wq 保存修改并退出 ## :x 保存修改并退出和wq一样的效果。 ## :q 退出如果对缓冲区进行过修改则会提示 ## :q! 强制退出放弃修改 ## :wq! 强制保存修改并退出1-5 vi注意问题和原理说明代码语言javascriptAI代码解释### vi编辑内容原理在这里插入图片描述注意如果内存中的数据没有修改没什么事儿如果修改了并且不小心断开连接了也就是没有正常退出vi比如我们看一下在这里插入图片描述那么这个隐藏文件会一直在硬盘上当我们再次vi修改jaden.txt的时候就会看到如下提示信息image-20230708151527097这是提示你已经有这个 .jaden.txt.swp 文件了。你看到这个提示信息就要考虑一下是不是自己之前不小心没保存就掉线了还是说有其他人正在编辑这个文件。如果是自己之前没有保存那么可以选择删除这个隐藏的swp文件再编辑就没有这个提示了这是最简单的方式。或者输入 vi -r jaden.txt 会看到自己之前保存的内容重新 wq! 保存一下然后再删除 .jaden.txt.swp 文件即可自己之前的修改也就还在。 vim编辑的时候会提示如下image-20230708151605312代码语言javascriptAI代码解释## 如果是有其他人在编辑这个文件你就输入O表示只读模式打开E是直接编辑R是恢复文件Q是退出不编辑了A是中止操作。其实还有个D指令直接删除隐藏文件。1-6 不会vi怎么办代码语言javascriptAI代码解释## 可以把文件拷贝到物理机通过物理机的记事本或者nodepad等编辑器修改修改完去替换原文件即可。 ## 比如xftp就可以帮我们下载文件。但是如果一个比较大的文件我们只改动一点内容就可以学学vi没必要上传下载文件来操作耗时。2.12.2 输入输出重定向2-1 输出重定向01–清空文件代码语言javascriptAI代码解释## 输出 ## 输出重定向 将命令执行结果不输出到屏幕上输出到文件里会清空原文件所以输出的时候一定要注意文件名称要看好了。 [rootlocalhost ~]# head -20 services 2.txt [rootlocalhost ~]# cat 2.txt [rootlocalhost ~]# seq 100 1.txt [rootlocalhost ~]# echo 123 1.txt [rootlocalhost ~]# cat 1.txt 123 ## 清空文件内容 [rootlocalhost ~]# 1.txt [rootlocalhost ~]# cat 1.txt2-2 输出重定向02–追加代码语言javascriptAI代码解释## 输出追加重定向不会清空原文件 [rootlocalhost ~]# echo aaaaa 2.txt [rootlocalhost ~]# cat 2.txt2-3 标准正确–错误输出重定向代码语言javascriptAI代码解释## 如果输出文件还没指定则自动创建 [rootlocalhost ~]# cat jaden.txt 11.txt 22.txt # 指令正确会将数据保存到1.txt中2-4 输入重定向代码语言javascriptAI代码解释## 输入 ## 输入重定向 [rootlocalhost ~]# cat jaden.txt 3.txt # 将jaden.txt的数据输入过来并写入3.txt中 [rootlocalhost ~]# cat jaden.txt ## 输入追加重定向(这个就不演示了遇到了再说) # 标准输入0支持用户直接输入内容 [rootlocalhost ~]# cat 0 1 2 2222 0 ## 输入0就退出 1 2 2222 [rootlocalhost ~]# cat 0 22.txt ## 给屏幕输入一些内容并保存到文件里 a b ddd 0 [rootlocalhost ~]# cat 22.txt a b ddd总结希望这篇文章能够为你在探索 Linux系统的道路上提供有力的帮助让你在操作 Linux 系统时更加得心应手。 对 Linux系统有着深入的研究和丰富的实践经验。我致力于分享各种系统相关的知识和技巧帮助大家解决在使用过程中遇到的各种问题。如果你觉得这篇文章对你有所帮助欢迎点赞、收藏和分享哦同时也希望你能关注我的博客我会持续为大家带来更多优质的系统技术文章包括但不限于 Linux 系统的深入探索、系统优化、故障排除以及各种有趣的实战案例。 如果你在学习和使用 Linux 系统的过程中遇到任何问题或者对某些内容有疑问欢迎在评论区留言我会尽力为大家解答。让我们一起在系统技术的海洋中遨游不断提升自己的技能水平共同探索系统世界的奥秘 再次感谢大家的阅读期待我们下次再见