Linux的重定向与管道

linux的重定向和管道

1. 标准输入与输出

2. 输出重定向

3.输入重定向

4. 进程管道技术

5. tee管道技术

为什么要使用重定向

1.想要保存屏幕中要输出的信息
2.不想看到这个结果,想将他直接丢弃
3.或者要对信息做一个处理,以便于我们观察。

1. 标准输入与输出

执行一个shell命令时通过会有三个过程,对应三个文件。

标准输入  (STDIN, 文件描述符为0) 通常对应终端的键盘,或者通过其他方式文件(比如文件内容)
标准输入   (STDOUT, 文件描述符为1)  默认输出到屏幕。	
输入错误   (STDERR, 文件描述符为2)默认输入出到屏幕
文件名称   (filename, 文件描述符为3+)

进程在标准输入文件中得到输入数据,将正常输出数据输出到标准输出文件,将错误信息输入到错误文件中,进程使用文件描述符(file descriptor )来管理打开这些文件。

//查看一个进程的文件描述符
FD:
ll /proc/pid/fd


cat 命令为例,其功能就是读取命令后面输入的文件,将文件的内容送到标准输出。
如果cat 后面不跟任何东西,就是直接读取标准输入中的内容直接送到标准输出。

[root@hjh ~]# cat
1           //输入 1
1           //打印 1
2
2
3
3



[root@hjh ~]# vim /etc/passwd         
  1 root:x:0:0:root:/root:/bin/bash
  2 bin:x:1:1:bin:/bin:/sbin/nologin
  .......
  //然后crtl + Z
[1]+  Stopped                 vim /etc/passwd
[root@hjh ~]# ps
   PID TTY          TIME CMD
   976 pts/0    00:00:00 bash
  1431 pts/0    00:00:00 vim
  1451 pts/0    00:00:00 ps
[root@hjh ~]# ll /proc/1431/fd
total 0
lrwx------ 1 root root 64 Dec 28 15:10 0 -> /dev/pts/0  //标准输入
lrwx------ 1 root root 64 Dec 28 15:10 1 -> /dev/pts/0    //标准输出
lrwx------ 1 root root 64 Dec 28 15:09 2 -> /dev/pts/0    //错误输入
lrwx------ 1 root root 64 Dec 28 15:10 4 -> /etc/.passwd.swp    //让vim进入sleep状态后产生的交换文件。

/linux下查看标准输入输出设备
[root@hjh ~]# ll /dev/std*
lrwxrwxrwx 1 root root 15 Dec 28 12:01 /dev/stderr -> /proc/self/fd/2
lrwxrwxrwx 1 root root 15 Dec 28 12:01 /dev/stdin -> /proc/self/fd/0
lrwxrwxrwx 1 root root 15 Dec 28 12:01 /dev/stdout -> /proc/self/fd/1



2. 输出重定向

重定向:改变标准输入、标准输出的方向就是重定向

标准覆盖输出重定向        1>
标准追加输出重定向        1>>
错误覆盖输出重定向        2>
错误追加输出重定向        2>>
输入重定向               0<
类型操作符用途
标准覆盖输出重定向>将命令的结果输出到文件中
标准追加输出重定向>>将命令的结果追加到文件中
标准输入重定向<<将命令中接受输入由键盘改为文件

注意: 覆盖输出或者追加输出的文件不存在,会自动建立。

合并文件内容可以这么操作:
比如要合并a文件和b文件到c文件
cat a b > c

;代表命令命令依次执行 (cmd1;cmd2;cmd3)
||代表上一个命令如果返回为false怎么执行下面的命令
&& 上一个命令如果返回为ture则执行下面的命令
& 无论对错


[root@hjh ~]# rpm -q httpd  &> /dev/null || yum install -y httpd
//如果检查未安装httpd服务,则安装http服务

在脚本中使用重定向
在这里插入图片描述

3.输入重定向

标准输入 < 等价 0<

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述


在这里插入图片描述

4. 进程管道技术

管道符号“ | ” 连接左右连个命令,将左侧的命令的标准输出,交给右侧命令的标准输入,
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

5. tee管道技术

在这里插入图片描述

在这里插入图片描述

重定向和tee

[root@hjh ~]# date > 1.txt
[root@hjh ~]# date |tee 1.txt
Wed Jan 15 14:12:59 CST 2020
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值