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

Linux :: 文件内容操作【5】:echo 指令 与 输入重定向、输出重定向、追加重定向在文件内容写入中的简单用法!

前言:本篇是 Linux 基本操作篇章的内容!
笔者使用的环境是基于腾讯云服务器:CentOS 7.6 64bit。


学习集:

  • C++ 入门到入土!!!学习合集
  • Linux 从命令到网络再到内核!学习合集

说明:此处结合 「echo 指令」 提前引入 「重定向」「管道」 的简单用法,深入的 「重定向」「管道」 的底层原理会在后续篇章《基础 I / O》部分讲解!


注:请记住:Linux下一切皆文件!【包括但不限于:显示器、键盘等】


目录索引:
1. echo 基本语法、功能及基本用法
2. 什么是重定向及重定项类型和作用
- - 2.1 什么是重定向
- - 2.2 重定向类型及作用
3. 输出重定向的基本使用示例及测试
4. 追加重定向的基本使用示例及测试
5. 输入重定向的基本使用示例及测试
- - 5.1 输入重定向的基本使用与说明
- - 5.2 输入重定向的简单玩法:简易实现备份文件数据
6. 相关文章或系列推荐


1. 基本语法及功能

基本语法:

  • echo “[串]”:【即:指令 + 字符串】

功能:

  • 将字符串输出到标准输出设备(即:显示器)!

基本用法如下:

[Mortal@VM-12-16-centos ~]$ echo "hello echo"
hello echo
[Mortal@VM-12-16-centos ~]$ echo "hello world"
hello world
[Mortal@VM-12-16-centos ~]$ echo 'a'
a
[Mortal@VM-12-16-centos ~]$ echo 'abc'
abc

2. 什么是重定向及重定项类型和作用

2.1 什么是重定向

(注:此处针对我们的近期学习内容对重定向进行概括!)
「重定向」:就是将原本数据输出的默认位置修改输出到指定输出位置(如:文件中!)


2.2 重定向类型和作用

重定向类型作用(与文件内容操作联系)
输出重定向「>」从文件开始,覆盖是写入
追加重定向「>>」从文件结尾,追加式写入
输入重定向「<」将文件内容读取并输出到标准输出设备

说明:

  1. 输出 / 追加重定向时,若有文件则直接访问,若无文件则创建文件再访问!
  2. 输出 / 追加重定向可结合 echo 指令实现文件的内容写入!
  3. 输出 / 追加重定向:都是在执行写入操作!
  4. 输入重定向可以结合 cat 指令实现文件内容的读取与打印!【即:将本来应该从标准输入设备中读取数据转向在文件中读取数】

3. 输出重定向的基本使用示例及测试

输出重定向「>」:从文件开始,覆盖是写入。

创建测试目录及文件

[Mortal@VM-12-16-centos ~]$ mkdir test
[Mortal@VM-12-16-centos ~]$ cd test
[Mortal@VM-12-16-centos test]$ ls
[Mortal@VM-12-16-centos test]$ touch a.txt
[Mortal@VM-12-16-centos test]$ ls
a.txt

基本写入测试(1):文件存在并结合 echo 写入信息!

[Mortal@VM-12-16-centos test]$ echo "输出重定向测试!" > a.txt
[Mortal@VM-12-16-centos test]$ cat a.txt 
输出重定向测试\n

基本写入测试(2):文件不存在结合 echo 写入信息!

[Mortal@VM-12-16-centos test]$ ls
a.txt
[Mortal@VM-12-16-centos test]$ echo "测试无文件输出重定向测试!" > b.txt
[Mortal@VM-12-16-centos test]$ ls
a.txt  b.txt
[Mortal@VM-12-16-centos test]$ cat b.txt 
测试无文件输出重定向测试!

基本写入测试(3):输出重定向特性:从文件开始,覆盖是写入

[Mortal@VM-12-16-centos test]$ cat a.txt 
输出重定向测试!\n
[Mortal@VM-12-16-centos test]$ echo "输出重定向:覆盖式写入测试" > a.txt
[Mortal@VM-12-16-centos test]$ ls
a.txt  b.txt
[Mortal@VM-12-16-centos test]$ cat a.txt 
输出重定向:覆盖式写入测试

