I/O重定向与管道

发布时间 2023-11-01 16:54:55作者: pwdsector

什么是I/O重定向?

I/O重定向是一个过程,这个过程捕捉一个文件、命令、程序或脚本,甚至代码块的输出,然后把捕捉到的输出作为输入发送给另外一个文件、命令、程序或脚本。

知道这些我们就可以正式进入学习了

在 root命令下输入"tty"

 其中/dev/pts/0中0表示当前处于那个终端再打开终端可以看到为/dev/pts/1

 

一个案例分析,使用date来认识I/O重定向

 

 其中date 是可以显示当前时间,在date命令后面加">"并指向date.txt文件,那么结果就会写入date.txt文件。

文件描述符:

就是内核为了高效管理这些已经被打开的文件所创建的索引,其是一个非负整数(通常是小整数),用于指代被打开的文件,所有执行I/O操作的系统调用都通过文件描述符来实现。同时还规定系统刚刚启动的时候,0是标准输入,1是标准输出,2是标准错误。这意味着如果此时去打开一个新的文件,它的文件描述符会是3,再打开一个文件文件描述符就是4......

 

 明白以上内容我们可以了解输出重定向了和输入重定向

输出重定向

命令行的输出重定向和错误重定向很简单,在命令参数后直接使用“>>”(输出重定向)或“2>”(错误重定向)即可。

输出重定向可以分为正确输出和错误输出

正确输出:1>,1>>等价于>,>>,1可以省略

错误输出:2>,2>>

其中,“>"表示覆盖,”>>"表示追加。

 其中第三行第四行可以跳过(因为我自己输入的问题,导致错误)。

接下来具体实例理解

 

 

 输入重定向

具体案例:

使用grep命令过滤root,没有改变输入端默认为键盘,接着输入重定向到/etc/passwd.

 使用dd命令从/dev/zero中读取数据并写入到file01.txt文件,每次1MiB,一共两次

使用输入重定向与输出重定向的方式也可以实现相同的功能

使用at命令创建一个计划任务,从现在开始5分钟后创建用户Linux,可以使用crtl+d结束

 如果同时创建多个用户,此方法十分繁琐,使用输入重定向更简单方便

 今天暂时学到这里。休息一下哈哈哈哈