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

[Linux] Vim编辑器 Linux输入输出重定向

Vim编辑器 

Vim模式

  • command模式:该模式下键盘中的字母有特殊含义。如:G是跳转到最后一行;gg是跳转到第一行。

  • edit模式:在command模式下按i进入该模式。在该模式可以输入内容。在该模式下按esc返回command模式。

  • extended command模式:在command模式下按:,进入该模式。在该模式下,可以保存文件(:w),强制退出编辑(:q!),报错并退出(:wq)

  • visual edit模式:在command模式下按v(单个字符选中),V(整行选中)或ctrl+v(按矩形选中)进入该模式。在该模式下,用于选中文件,随后可以复制或删除选中的内容

命令行模式快捷键

定位文件内容:

  • 单个字符移动,方向键↑↓←一→和键盘字母(h j k l)

  • w,向后1个word(word开头);b,向前1个word(word开头);

  • e,向后1个word(word结尾);

  • ^,行首第一个字母;$,行尾最后一个字母;数字0,行首第一个字母。

  • (,上一个句子头部;),下一个句子尾部。

  • {,上一个段落头部;},下一个段落尾部。

  • gg,文章第一行;G,文章最后一行。

  • 45G,跳转到45行。

插入模式:

  • i,当前位置插入。

  • 1,行首插入。

  • a,当前位置追加。

  • A,行末追加。

  • o,向下新开一个空白行

  • O,向下新开一个空白行

复制:yy,复制1行,相当于y1y。以此类推y2y y2w y2b。

粘贴:p当前位置后粘贴;P当前位置前粘贴。

删除:

  • X,删除当前单个字符。5x,删除当前字符和后续4个字符。

  • dw,删除1个word,以此类推d5w d3b d2d d$

  • D,从当前删除到最后,相当于d$

回退:

  • u,回退一个操作。

  • U,回退当前行所有操作。

前进:ctrl+r,前进一个操作,与u相对。

修改,相当于删除后插入:

  • S,删除当前字符,并进入编辑模式。

  • S,删除当前行,并进入编辑模式。

  • c,代表替换动作,例如cw,删除1个word,并进入编辑模式。

  • C,从当前删除到最后,并进入编辑模式。

替换:

  • r,替换单个字符后回退到命令行模式。

  • R,替换模式,一直替换直到按EsC返回命令行模式。

扩展命令行模式

  • :1,10d,删除1到10行

  • :%s/10.5.5/10.1.8/g,将所有行中10.5.5替换为10.1.8

  • :5,$d,删除第5行到最后一行

  • :w /path/to/file另存为/path/to/file。

  • :! date,执行date命令。

查找

  • /string,查看string字符串

  • /STRING\c,忽略大小写查找string字符串

Linux输入输出重定向 

输出重定向到文件

|通道名称|描述|默认链接|用法| |-|-|-|-| |stdin|标准输入|键盘|仅读取| |stdout|标准输出|终端|仅写入| |stderr|标准错误|终端|仅写入| |filename|其他文件|无|读取/写入|

输入/输出(I/O)重定向可更改进程获取其输入或输出的方式。进程可以执行文件读取或写入,而不从键盘获取输入,也不将输出和错误发送到终端。通过重定向,您可以将消息保存到文件,而不在终端上显示输出。

|用法|说明| |-|-| |> file|重定向stdout以覆盖文件| |>> file|重定向stdout以附加到文件| |2> file|重定向stderr以覆盖文件| |2> /dev/null|将stderr错误信息重定向到/dev/null,从而将它丢弃|

独立输出

查找/etc目录下文件名是passwd的所有文件

find /etc -name 'passwd'

将找到的文件名覆盖写入passwd.list中

find /etc -name 'passwd' 1>passwd.list
#1>passwd.list可以省略1写为passwd.list
#1和>之间不能有空格cat passwd.list

将找到的文件名追加到passwd.list中

find /etc -name 'passwd' >> passwd.list

将错误信息覆盖写入到passwd.err

find /etc -name 'passwd' 2>passwd.err
#如果不用root用户会有权限不足的报错

将错误信息扔掉

find /etc -name 'passwd' 2>dev/null

正确信息(标准输出)

  • 位置:直接显示在终端(标准输出,文件描述符 1

  • 内容find 命令找到的匹配文件路径(如 /etc/passwd

错误信息(标准错误)

  • 位置:被重定向丢弃(2>/dev/null 表示丢弃所有错误)

  • 内容:权限不足、目录不存在等错误(如 find: /etc/ssh: Permission denied

将错误信息和正确信息覆盖写入到相同文件

find /etc -name 'passwd' > passwd.all 2>&1

将错误信息和正确信息追加写入到相同文件

find /etc -name 'passwd' >> passwd.all 2>&1

输出重定向到程序

管道符(|)实现,将上一个命令的输出作为标准输入传递给下一个命令

例:获取ens33网卡ip地址

ip a | grep 'ens160$' | awk '{print $2}'
#hostname -I 也可以取ip

管道符后的命令必须能够接受标准输入,才可以配合管道符使用。但是ls不接受管道传递的标准输入。

echo /etc/passwd | xargs ls -l

tee命令

tee命令覆盖保存到文件

find /etc -name 'passwd' 2>/dev/null | tee passwd.list
cat passwd.list

tee命令追加保存到文件

find /etc -name 'passwd' 2>/dev/null | tee -a passwd.list
cat passwd.list

标准输入重定向给程序

cat命令标准输入数据

cat /etc/hosts
cat < /etc/hosts

shell读取到EOF时,代表标准输入完成

cat << EOF
> hello
> world 
>EOF

判断一个命令是否接受标准输入:最简单的方式就是将文件内容作为标准输入重定向给程序。

相关文章:

  • Nginx-5 Nginx 的4层反向代理
  • 【node】Mac m1 安装nvm 和node
  • 64-Oracle Redo Log
  • 示波器测量市电需要隔离变压器
  • langchain从入门到精通(十三)——Runnable组件
  • 提升 RAG 检索质量的 “七种武器”
  • Java面试复习:基础、面向对象、多线程、JVM与Spring核心考点
  • 关于Spring JBDC
  • Unity Addressable使用之检测更新流程
  • 从 Cluely 融资看“AI 协同开发”认证:软件考试应该怎么升级?
  • PaddleOCR + Flask 构建 Web OCR 服务实战
  • 论文笔记:Large language model augmented narrative driven recommendations
  • es向量检索里的efSearchc参数是干嘛用的
  • 装配体镜像阵列与爆炸视图-装配体设计技能(2)
  • Hologres的Table Group和Shard简介
  • 秘塔AI搜索:国产无广告智能搜索引擎,重塑高效信息获取体验
  • c# .netCreateLinkedTokenSource链接令牌,取消信号异步执行
  • 使用模板创建uniapp提示未关联uniCloud问题
  • 考研408《计算机组成原理》复习笔记,第三章(1)——存储系统概念
  • leetcode:面试题 08.06. 汉诺塔问题
  • 如何给网站添加客服/常见的营销策略有哪些
  • 网站怎么免费做推广方案/长沙seo优化推荐
  • 在家做十字绣兼职网站/网站买卖
  • 网站与网页的区别./网络营销广告案例
  • 个人备案的域名拿来做别的网站/优化法治化营商环境
  • 网站收录了但是搜索不到/百度在线提问