4. 追加重定向的基本使用示例及测试

追加重定向「>>」:从文件结尾,追加式写入。

[Mortal@VM-12-16-centos test]$ cat a.txt 
输出重定向:覆盖式写入测试
[Mortal@VM-12-16-centos test]$ echo "a" >> a.txt 
[Mortal@VM-12-16-centos test]$ echo "b" >> a.txt 
[Mortal@VM-12-16-centos test]$ cat a.txt 
输出重定向:覆盖式写入测试
a
b

5. 输入重定向的基本使用示例及测试

5.1 输入重定向的基本使用与说明

cat 的补充用法回顾:从标准输入读取内容并输出【在前面内容已讲!】

  • 输入重定向「<」:将文件内容读取并输出到标准输出设备!
[Mortal@VM-12-16-centos test]$ cat a.txt
输出重定向:覆盖式写入测试
a
b
[Mortal@VM-12-16-centos test]$ cat < a.txt 
输出重定向:覆盖式写入测试
a
b

如上情形:cat 本来就可以读取打印文件内容!为什么我们还要用输入重定向的方式去读取输出文件信息?


说明:实际在此引入的中心在于:输入重定向的简单用法,理解输入来源“设备”的改变。后续在《基础 I / O 》部分会在深入说明重定向的用法!


5.2 输入重定向的简单玩法:简易实现备份文件数据

结合前文已知:输出重定向可以向文件中写入数据!那此处我们用输入输出重定向实现简单文件备份!

[Mortal@VM-12-16-centos test]$ cat a.txt 
输出重定向:覆盖式写入测试
a
b
[Mortal@VM-12-16-centos test]$ cat < a.txt > aa.txt
[Mortal@VM-12-16-centos test]$ ls
aa.txt  a.txt  b.txt
[Mortal@VM-12-16-centos test]$ rm a.txt 
[Mortal@VM-12-16-centos test]$ cat aa.txt 
输出重定向:覆盖式写入测试
a
b

另:目前按顺序学习过来,我们已经开始涉及到文件内容的写入问题,就已介绍的指令中有两种写入方式:

  1. 使用 nano 编辑文本内容!
  2. 使用本文中的提及的 echo / cat 结合重定向将数据内容。

相对而言,目前的操作不是很遍历:故 关于 vim 编辑器使用文章已在更新中:
1. Linux :: 【简单开发篇 :: vim 编辑器:(1)】:: vim 编辑器的基本认识与三种 vim 常用模式 | 使用:打开编辑、退出保存关闭vim ;
2. Linux :: 【简单开发篇 :: vim 编辑器:(2)】:: 普通/命令模式下的最常用操作(1):详解:文本复制/粘贴/剪切/删除 与 撤销普通操作及撤销撤销操作 ;
3. Linux :: 【简单开发篇 :: vim 编辑器:(3)】:: 普通/命令模式下的最常用操作(2):详解:光标移动定位内容,行间:快速定位至文本:开头 / 结尾;行内:词间跳跃;

6. 相关文章或系列推荐

1. Linux 学习目录合集 ;


2. Linux :: 【基础指令篇 :: 文件内容操作:(1)】:: nano 指令 :: 使用自带文件编辑器及简单演示Linux下gcc编译执行可执行程序(仅作了解:会用来创建文件即可)【基本不会用到】 ;
3. Linux :: 【基础指令篇 :: 文件内容操作:(2)】:: cat / tac 指令 :: 正序 / 逆序 查看目标文件的全部内容 及 cat 的补充用法:从标准输入读取内容并输出 ;
4.Linux :: 【基础指令篇 :: 文件内容操作:(3)】:: more / less 指令 :: 查看目标文件的部分或全部内容 | 指定查看前 n 行内容【二者相比推荐使用 less 】 ;


相关文章:

Linux :: 文件内容操作【5】:echo 指令 与 输入重定向、输出重定向、追加重定向在文件内容写入中的简单用法!

