重定向和管道

1.Linux给程序提供三种I/O设备

标准输入-0    默认接受来自键盘的输入

标准输出-1    默认输出到终端窗口

标准错误-2    默认输出到终端窗口

重定向和管道

dev下有个fd设备,打开的文件都有一个fdfile dexcriptor 文件描述符

I/O重定向:改变默认位置

 

2.把输出和错误重新定向到文件

> 把正确输出重定向出去

2> 把错误输出重定向出去

>  2>&1 (把错误结果转换成正确结果) &>  把所有输出重定向到文件

重定向和管道

>  相当于touch 可以创建文件   echo abc > filename 此时>是覆盖的意思

>>追加

>| filename 强制覆盖

set -C禁止将内容覆盖已有文件,但可以追加

set +c 允许覆盖

&>把所有输出重定向到文件

重定向和管道

():合并多个程序的输出(注意命令之间用;来分隔)

 重定向和管道

3.tr  转换和删除字符

tr -s ” 多个中(重复的元素)取一个

重定向和管道

tr -d ” 删除 tr -d abc < /etc/fstab  删除fstab文件中所有abc

重定向和管道

tr -t ” 没有转换的对象就不转换

重定向和管道

tr -c “取字符的补集(和t s结合使用)

tr -cs”

重定向和管道

tr -cd “反向删除

重定向和管道

 

重定向和管道

 tr ‘1-9’ ‘a-j’ < test 这是将指定文件test中的‘1-9’改为‘a-j’   test中的内容不变

<输入重定向



重定向和管道

abc转换成edf后,后面没有要转换的东西,所以就不转换了;当abc转换成edf后,还要转换d,但是没有转换的对象,此时转换的对象应是上一个字母转换的对象,所以将d转换成f


对应的字符:

\NNN  用八进制值NNN字符(1到3八进制数字)

\\ 反斜杠

\b 退格

\n 新行

\r 回车

重定向和管道

 

重定向和管道

命令显示的内容可以导入一个文件中

 

重定向和管道

-d和-s的效果  -d不保留回车   -s保留一个回车

 

重定向和管道

cat > listfile < filename 单纯敲cat > listfile 就会等待你输入 你可以手动输入,也可以使用文件导入 在后面加< 跟个文件

 

重定向和管道 

<<后面跟的是终止词(命令从键盘多行重导入), 敲入 cat > test << ?? 就会等待你输入,当输入??时,就会终止输入,此时输入完毕。


4.管道 | 将正确结果重定向给下一条命令

命令1 | 命令2 | 命令3….将命令1的输出发送到命令2的输入,再将命令2的输出发送到命令3的输入….

错误的输出不能通过管道的发送,需要通过2>&1 | |& 来实现

2>&1 | |&  全部结果重定向

组合多种工具的功能

ls | tr ‘a-z’ ‘A-Z’

mail发邮件 echo 123456 | mail -s “nihao” magedu

ls -l /etc/passwd | less  一页一页的查看输入

  

5.mail 发邮件

格式:mail -s  “nihao”  magedu    “nihao “是主题 magedu是你要发送邮件的对象

重定向和管道

敲完mail -s  “nihao”  magedu 就会让你输入发送邮件的内容  敲 .就可以结束输入了   

mail -s “nihao”  magedu < /etc/passwd (很少使用 cat /etc/passwd | mail  -s “nihao”  magedu(大多数使用)这种格式是直接将文件导入,不用输入

 

6.tee

格式:命令1 | tee [-a]filename | 命令2   把命令1显示的内容保存在文件中,作为命令2的输入

-a 是追加  若不加-a,当这个文件存在时就会覆盖,文件不存在时,直接创建该文件并保存。若加-a,当文件存在时就会追加。

重定向和管道

 

本次博客的内容就到这里,欢迎大家指点。 

 

 

 

原创文章,作者:fuming,如若转载,请注明出处:http://www.178linux.com/81894

(0)
fumingfuming
上一篇 2017-07-20 17:10
下一篇 2017-07-20 18:27

相关推荐

  • 8.9作业

    删除/etc/grub2.conf文件中所有以空白开头的行,行首的空白字符 [root@English6 ~]# sed "s@^[[:space:]]\+@@" /etc/grub.conf  # grub.conf generated by an…

    Linux干货 2016-08-11
  • 马哥教育网络班20期+第三周博客作业

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一用户登录多次,则只显示一次即可。 [root@llww3317 ~]# who    #显示当前用户登录信息 root     tty1    &nbsp…

    Linux干货 2016-06-26
  • 马哥教育网络班22期+第4周课程练习 忍者乱太郎喻成

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。   cp -rp /etc/skel /home/tuser1   chmod -R 700 /home/tuser1 2、…

    Linux干货 2016-10-09
  • N25第四周博客作业

    第四周博客作业 1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 2、编辑/etc/group文件,添加组hadoop。      3、手动编辑/etc/passwd文件新增一行,添加用户hadoop,其基本组ID为hadoop组的i…

    Linux干货 2016-12-19
  • lvs集群学习笔记之原理

    lvs集群学习笔记之原理 lvs集群学习笔记之原理 集群 负载均衡 lvs 原理 lvs集群学习笔记之原理 什么是集群 什么是负载均衡 负载均衡解决方案 lvs简介 lvs内核空间模型 lvs特点 lvs实现方式 lvs实现方式之nat模型 lvs实现方式之dr lvs实现方式之tun lvs实现方式之FULLNAT lvs之算法 静态算法   &…

    Linux干货 2017-01-03
  • DNS and BIND 进阶

    主DNS服务器的ip地址:192.168.1.109 主DNS服务器主机名:bogon 正向区域名:sh.com 反向区域名:1.168.192.in-addr.arpa 正向区域文件名称:/var/named/sh.com.hosts 反向区域文件名称:/var/named/192.168.1.rev 配置主文件/etc/named.conf过程 1、编辑…

    Linux干货 2016-12-06