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

Linux的输出、输入重定向和管道

目录

 

输出重定向

输入重定向

<

<<

管道操作

 


 

输出重定向

当我输⼊⼀个命令之后,回⻋,命令产⽣了结果,结果默认是输出到屏幕上的。

默认情况,⽆论⼀个命令执⾏正确与否,结果都会默认输出到屏幕上。

在有些情况下,我可能需要保留命令或脚本输出的结果。当作log,用作后面分析。

cat /cat /etc/hosts 产生的结果是正确的,我们可以使用 >>> 见这个命令的正确结果输出到一个文件中

[root@bogon ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
[root@bogon ~]# cat /etc/hosts > /root/file1
[root@bogon ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
[root@bogon ~]# cat file1 
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

cat /etc/hosts > /root/file1 就是将 > 前面命令的结果送到 /root/file1 文件中,而不是屏幕上。

  • >>>:是正确的重定向,能将正确的结果重定向到⽂件中,区别是>会将指向的⽂件内容完全覆盖>>会将重定向的内容追加到指定的⽂件,>就是正确的覆盖,>>就是正确的追加

  • 2>:就是错误的覆盖

  • 2>>:就是错误的追加

  • &>:正确错误都覆盖

  • &>>:正确错误都追加

  • &>> /dev/null/dev/null是⼀个特殊的⽂件,如果将重定向指向这个⽂件,那么就相当于将执⾏结果送到⿊洞中。直接没了,有些时候,我们不想让这个命令的输出显示到任何地⽅,就送到⿊洞中。

输入重定向

可以将交互式命令变成非交互式命令

<

<<<的作用完全不一样

< 可以将<前命令需要执行后产生需要进行交互的内容,通过后面文本中预先写好的内容进行操作,这个看起来很是鸡肋,但是在编写shell脚本是不可缺少的。

为了刚明显的看出,举个实例:

## 编辑一个1.txt文件,在里面写入一些内容
[root@bogon ~]# cat 1.txt 
helld world!!!## 在2.txt写入y,表示yes
[root@bogon ~]# echo y > 2.txt
[root@bogon ~]# cat 2.txt 
y## 编辑3.txt文件,在里面写一些不同于1.txt的内容
[root@bogon ~]# cat 3.txt 
I love the world!!!## 将1.txt文件中的内容覆盖到3.txt文件中,会显示"cp: overwrite '3.txt'? ",只需要输入y,就能将1.txt的内容已经覆盖3.txt文件
[root@bogon ~]# cp 1.txt 3.txt
cp: overwrite '3.txt'? y
[root@bogon ~]# cat 3.txt 
helld world!!!## 重新对3.txt进行编写
[root@bogon ~]# cat 3.txt 
I love the world!!!## 如果使用输入重定向,就可以不用手动输入y,可以将2.txt中的内容,进行输出,直接完成结果
[root@bogon ~]# cp 1.txt 3.txt < 2.txt 
cp: overwrite '3.txt'? [root@bogon ~]# cat 3.txt 
helld world!!!

<<

一般是和cat进行连用

当执行一个单个的cat时候,会进入到交互界面,退出时执行使用 Ctrl+C 进行终止,但是使用 << 就可以手动进行终止

<<后面写入的内容,会作为结束的标志,进行退出

[root@bogon ~]# cat  << qqq
> nihao 
> hello 
> aaaa 
> adsad 
> qqq
nihao 
hello 
aaaa 
adsad 
[root@bogon ~]# 

<<后面些qqq之后,在cat界面,输入qqq之后,就会执行出现在前方写入的内容,紧接着就会退出cat的交互式界面

这种方式多使用在脚本编写中,可以将内容输入到指定的文件中,一般情况下<<之后写的是END,这里便于理解,就随便写了一串字母

 

[root@bogon ~]# cat > 4.txt << ooo
> aaaa
> bbbb
> ccccasd
> aasdexffd
> ooo
[root@bogon ~]# cat 4.txt 
aaaa
bbbb
ccccasd
aasdexffd
[root@bogon ~]# 

管道操作

管道的符号是 |

⽂件管理⾥⾯⽐较重要的内容

管道左边的命令会产⽣输出结果,输出结果经过了管道之后,就会变成输⼊。

管道右边的命令,总是接收输⼊的命令

[root@bogon ~]# cat hello.txt 
How are you?
what are you doing?
##  查看hello.txt中的内容,并把所有字母转变为大写
[root@bogon ~]# cat hello.txt | tr 'a-z' 'A-Z'
HOW ARE YOU?
WHAT ARE YOU DOING?
## 转变为大写之后,输出,并保存到hello2.txt文件中
[root@bogon ~]# cat hello.txt | tr 'a-z' 'A-Z' | tee hello2.txt
HOW ARE YOU?
WHAT ARE YOU DOING?
[root@bogon ~]# cat hello2.txt 
HOW ARE YOU?
WHAT ARE YOU DOING?
## 查找hello2.txt中有HOW的内容
[root@bogon ~]# cat hello2.txt | grep HOW
HOW ARE YOU?
## 显示有HOW内容的行数
[root@bogon ~]# cat hello2.txt | grep HOW | wc -l
1

 

 

 

 

 

相关文章:

Linux的输出、输入重定向和管道

目录 输出重定向 输入重定向 < << 管道操作 输出重定向 当我输⼊⼀个命令之后&#xff0c;回⻋&#xff0c;命令产⽣了结果&#xff0c;结果默认是输出到屏幕上的。 默认情况&#xff0c;⽆论⼀个命令执⾏正确与否&#xff0c;结果都会默认输出到屏幕上。 在有…...

java-新手笔记(枚举)

枚举&#xff08;Enumeration&#xff09;是一种特殊的类&#xff0c;用于表示固定数量的常量值。 枚举类型使得代码更加清晰&#xff0c;易于维护&#xff0c;同时也增加了类型安全。 这边使用一个枚举封装重要数据 enum Day {SUNDAY,MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FR…...

Centos7 安装postgresql14后无法连接数据库

1、数据库服务器允许外部访问5432端口。 2、postgresql.conf 3、pg_hba.conf a、制定某个IP&#xff08;192.168.0.107&#xff09;访问 b、指定ip段访问 允许10.1.1.0~10.1.1.255网段登录数据库 host all all 10.1.1.0/24 trust c、指定全网访问 host a…...

GaussDB(DWS)运维利刃:TopSQL工具解析

在生产环境中&#xff0c;难免会面临查询语句出现异常中断、阻塞时间长等突发问题&#xff0c;如果没能及时记录信息&#xff0c;事后就需要投入更多的人力及时间成本进行问题的定位和解决&#xff0c;有时还无法定位到错误出现的地方。在本期《GaussDB(DWS)运维利刃&#xff1…...

信息安全、网络安全以及数据安全三者之间的区别

随着信息技术的飞速发展&#xff0c;网络安全、信息安全、数据安全等词汇在平时出现的频率越来越高&#xff0c;尤其是数据安全&#xff0c;是大家都关心的一个重要话题。事实上&#xff0c;有很多人对网络安全、信息安全、数据安全的概念是区分不清的&#xff0c;下面由我帮大…...

初阶数据结构之---堆的应用(堆排序和topk问题)

引言 上篇博客讲到了堆是什么&#xff0c;以及堆的基本创建和实现&#xff0c;这次我们再来对堆这个数据结构更进一步的深入&#xff0c;将讲到的内容包括&#xff1a;向下调整建堆&#xff0c;建堆的复杂度计算&#xff0c;堆排序和topk问题。话不多说&#xff0c;开启我们今…...

架构师面试100问?

面试架构师时&#xff0c;需要考察广泛的知识领域&#xff0c;包括技术、架构设计、团队管理、沟通能力等方面。以下是一些可能的面试问题&#xff0c;涵盖了多个方面问题&#xff1a; 介绍一下你的技术背景和经验。你在之前的项目中扮演过哪些角色&#xff1f;你对微服务架构…...

visualization_msgs::Marker 的pose设置,map坐标系的3d box显示问题

3D框显示 3D框显示可以使用visualization_msgs::Marker::LINE_LIST或者LINE_STRIP&#xff0c;前者使用方法需要指明线的两个端点&#xff0c;后者自动连接相邻两个点。 姿态问题 网上看了一些&#xff0c;没有涉及到朝向设置&#xff0c;Pose.orientation默认构造为4个0 至…...

c语言:输入定制

输入定制 任务描述 输入数据是一大串数字&#xff0c;要求读取五个数&#xff0c;但要求你只处理其中的第1、3、5个数&#xff0c;输出这三个数的和。第一个数只读1位数&#xff0c;第二个数只读2位数&#xff0c;第三个数只读3位数&#xff0c;第四个数只读4位数&#xff0c…...

Python批量提取Word文档表格数据

在大数据处理与信息抽取领域中&#xff0c;Word文档是各类机构和个人普遍采用的一种信息存储格式&#xff0c;其中包含了大量的结构化和半结构化数据&#xff0c;如各类报告、调查问卷结果、项目计划等。这些文档中的表格往往承载了关键的数据信息&#xff0c;如统计数据、项目…...

【Qt】四种绘图设备详细使用

绘图设备有4个: 绘图设备是指继承QPainterDevice的子类—QPixmap QImage QPicture QBitmap(黑白图片) QBitmap——父类QPixmapQPixmap图片类&#xff0c;主要用来显示&#xff0c;它针对于显示器显示做了特殊优化&#xff0c;依赖于平台的&#xff0c;只能在主线程中使用(UI线…...

区块链web3智能合约Solidity学习资源整理

简单说明&#xff1a; Solidity 是一门面向合约的、为实现智能合约而创建的高级编程语言。这门语言受到了 C&#xff0c;Python 和 Javascript 语言的影响&#xff0c;设计的目的是能在以太坊虚拟机&#xff08;EVM&#xff09;上运行。 Solidity中文官方文档&#xff1a; ht…...

python学习、开发实用文档分享

今天给大家分享两个好用的关于python django框架使用的在线文档 Django中文在线文档: Django 文档 | Django 文档 | Django django rest framework 文档 1 - Serialization - Django REST framework中文站点 有开发和学习中遇到不会的, 或者需要学习的技能点直接去上面两个…...

Docker compose部署redis哨兵集群

Docker compose部署redis哨兵集群 安装Docker和docker-compose准备docker-compose文件redis exporter本地部署准备Redis配置文件ACL用户权限配置Linux内核参数优化启停Redis实例主从复制配置 环境准备&#xff1a; IP版本角色172.x.x.11RHEL 7.9master172.x.x.12RHEL 7.9repli…...

Python 导入Excel三维坐标数据 生成三维曲面地形图(面) 4-1、线条平滑曲面(原始图形)

环境和包: 环境 python:python-3.12.0-amd64包: matplotlib 3.8.2 pandas 2.1.4 openpyxl 3.1.2 scipy 1.12.0 代码: import pandas as pd import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D from scipy.interpolate import griddata fro…...

有趣的数学 毕达哥拉斯定理

随便找个学生&#xff0c;让他举出一位著名的数学家——如果他能想到的话&#xff0c;他往往会选择毕达哥拉斯。如果不是&#xff0c;也许他想到的是阿基米德。哪怕是杰出的艾萨克牛顿&#xff0c;在两位古代世界的巨星面前也只能叨陪末座了。阿基米德是一位思想巨人&#xff0…...

理解记忆相关

foreach循环 在 Java 中&#xff0c;foreach 循环&#xff08;也称为增强型 for 循环&#xff09;是一种简洁的语法&#xff0c;用于遍历数组或集合&#xff08;如 List、Set、Map 等&#xff09;。以下是 foreach 循环的基本用法&#xff1a; 遍历数组&#xff1a; String[] …...

零基础学习JS--基础篇--使用对象

JavaScript 的设计是一个简单的基于对象的范式。一个对象就是一系列属性的集合&#xff0c;一个属性包含一个名和一个值。一个属性的值可以是函数&#xff0c;这种情况下属性也被称为方法。除了浏览器里面预定义的那些对象之外&#xff0c;你也可以定义你自己的对象。本章节讲述…...

DHCP中继实验(华为)

思科设备参考&#xff1a;DHCP中继实验&#xff08;思科&#xff09; 一&#xff0c;技术简介 DHCP中继&#xff0c;可以实现在不同子网和物理网段之间处理和转发DHCP信息的功能。如果DHCP客户机与DHCP服务器在同一个物理网段&#xff0c;则客户机可以正确地获得动态分配的IP…...

【数据结构】初识二叉搜索树(Binary Search Tree)

文章目录 1. 二叉搜索树的概念2. 二叉搜索树的操作1.1 二叉搜索树的查找1.2 二叉搜索树的插入1.3 二叉搜索树的删除 1. 二叉搜索树的概念 二叉搜索树又称二叉排序树&#xff0c;它可能是一棵空树&#xff0c;也可能是具有以下性质的二叉树&#xff1a; 若它的左子树不为空&am…...

css实现圆环展示百分比,根据值动态展示所占比例

代码如下 <view class""><view class"circle-chart"><view v-if"!!num" class"pie-item" :style"{background: conic-gradient(var(--one-color) 0%,#E9E6F1 ${num}%),}"></view><view v-else …...

srs linux

下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935&#xff0c;SRS管理页面端口是8080&#xff0c;可…...

【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验

系列回顾&#xff1a; 在上一篇中&#xff0c;我们成功地为应用集成了数据库&#xff0c;并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了&#xff01;但是&#xff0c;如果你仔细审视那些 API&#xff0c;会发现它们还很“粗糙”&#xff1a;有…...

Axios请求超时重发机制

Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式&#xff1a; 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...

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

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

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

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

LeetCode - 199. 二叉树的右视图

题目 199. 二叉树的右视图 - 力扣&#xff08;LeetCode&#xff09; 思路 右视图是指从树的右侧看&#xff0c;对于每一层&#xff0c;只能看到该层最右边的节点。实现思路是&#xff1a; 使用深度优先搜索(DFS)按照"根-右-左"的顺序遍历树记录每个节点的深度对于…...

Golang——6、指针和结构体

指针和结构体 1、指针1.1、指针地址和指针类型1.2、指针取值1.3、new和make 2、结构体2.1、type关键字的使用2.2、结构体的定义和初始化2.3、结构体方法和接收者2.4、给任意类型添加方法2.5、结构体的匿名字段2.6、嵌套结构体2.7、嵌套匿名结构体2.8、结构体的继承 3、结构体与…...

在RK3588上搭建ROS1环境:创建节点与数据可视化实战指南

在RK3588上搭建ROS1环境:创建节点与数据可视化实战指南 背景介绍完整操作步骤1. 创建Docker容器环境2. 验证GUI显示功能3. 安装ROS Noetic4. 配置环境变量5. 创建ROS节点(小球运动模拟)6. 配置RVIZ默认视图7. 创建启动脚本8. 运行可视化系统效果展示与交互技术解析ROS节点通…...

深入解析 ReentrantLock:原理、公平锁与非公平锁的较量

ReentrantLock 是 Java 中 java.util.concurrent.locks 包下的一个重要类,用于实现线程同步,支持可重入性,并且可以选择公平锁或非公平锁的实现方式。下面将详细介绍 ReentrantLock 的实现原理以及公平锁和非公平锁的区别。 ReentrantLock 实现原理 基本架构 ReentrantLo…...