重定向与管道(基础篇)

重定向

1.释义:

Linux重定向是指修改原来默认的一些东西,对原来系统命令的默认执行方式进行改变,比如说简单的我不想看到在显示器的输出而是希望输出到某一文件中就可以通过Linux重定向来进行这项工作。

2.简介

file descriptors ,FD,文件描述符
进程使用文件描述符来管理打开的文件

类型数字英文缩写
标准输入0standard inputstdin
标准输出1standard outputstdout
标准错误2standard errorstdeer

通过我们非常熟悉的VIM程序。来观察一个进程的FD信息。
1.通过一个终端,打开一个文本。
vim 1.txt
2.通过另一个终端,查询文本程序的进程号
ps aux| grep vim

在这里插入图片描述
通常在 /proc/PID/fd 就能看到文件的FD调用情况。
[root@localhost ~]# ls /proc/3203/fd
出现0 1 2 4四个数字

在这里插入图片描述

再使用ll查看
[root@localhost ~]# ll /proc/5606/fd

在这里插入图片描述
我们可以了解到
看到的0124就是FD,程序通过描述符访问文件,
可以是常规文件,也可以是设备文件

3.输出重定向及综合案例

由上可知
FD1为标准输出
1>file1.txt
将标准输出结果输入到file1.txt,多次使用只显示最终结果(文件不存在自动创建文件)

在这里插入图片描述

1>>file1.txt
将标准输出结果输入到file1.txt,多次使用追加结果,不覆盖之前的结果(文件不存在自动创建文件)

在这里插入图片描述

FD2为标准错误,仅当某条命令产生错误时,才会有错误输出(正确不显示)
如下图,查看一个根本不存在的文件
*1>file1.txt
将标准错误结果输入到file1.txt,多次使用只显示最终结果(文件不存在自动创建文件)

在这里插入图片描述

1>>file1.txt
将标准错误结果输入到file1.txt,多次使用追加结果,不覆盖之前的结果(文件不存在自动创建文件)
*
在这里插入图片描述
将错误与正确结果输入到一个文件里面
在这里插入图片描述

4.输入重定向发送邮件

编写邮件
[root@qianfeng ~]# mail -s “ssss” alice <word.txt
111
222
333
.
word.txt

*mail*电子邮件
*-s*标题
*ssssssss*标题内容
*alice*邮件接收人
*.*结束符号

在这里插入图片描述
切换用户查看邮件
仅输入mail
在这里插入图片描述
只看这一行即可在这里插入图片描述
一条新消息由root在什么时间发出,标题是你好
删除的是可以直接附加文件

管道

1.释义:

管道是一种最基本的IPC机制,作用于有血缘关系的进程之间,完成数据传递。调用pipe系统函数即可创建一个管道。有如下特质:

  1. 其本质是一个伪文件(实为内核缓冲区)

  2. 由两个文件描述符引用,一个表示读端,一个表示写端。

  3. 规定数据从管道的写端流入管道,从读端流出。

管道的原理: 管道实为内核使用环形队列机制,借助内核缓冲区(4k)实现。
管道命令可以将多条命令组合起来,一次性完成复杂的处理任务。

2.进程管道 Piping

command1 | command2 |command3 |…
指令1的标准输出
作为指令2的标准输入
指令2的标准输出
作为指令3的标准输入…
在这里插入图片描述

3.tee管道

三通管道,即交给另一个程序处理。又保存一份副本
在这里插入图片描述
虽然只显示五行,但在9.txt中已经有了passwd二点全部数据

4.参数传递 Xargs

传递cp rm一些特殊命令
建立五个文件
在这里插入图片描述
确认文件是否建立
在这里插入图片描述
建立一个诉求文件
在这里插入图片描述
执行文件
在这里插入图片描述
查看结果
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值