[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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/86204.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/86204.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

用Rust写平衡三进制乘法器

1、平衡三进制乘法表 前面写了平衡三进制的加法器&#xff0c;这个乘法器是在这基础上的&#xff0c;没看过的可以回去看看&#xff0c;说到乘法器还是要参考前苏联的资料的&#xff0c;平衡三进制的乘法也是很方便的&#xff0c;在平衡三进制基础中有详细讲过&#xff0c;下图…

解决Vue2官网Webpack源码泄露漏洞

一&#xff1a;漏洞产生 Webpack是一个JavaScript应用程序的静态资源打包器。大部分Vue等应用项目会使用Webpack进行打包&#xff0c;如果没有正确配置&#xff0c;就会导致项目源码泄露&#xff0c;可能泄露的各种信息如API、加密算法、管理员邮箱、内部功能等等。 F12查看源…

新中国风通用读书颂词分享PPT模版

新国风PPT模版&#xff0c;古风影视剧PPT模版&#xff0c;天青色中国风读书颂词分享会PPT模版&#xff0c;国风通用PPT模版&#xff0c;茶味PPT模版&#xff0c;风雪夜归人PPT模版&#xff0c;小别离PPT模版&#xff0c;西江月茶词PPT模版 新中国风通用读书颂词分享PPT模版&…

Rust自动化测试的框架

Rust实现Web自动化测试的框架 以下是10个使用Rust实现Web自动化测试的框架示例,涵盖不同场景和工具链: 使用thirtyfour(基于Selenium) use thirtyfour::prelude::*;async fn example_selenium() -> WebDriverResult<()> {let caps = DesiredCapabilities::chro…

MySQL性能测试模板

引言&#xff1a;为什么MySQL性能测试如此重要&#xff1f; 你是否遇到过这些问题&#xff1a; 线上数据库突然卡顿&#xff0c;QPS暴跌&#xff1f;业务高峰期MySQL服务器CPU 100%&#xff0c;却找不到瓶颈&#xff1f;新功能上线后&#xff0c;数据库性能不升反降&#xff…

第八课:大白话教你逻辑回归

这节课咱们来聊聊 逻辑回归(Logistic Regression),别看名字里有“回归”,它其实是用来干 分类 的活儿的!我会用最接地气的方式,从定义讲到实战,保证你笑着学会,还能拿去忽悠朋友! 一:逻辑回归是啥?——当回归想不开,转行搞分类 1.1 定义:逻辑回归是个“概率算命…

项目中后端如何处理异常?

为了统一管理异常&#xff0c;在项目中封装了自定义异常类(BusinessException),全局异常处理器(GlobalExceptionHandler), 以及一些状态码(ErrorCode), 便于前端统一处理异常. 主要流程如下: 当项目业务发生逻辑错误时,会抛出BusinessException, 其中包含自定义错误码和信息.…

群晖 NAS Docker 镜像加速配置详细教程

通过为群晖NAS的Docker配置镜像仓库加速服务&#xff0c;可显著提升镜像拉取速度与稳定性。本指南详细介绍使用毫秒镜像 (1ms.run) 服务的配置步骤及日常使用方法。 一、配置前准备 开始配置前&#xff0c;推荐使用毫秒镜像的免登录方式获取镜像仓库地址。相比传统的账号密码…

Deepoc行业垂直大模型作为行业知识与AI深度融合的专用工具

一、​​行业专用智能诊断与预测性维护​​ ​​设备健康管理​​ ​​多源异构数据融合​​&#xff1a;垂直大模型通过时序对齐算法&#xff08;如动态时间规整DTW&#xff09;整合振动&#xff08;5kHz&#xff09;、温度&#xff08;1Hz&#xff09;、电流等多维度传感器数…

内存泄漏系列专题分析之二十五:内存泄漏测试report Camera相机进程各种内存指标dump方式

【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:内存泄漏系列专题分析之二十四:内存泄漏测试Camera相机进程内存指标分布report概述 这一篇我们开始讲: 内存泄漏系列专题分析之二十五:内存泄漏测试report Camera相机进程各种内存指标dump方式 目录 一、问…

mysql 加锁算法 详解

锁 锁分类 从锁的操作划分 共享锁和排他锁 共享锁&#xff08;读锁&#xff09;和排他锁&#xff08;写锁&#xff09;。对于更新语句&#xff0c;InnoDB会自动加上排他锁&#xff1b;对于查询语句&#xff0c;如果是快照读&#xff0c;由于MVCC的存在&#xff0c;InnoDB不会…

使用EasyExcel导出带下拉框选项excel模板

使用EasyExcel导出excel模版&#xff0c;表头字段动态生成下拉框选择&#xff0c;并且阻止输入不符合下拉框选项的值&#xff0c;会在表格进行提示。 为了避免excel下拉框选项过多&#xff0c;导致下拉框内容不显示&#xff0c;新建一个sheet页&#xff0c;将下拉框内容存储在…

自动化 UI 测试智能体在 Trae 平台的部署体验

我用Trae 做了一个有意思的Agent 「自动化 UI 测试」。 点击 Trae - AI 原生 IDE 立即复刻&#xff0c;一起来玩吧&#xff01; 前言 用户界面&#xff08;UI&#xff09;作为用户与软件交互的窗口&#xff0c;其质量直接影响用户体验和产品口碑。传统的手动 UI 测试不仅效率…

身份证识别接口功能与应用场景-Android证件识别api集成

数字化信息高速发展的时代&#xff0c;信息的高效处理与精准识别已成为众多行业发展的关键驱动力。针对联网平台身份核验过程中&#xff0c;证件信息手动录入效率低、出错率高、用户体验差等问题推出了身份证识别接口&#xff0c;旨在为各行各业提供高效与便捷的身份核验解决方…

POJ2718-Smallest Difference(穷竭搜索:全排列)

题目描述 给定一些不同的十进制数字&#xff0c;您可以通过选择这些数字的一个非空子集并以某种顺序编写它们来形成一个整数。剩余的数字可以以某种顺序写下来形成第二个整数。除非结果整数为 0&#xff0c;否则整数可能不以数字 0 开头。 例如&#xff0c;如果给定数字 0, 1…

银行账户管理系统-交互系统

这篇博文是对上一篇(银行账户管理系统)的提升,上一篇是基础的学习,这一篇是在上一篇的基础上做的交互系统。Tkinter基础函数知识点点击下面超链接就可以跳转到对应的界面。希望可以帮助到你。这是则篇的框架银行账户管理系统代码解释-CSDN博客介绍。 写文章-CSDN创作中心h…

基于大数据的社会治理与决策支持方案PPT(66页)

大数据引领社会治理新变革 大数据技术的兴起&#xff0c;为社会治理带来了前所未有的变革。它改变了我们认识社会的方式&#xff0c;使得社会治理更加精准、高效。通过大数据融合分析&#xff0c;实现了对社会动态的全面监控和深度挖掘。 构建城市块数据中心 以“社会治理”…

Containerd容器技术

目录 一&#xff0c;containerd概述 1&#xff0c;containerd 概述 2&#xff0c;containerd 的主要功能 1. 容器生命周期管理 2. 与底层基础设施交互 3. 与上层系统集成 3&#xff0c;containerd 的核心特点 1. 轻量级与低资源消耗 2. 标准化与开放性 3. 高性能与稳定…

awk命令详解

Shell AWK 命令详解 一、AWK 简介与基本语法 AWK 是一种强大的文本处理工具,名称来源于其三位创始人 Alfred Aho、Peter Weinberger 和 Brian Kernighan 的姓氏首字母。它逐行扫描文件,寻找匹配特定模式的行并执行相应操作。 基本语法结构: awk [选项] 模式 {动作} 文件名…

面试150跳跃游戏

思路 贪心算法&#xff0c;使用变量cover表示当前所能覆盖的最大距离&#xff0c;如果cover大于等于n-1表示能覆盖到&#xff0c;反之则不能 class Solution:def canJump(self, nums: List[int]) -> bool:if not nums:return Falsenlen(nums)cover0for i in range(n):if i…