首页 > 其他分享 >七、标准IO和管道

七、标准IO和管道

时间:2023-12-04 22:33:36浏览次数:30  
标签:tmp lisi zhangsan 标准 管道 IO txt root example

七、标准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

 

标签:tmp,lisi,zhangsan,标准,管道,IO,txt,root,example
From: https://www.cnblogs.com/Ju-zhi/p/17876186.html

相关文章

  • C#中内置的泛型委托Func与Action
     简介从C#3.0起很少需要自己声明委托。System.Func是一个泛型委托,它可以表示带有返回值的方法。它可以接受一个到多个输入参数,并返回一个指定类型的结果。System.Func委托的最后一个类型参数表示方法的返回值类型。而System.Action系列代表返回void的方法。Func委托说明F......
  • 2023ICCV_FSI Frequency and Spatial Interactive Learning for Image Restoration in
     三.Network 1.  2.FLB:没看懂是怎么分离的水平和竖直方向 3.SLB:每一层保留一半的通道特征用于细化,其余的在特征重构后输出(没看懂)。Multi-distillationNetwork 超分辨网络的Multi-distillationNetwork(2019ACMMM_LightweightImageSuper-ResolutionwithIn......
  • Django和sqlite3版本不匹配解决 Django-django.core.exceptions.ImproperlyConfigured
    1.修改django源文件配置2升级sqlite下载sqlite3wgethttps://www.sqlite.org/2019/sqlite-autoconf-3270200.tar.gz 解压并安装sqlite3tar-zxvfsqlite-autoconf-3270200.tar.gzcdsqlite-autoconf-3270200./configure--prefix=/usr/localmake&&makeinstall......
  • [Educational Codeforces Round 159 (Rated for Div. 2)](https://codeforces.com/con
    EducationalCodeforcesRound159(RatedforDiv.2)好困,差点没打A-BinaryImbalance#include<bits/stdc++.h>#defineintlonglong#defineendl'\n'usingnamespacestd;voidsolve(){ strings; intn; cin>>n; cin>>s; if(n==......
  • Theory Of Computation
    LN1AlphabetsandStringsAnalphabetisasetofsymbolsString:asequenceofsymbolsfromsomealphabetLanguage:asetofstringsUnarynumbersalphabet\(\Sigma=\{1\}\)Unarynumber:111111...StringOperationsConcatenation\(wv\)Reverse......
  • CF1163B2 Cat Party (Hard Edition) 题解
    题意:思路:对于满足条件的区间$[1,x]$,有如下三种情况:$1$.所有元素出现次数都为$1$;$2$.除了一个元素出现次数为$1$之外,其余元素出现次数都相等;$3$.除了一个出现次数比其他数的出现次数多$1$的元素之外,其余元素出现次数都相等。在线处理:设$cnt_i......
  • 为什么 Android 和 iOS 下面代码运行结果不同?
    Android和iOS是两个不同的操作系统,它们在底层实现和功能上存在差异。这些差异可能导致相同的代码在Android和iOS上产生不同的运行结果。以下是一些可能引起差异的因素:硬件和体系结构:Android和iOS运行在不同的硬件上,每种硬件都有自己的特性和限制。这些差异可能会影响代码的运行结果......
  • Educational Codeforces Round 158 (Rated for Div. 2)
    EducationalCodeforcesRound158(RatedforDiv.2)AEDU的题总是感觉写起来怪怪的#include<bits/stdc++.h>#defineintlonglong#defineendl'\n'usingnamespacestd;inta[101];voidsolve(){intn,x;cin>>n>>x;intans=0;......
  • C++_线程池代码看C++类-模板-标准库
    C++线程池线程池的组成部分:线程池管理器(ThreadPoolManager):用于创建并管理线程池工作线程(WorkThread):线程池中线程任务接口(Task):每个任务必须实现的接口,以供工作线程调度任务的执行。任务队列:用于存放没有处理的任务。提供一种缓冲机制。 通过新......
  • Visio 2013产品密钥
    因为最近需要用到 就整理了下。 在安装时可以使用以下密钥:    2NYF6-QG2CY-9F8XC-GWMBW-29VV8FJ2N7-W8TXC-JB8KB-DCQ7Q-7T7V3VXX6C-DN3HQ-3CRXG-RF4KT-YG7V3B3C7Q-D6NH2-2VRFW-HHWDG-FVQB6TCWJK-N6GFH-82BP9-HV7YQ-T6KMQKD8CP-DN968-RGQ......