七、标准IO和管道

这篇具有很好参考价值的文章主要介绍了七、标准IO和管道。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

七、标准IO和管道

  • 重定向I/O,为什么要进行重定向?可以帮我们解决什么问题?

  • 使用管道符连接命令

1、I/O输入输出

显示器是Linux系统中创建默认的输出设备

I/O:input和output

  • 重定向:将原本标准设备,替换为我们想要的内容

    目的:

    1. 在shell脚本中对脚本输出的内容进行处理,屏蔽不相关的输出信息

    2. 用来清空文件或是向文件里面写入内容,在字符界面将所需的内容保存到指定的文件

    • 输出重定向:将原本输出屏幕的内容输出到文件

      类型:

      • 标准正确输出:>:将屏幕上正确的输出重定向到文件

      • 标准错误输出:2>:将屏幕上错误的输出重定向到文件

      • 全部输出:&>:正确输出和错误输出

        • 重定向覆盖到文件:echo >

        • 重定向追加到文件:echo >>

      将所有不想要的输出内容,无需重定向到文件,而是重定向到 /dev/null(空设备)这个设备

      /dev/null:Linux黑洞文件;垃圾桶;空设备;所有重定向到该文件的内容都不会被保存

 1 [root@example tmp]# id lisi > /tmp/lisi.txt
 2 id: ‘lisi’: no such user
 3 [root@example tmp]# ls 
 4 lisi.txt  zhangsan  zhangsan.txt
 5 [root@example tmp]# id lisi 2> /tmp/lisi.txt 
 6 [root@example tmp]# cat lisi.txt 
 7 id: ‘lisi’: no such user
 8 
 9 [root@example tmp]# id wangwu > /tmp/wangwu.txt 2> /tmp/err.txt
10 [root@example tmp]# cat err.txt 
11 id: ‘wangwu’: no such user
12 
13 [root@example tmp]# id lisi &> /tmp/ok.txt
14 [root@example tmp]# cat ok.txt 
15 id: ‘lisi’: no such user
16 
17 [root@example tmp]# id lisi &> lisi.txt
18 [root@example tmp]# echo hello zhangsan >> lisi.txt 
19 [root@example tmp]# cat lisi.txt 
20 id: ‘lisi’: no such user
21 hello zhangsan
  • 管道符 “ | ”

管道符的出现就是为了更好的处理Linux指令(称之为命令的连接符号)

  1. command 1| command 2:将command 1 输出的结果(标准/正确输出)作为command 2输入的参数

  2. command 1| tee 文件名 | command 3:同时将输出保存到文件和在显示器上显示(同时查看和记录)

 1 [root@example ~]# id zhangsan | grep zhangsan
 2 uid=1001(zhangsan) gid=1001(zhangsan) groups=1001(zhangsan)
 3 [root@example ~]# cat /etc/passwd | grep root
 4 root:x:0:0:root:/root:/bin/bash
 5 operator:x:11:0:operator:/root:/sbin/nologin
 6 [zhangsan@example ~]$ find / -name selinux | tee ok.txt | cat > err.txt
 7 [zhangsan@example ~]$ cat err.txt 
 8 /sys/fs/selinux
 9 /etc/sysconfig/selinux
10 /etc/selinux
  • 重定向输入:

  1. 使用文件作为输入源(tr字符转换): < 标准重定向输入

  2. 模拟从键盘接收多行输入:–stdin(接受标准输入)

  3. 写入配置文件(在脚本中自动生成配置文件): <<

    cat >> 文件路径 << EOF(自定义任意字符)

    文件内容……

    EOF(结束符号)

 1 [root@example tmp]# passwd zhangsan < pwd.txt 
 2 Changing password for user zhangsan.
 3 New password: BAD PASSWORD: The password is shorter than 8 characters
 4 Retype new password: passwd: all authentication tokens updated successfully.
 5 [root@example tmp]# echo redhat | passwd --stdin zhangsan 
 6 Changing password for user zhangsan.
 7 passwd: all authentication tokens updated successfully.
 8 [root@example tmp]# cat >> err.txt <<EOF
 9 > hello rhce
