标准i/o和管道

我听过 我听过     2022-12-24     675

关键词:

1、标准输入和输出
1>程序:指令+数据(指令服务于数据)
  读入数据:input
  输出数据:output

2>三种 I/O 设备
  Linux 给程序提供三种 I/O 设备
    标准输入(STDIN) -0 默认接受来自键盘的输入
    标准输出(STDOUT)-1 默认输出到终端窗口
    标准错误(STDERR) -2 默认输出到终端窗口

3>把 I/O 重定向至文件
  I/O 重定向:改变默认位置
  标准输出的重定向:可以重定向至不同终端设备,也可以重定向至文件

[root@centos7 ~]#ls >output.txt    //>等同于1>

  标准错误的重定向:
    使用:2>
  >>两个大于号追加
  也可以将正确、错误分开重定向至不同的文件:

[root@centos7 ~]#ls /tmp/ /error >1.txt 2>2.txt

  正确错误混合重定向至一个文件:

[root@centos7 ~]#ls /tmp/ /error >f1 2>&1    //等同于ls /tmp/ /error %> f1

  cmd > log.txt 2>&1  //正确错误混合重定向
  cmd 2>&1 > log.txt  //错误显示,正确重定向
  cmd &> log.txt         //正确错误混合重定向
  cmd 2>log.txt >&2   //正确错误混合重定向

  >重定向即‘覆盖‘;>>即追加

[root@centos7 ~]#ls
anaconda-ks.cfg  bin
[root@centos7 ~]#echo "123" > f1    //输出123重定向至f1(f1不存在则创建)
[root@centos7 ~]#cat f1
123
[root@centos7 ~]#set -C    //禁止覆盖
[root@centos7 ~]#echo "456" > f1
-bash: f1: 无法覆盖已存在的文件
[root@centos7 ~]#echo "456" >| f1    //强制覆盖
[root@centos7 ~]#cat f1
456
[root@centos7 ~]#set +C    //取消禁止覆盖

   可以将输出信息、垃圾文件重定向至垃圾桶:/dev/null

2、tr命令:转换和删除字符
  tr [OPTION]…SET1 [SET2]
    -c 取字符集的补集
    -d 删除所有属于第一字符集的字符
    -s 压缩字符
    -t 将第一个字符装换为第二个字符

[root@192 ~]#tr ‘a-z‘ ‘A-Z‘    //将小写转换为大写
afgbsgsgfdfd    //支持标准输入
AFGBSGSGFDFD    //显示标准输出
[root@centos7 ~]#tr ‘abc‘ ‘1234‘ //前少后多
abcdef
123def
[root@centos7 ~]#tr ‘abcd‘ ‘123‘ //前多后少
abcdef
1233ef
[root@centos7 ~]#tr -t ‘abcd‘ ‘123‘ //-t 前多后少
abcdef
123def
[root@centos7 ~]#tr -d abc //删除
abcdef
def

3、单行重定向

[root@centos7 ~]#cat >test1.txt
aaa    //输入aaa后在另一个终端查看,数据已经写入
bbb
^C
[root@centos7 ~]#

 4、多行重定向

[root@centos7 ~]#cat >test2.txt<<EOF
> aaa    //输入aaa,在另一个终端查看数据未写入
> bbb
> EOF    //输入终止词EOF数据写入
[root@centos7 ~]#

 5、管道
  管道(使用符号“|”表示)用来连接命令

[标准输出] 2>&1 | [标准输入]  //使用 2>&1 |,不论正确错误都输出(即|&)

  less:一页一页的查看输入

[root@centos7 ~]#ls -l /etc | less    //查看/etc下的目录文件,分页显示
......

  mail:通过邮件发送输入

echo “test email” | mail -s “test” user@enample.com

  lpr:把输出发送到打印机

echo “test print” | lpr -P printer_name

  管道中-符号

打包再解压(例):tar -cvf - /home | tar -xvf -

 6、实例:运用管道、tr等命令实现1+2+...+100

[root@centos7 ~]#echo 1..100 | tr ‘ ‘ ‘+‘ | bc    //输出1-100,用+替换空格,经管道传递给bc计算器
5050
[root@centos7 ~]#seq -s + 1 100 | bc    //seq输出序列化的东西,输出1-100,-s指定分隔符
5050

 

标准i/o重定向和管道(代码片段)

一级标题标准I/o重定向和管道二级标题三种I/o设备1.标准输入和输出程序:指令+数据读入数据input输出数据output标准输入---0(默认接收来自终端窗口的输入)标准输出---1(默认输出到终端窗口)标准错误---2(默认输出到终端窗口)二级... 查看详情

标准i/o和管道

1:三种I/O设备标准输入(STDIN) -0 默认接受来自键盘的输入标准输出(STDOUT)-1 默认输出到终端窗口标准错误(STDERR)-2 默认输出到终端窗口I/O重定向:改变默认位置 >把正确结果输出到文件2>把错误输出到文件&... 查看详情