前言&#xff1a;本篇是 Linux 基本操作篇章的内容&#xff01; 笔者使用的环境是基于腾讯云服务器&#xff1a;CentOS 7.6 64bit。 学习集&#xff1a; C 入门到入土&#xff01;&#xff01;&#xff01;学习合集Linux 从命令到网络再到内核&#xff01;学习合集 说明&#x…...

【RocketMQ】重试机制及死信消息处理

【RocketMQ】重试机制及死信消息处理 文章目录 【RocketMQ】重试机制及死信消息处理1. 重试机制1.1 生产者重试1.2 消费者重试1.2.1 死信队列 参考文档&#xff1a; 官方文档 1. 重试机制 1.1 生产者重试 rocketmq生产者发送消息失败默认重试2次(同步发送为2次&#xff0c;异…...

Mysql DDL执行方式-pt-osc介绍 | 京东云技术团队

1 引言 大家好&#xff0c;接着上次和大家一起学习了《MySQL DDL执行方式-Online DDL介绍》&#xff0c;那么今天接着和大家一起学习另一种MySQL DDL执行方式之pt-soc。 在MySQL使用过程中&#xff0c;根据业务的需求对表结构进行变更是个普遍的运维操作&#xff0c;这些称为…...

C++ stack容器介绍

&#x1f914;stack容器介绍&#xff1a; &#x1f4d6; stack是一种数据结构&#xff0c;也可以被称为堆栈。它是一个容器&#xff0c;只允许在最顶层进行插入和删除&#xff0c;并且只能访问最后一个插入的元素。这个元素称为栈顶。所有新插入的元素都被放置在栈顶上面&#…...

在 Git 中撤消更改的 6 种方法!

目录 1. 修改最近的提交 2. 将分支重置为较旧的提交 硬重置 软重置分支 创建备份分支 3. 交互式变基 删除旧提交 改写提交消息 编辑旧提交 压缩 4. 还原提交 5. 签出文件 6. 使用 Git Reflog 当使用 Git 进行项目代码管理时&#xff0c;难免会出现一些错误操作或需…...

LiveGBS国标GB/T28181国标平台功能-电子地图移动位置订阅mobileposition地图定位GPS轨迹坐标位置获取redis获取位置

LiveGBS国标GB/T28181国标平台功能-电子地图移动位置订阅mobileposition地图定位GPS轨迹坐标位置获取redis获取位置 1、位置订阅1.1、国标设备编辑1.2、选择设备开启位置订阅1.3、全局开启位置订阅1.4、通过目录订阅获取位置(少数情况) 2、经纬度信息查询2.1、访问接口获取2.1.…...

编程(38)----------计算机的部分原理

本篇主要总结一些计算机的理论部分. 计算机在发展历程中,无论是最早的巨无霸机器,还是现在小到可以拿在手中的掌机.只要其本质上是计算机,在最基础的结构上,都是以冯诺依曼体系所构建的. 冯诺依曼体系大致将计算机分为几个最重要的部分:输入,输出,中央处理器,存储设备.也就是…...

若依框架快速搭建(二)

目录 数据库设计功能模块设计XXX信息管理xxx查询xxx添加xxx删除xxx修改xxx导出 功能模块实现运行数据库自动代码生成在IDEA中找到RuoYi-generator&#xff0c;修改配置运行前后端项目&#xff0c;在网页中找到代码生成模块导入表后点击确定&#xff0c;序号前打勾&#xff0c;再…...