10 > hello wuhan
11 > EOF
12 [root@example tmp]# cat err.txt 
13 hello rhce
14 hello wuhan

 文章来源地址https://www.toymoban.com/news/detail-748321.html

到了这里,关于七、标准IO和管道的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 单元测试优化:为什么要对程序进行测试?测试有什么好处?

    单元测试 (Unit Testing)又称为模块测试, 是针对程序模块(软件设计的最小单位)来进行正确性检验的测试工作。 程序单元是应用的最小可测试部件。简单来说,就是测试数据的稳定性是否达到程序的预期。 我们日常开发时可能在不经意间写错,如果等到最后阶段去检验项

    2024年02月13日
    浏览(46)
  • Doris架构包含哪些技术?为什么进行技术整合?

    Doris主要整合了Google Mesa(数据模型),Apache Impala(MPP Query Engine)和Apache ORCFile (存储格式,编码和压缩)的技术。 为什么要将这三种技术整合? Mesa可以满足我们许多存储需求的需求,但是Mesa本身不提供SQL查询引擎。 Impala是一个非常好的MPP SQL查询引擎,但是缺少完美的分布式存储引

    2024年02月11日
    浏览(82)
  • URL编码揭秘:为什么要进行URL编码?

    URL(Uniform Resource Locator,统一资源定位符)是互联网上资源地址的唯一标识符。在网络请求和数据传输过程中,URL编码起着至关重要的作用。 URL编码解码 | 一个覆盖广泛主题工具的高效在线平台(amd794.com) https://amd794.com/urlencordec 一、URL编码的起源与发展 URL编码起源于1960年代

    2024年02月03日
    浏览(42)
  • 七、标准IO和管道

    七、标准IO和管道 重定向I/O,为什么要进行重定向?可以帮我们解决什么问题? 使用管道符连接命令 1、I/O输入输出 显示器是Linux系统中创建默认的输出设备 I/O:input和output 重定向:将原本标准设备,替换为我们想要的内容 目的: 在shell脚本中对脚本输出的内容进行处理,

    2024年02月05日
    浏览(62)
  • Pycharm这个更新索引是个什么操作,为什么每次启动,都会进行?

    点击上方“ Python爬虫与数据挖掘 ”,进行关注 回复“ 书籍 ”即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 九重城阙烟尘生,千乘万骑西南行。 大家好,我是皮皮。 一、前言 前几天在Python最强王者交流群【吴超建】问了一个 Pycharm 操作的问题,这里拿出来给大家分

    2024年02月01日
    浏览(60)
  • TCP为什么需要进行三次握手深入解析

    首先简单介绍一下TCP三次握手 在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。 第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认; 第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己

    2024年02月05日
    浏览(47)
  • 白话理解TCP为什么一定要进行三次握手

    首先简单介绍一下TCP三次握手     在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。 第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认; 第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同

    2024年02月08日
    浏览(51)
  • 【机器学习300问】12、为什么要进行特征归一化?

            当线性回归模型的特征量变多之后,会出现不同的特征量,然而对于那些同是数值型的特征量为什么要做归一化处理呢?         使得不同指标之间具有可比性。例如,分析一个人的身高和体重对健康的影响,如果使用米(m)和于克(kg)作为单位,那么身高特征会在

    2024年01月22日
    浏览(40)
  • 如何对宏进行数字签名,为什么它很重要

    宏是现代计算机用户可用的最强大的工具之一,但它们也带有独特的风险。了解如何以数字方式对宏进行签名,对于确保可以安全可靠地使用宏非常重要。数字签名可确保宏代码来自可信来源,并且自创建以来未被修改过。 在本指南中,我们将解释如何对宏进行数字签名,以

    2024年02月07日
    浏览(75)
  • 一起来看看元宇宙为什么有必要与IPFS进行精确组合?

    基本上,元宇宙的所有产品都将是NFT,但这将导致越来越多的NFT数据,这也是元宇宙寻求突破的地方。 重要的是,数据必须永久存储,数据不能被操作以确保唯一性。也许你已经猜到了,在区块链中有满足这些要求的,即IPFS分布式存储。 Filecoin是一个激励层,运行在IPFS和区

    2024年02月10日
    浏览(68)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包