标准i/o和管道(代码片段)

标准I/O和管道>重定向操作符>,>>还能创建新文件>覆盖>>追加set-C禁止将内容覆盖已有文件,但可追加(相当于一个开关)>|file强制覆盖set+C允许覆盖1>标准输出重定向到一个文件里面2>标准错误重定向到一个文... 查看详情

第四章标准i/o和管道

笔记整体起始时间:2018年4月2日18:55:25 本章内容       三种I/O设备       把I/O重定向至文件       使用管道 标准输入和输出&nbs 查看详情

标准i/o和管道(代码片段)

3月14日标准I/O和管道1.在linux里每打开一个文件,就会响应开启一个文件描述符(fd)例:打开/var/log/message[[email protected]data]#tail-f/var/log/messagesMar1120:37:36centos7NetworkManager[6246]:<info>[1552307856.6123]dhcp4(ens33 查看详情

初学linux之标准i/o和管道

标准输入和输出程序是由指令+数据组成程序的数据流有三种:输入数据流:<–标准输入(stdin),一般默认是键盘输出数据流:–>标准输出(stdout),一般默认到终端窗口错误输出流:–>标准错误(stderr),一般默认到... 查看详情

标准io和管道

标准I/O和管道##一,标准输入和输出##程序:指令+数据读入数据:Input输出数据:Output打开的文件都有一个fd:filedescriptor(文件描述符)Linux给程序提供三种I/O设备标准输入(STDIN)-0默认接受来自键盘的输入标准输出(STDOUT)-1默... 查看详情

10标准i/o输入输出重定向及管道

标准输入及输出linux提供三种I/O设备标准输入stdin-0默认接受来自终端的输入标准输出stdout-1默认输出到终端窗口标准错误stderr-2默认输出到终端窗口I/O重定向redirectI/O重定向:将默认的输入,输出或错误对应的设备改变,指向新的... 查看详情

linux——标准i/o以及管道

标准I/O以及管道目录一、什么是I/O二、什么是管道三、三种I/O设备四、把I/O输出错误重定向入文件五、tr六、从文件中导入STDIN七、使用管道链接命令八、tee一、什么是I/O    I/O(input/output),即输入/输出端口。&nbs... 查看详情

标准io重定向和管道(代码片段)

标准I/O重定向和管道1标准输入和输出程序:指令+数据读入数据:Input输出数据:Output打开的文件都有一个fd:filedescriptor(文件描述符)Linux给程序提供三种I/O设备标准输入(STDIN)-0默认接受来自终端窗口的输入标准输出(STDOUT)-1... 查看详情

linux学习第五节课-标准i/o和管道

                               Linux学习第五节课--- 查看详情

管道及i/o重定向

...制指令寄存器:CPU暂时存储器系统设定:默认输出设备:标准输出STDOUT1 标准输入设备:标准输入STDIN   0 标准错误输出:STDERR 查看详情

linux下的i/o与管道

阅读目录1.标准输入输出2.输入输出重定向3.tr命令4.管道和tee5.练习 1、标准输入输出   (1)linux给程序提供三种I/O设备      标准输入:(STDIN)   —0  默认接受来自键盘的输... 查看详情

linux基础知识-i/o重定向,管道

系统设定 默认输出设备:标准输出,STDOUT,1 默认输入设备:标准输入,STDIN,0 标准错误输出:STDERR,2 标准输入:键盘标准输出和错误输出:显示器I/O重定向:Linux:>:覆盖输出[[email protected]~]#ll/var/>/tmp/var.out[[e... 查看详情

标准i/o及管道的使用用法

...出数据:Output Linux给程序提供的三种I/O设备  标准输入,-O默认接受来自键盘的输入  标准输出,-1默认输出到终端窗口  标准错误, 查看详情

标准i/o与管道;用户组和权限;文件处理工具及正则表达式总结

四、标准I/O与管道标准输入和输出程序:指令+数据读入数据:Input输出数据:Output?打开的文件都有一个fd:filedescriptor(文件描述符)?Linux给程序提供三种I/O设备?标准输入(STDIN)-0默认接受来自键盘的输入?标准输出(STDOUT)-1默... 查看详情

第五章linux重定向和管道

重定向和管道标准输入和输出:程序:指令+数据读入数据:Input输出数据:Output打开的文件都有一个fd:filedescriptor(文件描述符)Linux给程序提供三种I/O设备标准输入(STDIN)-0默认接受来自键盘的输入标准输出(STDOUT)-1默认输... 查看详情

检测命名管道与 I/O 完成断开连接

...确方法的问题。我们有一个服务器可以创建子进程,并将标准输入/标准输出重定向到命名管道。管道已打开OVERLAPPED。我们已经看到,在客户端发出CreateFile()后 查看详情