Linux系统-3单元-Linux中的输入输出管理

一、理解什么是输入输出?

1.什么是IO(Input/Output):输入和输出
IO设备:和电脑通信的设备。
输入设备:麦克风,扫描器,键盘,鼠标等。
输出设备:显示器,打印机,投影仪,耳机,音响等。
2.为什么程序需要IO呢?
IO操作是一个相对的过程,一般的从程序的角度来理解(程序的内存)。
程序需要数据:把数据流入到程序中,输入。
程序需要保存数据:把数据传递给别人,输出。
在这里插入图片描述在这里插入图片描述

  • 字符设备
    字符设备就是显示字符到屏幕上的设备文件

  • stdin
    标准输入
    编号为0
    存放在/proc/xxxx(进程号)/ fd / 0

  • stdout
    标准正确输出
    标号为1
    存放在/proc/xxxx(进程号)/ fd / 1

  • stderr
    标准错误输出
    标号为2
    存放在/proc/xxxx(进程号)/ fd / 2

二、补充知识

1. Linux的 /proc目录介绍

  • linux系统上的/proc目录是一种文件系统,即proc文件系统。与其他常见的文件系统不同,它是一种伪文件系统(虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,用户可以通过这些文件查看有关系统硬件及当前正在运行进程的信息,甚至可以通过更改其中某些文件来改变内核的运行状态。

  • /proc目录中包含许多以数字命名的子目录,这些数字表示系统当前正在运行进程的进程号,里面包含对应进程相关的多个信息文件。
    在这里插入图片描述
    2. 什么是进程和子进程?

  • 进程就是运行起来的程序,程序运行起来需要被加载到内存中。

  • 查看进程的命令
    ps -ef:查看所有的进程信息
    ps -aux:查看进程的详细信息
    top:查看进程信息
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述在这里插入图片描述
    子进程的输入输出文件是独立的。

三、如何管理输入

输入:外界传递到程序中的信息

1. < 输入重定向
例: tr ‘a-z’ ‘A-Z’ < test
把test文件中的内容定向到tr程序中

  • 什么是输入重定向,为什么需要输入重定向?
    在这里插入图片描述所谓输入重定向就是,将默认进程的输入,定向到所需进程的输入内。

在这里插入图片描述
可以优化代码,提高代码的运行效率。

2. << 多行录入
例:passwd <<EOF(字符任意)
westos
westos
EOF (当首字母再次出现表示录入结束)
在这里插入图片描述在这里插入图片描述

四、如何管理输出

1. 输出重定向

  • “>”

  • 2>

  • &>
    find /etc -name passwd > westos.out
    重定向正确输出
    find /etc -name passwd 2> westos.out
    重定向错误输出
    find /etc -name passwd &> westos.out
    重定向所有输出
    注意:重定向管理输出后会覆盖原文件内容
    2. 追加

  • “>>”

  • 2>>

  • &>>
    find /etc -name passwd >> westos.out
    追加正确输出
    find /etc -name passwd 2>> westos.out 追加错误输出
    find /etc -name passwd &>> westos.out 追加所有输出
    注意:追加和重定向功能类似,但是不会覆盖原文件内容
    3. 管道 “|”

把前一条命令的输出编程输入传递到下一条命令进行操作。
在这里插入图片描述

注意:

  • 管道只处理正确输出
  • 2>&1把编号为2的输入转换到编号为1的输出中
  • tee 复制输出到指定位置
  • 管道在一条命令中可以使用多次

四、练习汇总

在普通用户下执行命令完成以下操作:

  • 查找 /etc/ 下的passwd文件屏蔽错误输出
    在这里插入图片描述

  • 查找 /etc/ 下的passswd文件正确输出保存到/tmp目录中的westos.out中,错误输出保存到 /tmp/目录中的westos.err中
    在这里插入图片描述

  • 查找 /etc/下的passwd文件保存所有输出到/tmp目录中的westos.all中并统计输入的行数
    在这里插入图片描述
    使用通道符号,一条指令。
    在这里插入图片描述

  • 查找 /etc/下的passwd文件统计输出行数并显示输出内容
    在这里插入图片描述

  • 转换 /etc/目录中passwd文件中的所有字母为大写并统计文件行数
    在这里插入图片描述

  • 使用脚本非交互模式编写westos.file内容为:
    hello linux
    hello westos
    hello linux
    westos linux is very nice!!
    在这里插入图片描述
    在这里插入图片描述

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值