为建筑物的供暖系统实施MPC控制器的小型项目(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…...

【概率论】中心极限定理(二)

文章目录 主观题主观题 每袋味精的净重为随机变量,平均重量为 100 克,标准差为 10 克。一箱内装 200 袋味精,求一箱味精的净重大于 20500 克的概率? 解: ① E ( X i ) = 100 , D ( X i ) = 1 0 2...

Blender UV展开流程

目录 1. UV1.1 blender默认物体1.2 创建物体1.3 UV参考图1.4 标记缝合边1.5 UV拉伸1.6 孤岛模式 1. UV 1.1 blender默认物体 默认物体已经自动生成UV 在UV编辑工作区&#xff0c;编辑模式&#xff0c;全选物体在左边自动展开UV 在物体数据属性-UV贴图-存在默认的UV贴图&#…...

Flutter 笔记 | Flutter 核心原理(二)关键类和启动流程

Widget、Element、BuildContext 和 RenderObject Widget Widget关键类及其子类继承关系如图所示&#xff1a; 其中&#xff0c;Widget是Widget Tree所有节点的基类。Widget的子类主要分为3类&#xff1a; 第1类是RenderObjectWidget的子类&#xff0c;具体来说又分为SingleCh…...

Android:主题切换

一.概述 正在开发的应用做了一版新UI&#xff0c;原打算将新版UI按项目名做成资源包&#xff0c;再在build.gradle里productFlavors{ }多渠道打包实现 但被告知新旧两个项目共用一个分支&#xff0c;那就做成两个主题(Theme1/Theme2)来适配了 如果只是变更UI&#xff0c;做成…...

terminalworks ASP.NET Core PDF 浏览器-Crack

ASP.NET Core 的 PDF 查看器 terminalworks在 ASP.NET Core 网页或应用程序中添加可靠的 PDF 查看器的简单方法。 我们的 Web PDF 查看器基于经过验证和测试的 Mozilla PdfJS 解决方案&#xff0c;该解决方案在 Firefox 中用作默认 PDF 查看器。我们专门设计了我们的查看器&…...

Rust每日一练(Leetday0020) 最后单词的长度、螺旋矩阵II、排列序列

目录 58. 最后一个单词的长度 Length of Last Word &#x1f31f; 59. 螺旋矩阵 II Spiral Matrix II &#x1f31f;&#x1f31f; 60. 排列序列 Permutation Sequence &#x1f31f;&#x1f31f;&#x1f31f; &#x1f31f; 每日一练刷题专栏 &#x1f31f; Rust每日…...

短视频矩阵源码如何做应用编程?

短视频矩阵源码&#xff0c; 短视频矩阵系统技术文档&#xff1a; 可以采用电子文档或者纸质文档的形式交付&#xff0c;具体取决于需求方的要求。电子文档可以通过电子邮件、远程指导交付云存储等方式进行传输、 短视频矩阵{seo}源码是指将抖音平台上的视频资源进行筛选、排…...

【运维知识进阶篇】Ansible实现一套完整LNMP架构

前面介绍了PlayBook怎么写服务部署&#xff0c;把服务部署上后&#xff0c;我们来用Ansible来部署项目&#xff0c;实现一套完整的LNMP架构。我们部署wordpress、wecenter、phpshe、phpmyadmin这四个项目。将其所有的剧本都写入lnmp.yml中&#xff0c;相关备份数据都放入root/a…...

Spring Boot 自动配置一篇概览

一、什么是自动配置 bean 自动配置类通过添加 AutoConfiguration 注解实现。 因为 AutoConfiguration 注解本身是以 Configuration 注解的&#xff0c;所以自动配置类可以算是一个标准的基于 Configuration 注解的类。 Conditional 注解可以用于声明自动配置启用条件&#x…...

深入理解设计原则之接口隔离原则(ISP)【软件架构设计】

系列文章目录 C高性能优化编程系列 深入理解软件架构设计系列 深入理解设计模式系列 高级C并发线程编程 LSP&#xff1a;接口隔离原则 系列文章目录1、接口隔离原则的定义和解读2、案例解读3、如何判断一个接口是否符合接口隔离原则&#xff1f;小结 1、接口隔离原则的定义和…...

IMX6ULL裸机篇之I2C实验主控代码说明二

一. I2C实验 I2C实验内容&#xff1a; 学习如何使用 I.MX6U 的 I2C 接口来驱动 AP3216C&#xff0c;读取 AP3216C 的传感器数据。 I2C读写数据时序图&#xff1a; I2C写数据时序图如下&#xff1a; I2C读数据时序图如下&#xff1a; 二. I2C主控读写时序 1. 读数据与写数…...

使用分级同态加密防御梯度泄漏

抽象 联邦学习 &#xff08;FL&#xff09; 支持跨分布式客户端进行协作模型训练&#xff0c;而无需共享原始数据&#xff0c;这使其成为在互联和自动驾驶汽车 &#xff08;CAV&#xff09; 等领域保护隐私的机器学习的一种很有前途的方法。然而&#xff0c;最近的研究表明&…...

将对透视变换后的图像使用Otsu进行阈值化,来分离黑色和白色像素。这句话中的Otsu是什么意思?

Otsu 是一种自动阈值化方法&#xff0c;用于将图像分割为前景和背景。它通过最小化图像的类内方差或等价地最大化类间方差来选择最佳阈值。这种方法特别适用于图像的二值化处理&#xff0c;能够自动确定一个阈值&#xff0c;将图像中的像素分为黑色和白色两类。 Otsu 方法的原…...

使用van-uploader 的UI组件,结合vue2如何实现图片上传组件的封装

以下是基于 vant-ui&#xff08;适配 Vue2 版本 &#xff09;实现截图中照片上传预览、删除功能&#xff0c;并封装成可复用组件的完整代码&#xff0c;包含样式和逻辑实现&#xff0c;可直接在 Vue2 项目中使用&#xff1a; 1. 封装的图片上传组件 ImageUploader.vue <te…...

DBAPI如何优雅的获取单条数据

API如何优雅的获取单条数据 案例一 对于查询类API&#xff0c;查询的是单条数据&#xff0c;比如根据主键ID查询用户信息&#xff0c;sql如下&#xff1a; select id, name, age from user where id #{id}API默认返回的数据格式是多条的&#xff0c;如下&#xff1a; {&qu…...

IoT/HCIP实验-3/LiteOS操作系统内核实验(任务、内存、信号量、CMSIS..)

文章目录 概述HelloWorld 工程C/C配置编译器主配置Makefile脚本烧录器主配置运行结果程序调用栈 任务管理实验实验结果osal 系统适配层osal_task_create 其他实验实验源码内存管理实验互斥锁实验信号量实验 CMISIS接口实验还是得JlINKCMSIS 简介LiteOS->CMSIS任务间消息交互…...

全志A40i android7.1 调试信息打印串口由uart0改为uart3

一&#xff0c;概述 1. 目的 将调试信息打印串口由uart0改为uart3。 2. 版本信息 Uboot版本&#xff1a;2014.07&#xff1b; Kernel版本&#xff1a;Linux-3.10&#xff1b; 二&#xff0c;Uboot 1. sys_config.fex改动 使能uart3(TX:PH00 RX:PH01)&#xff0c;并让boo…...

laravel8+vue3.0+element-plus搭建方法

创建 laravel8 项目 composer create-project --prefer-dist laravel/laravel laravel8 8.* 安装 laravel/ui composer require laravel/ui 修改 package.json 文件 "devDependencies": {"vue/compiler-sfc": "^3.0.7","axios": …...

关键领域软件测试的突围之路:如何破解安全与效率的平衡难题

在数字化浪潮席卷全球的今天&#xff0c;软件系统已成为国家关键领域的核心战斗力。不同于普通商业软件&#xff0c;这些承载着国家安全使命的软件系统面临着前所未有的质量挑战——如何在确保绝对安全的前提下&#xff0c;实现高效测试与快速迭代&#xff1f;这一命题正考验着…...

SQL慢可能是触发了ring buffer

简介 最近在进行 postgresql 性能排查的时候,发现 PG 在某一个时间并行执行的 SQL 变得特别慢。最后通过监控监观察到并行发起得时间 buffers_alloc 就急速上升,且低水位伴随在整个慢 SQL,一直是 buferIO 的等待事件,此时也没有其他会话的争抢。SQL 虽然不是高效 SQL ,但…...

无人机侦测与反制技术的进展与应用

国家电网无人机侦测与反制技术的进展与应用 引言 随着无人机&#xff08;无人驾驶飞行器&#xff0c;UAV&#xff09;技术的快速发展&#xff0c;其在商业、娱乐和军事领域的广泛应用带来了新的安全挑战。特别是对于关键基础设施如电力系统&#xff0c;无人机的“黑飞”&…...