重定向和管道

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

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

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

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

重定向和管道

在dev下有个fd设备,打开的文件都有一个fd:file 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

相关推荐

  • 第二天作业

    1、echo 查闪烁,下划,颜色    echo -e "\033[31;5;1m*******\033[0m\n \033[32;5;1m*****\033[0m\n  \033[33;5;1m***\033[0m\n   \033[34;5;1m*\033[0m" 2、scr…

    Linux干货 2016-07-26
  • 0804正则表达式作业

    用正则表达式表示IP地址         首先来分析一下,制IP地址是一个32位的二进制数,通常被分割为4个“8位二进制数”(也就是4个字节)。IP地址通常用“点分十进制”表示成(a.b.c.d)的形式,其中,a,b,c,d都是0~255之间的十进制整数。例:点分十进IP地址(1…

    Linux干货 2016-08-10
  • 从Linux小白到大牛——与狼共舞的日子3

    马哥教育网络班21期+第3周课程练习 1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 [root@localhost ~]# who root :0   2016-07-23 08:55 (:0) wangsining pts…

    Linux干货 2016-07-26
  • gitlab-ce白名单设置杜绝并发数过大引起的封ip故障

    gitlab-ce 7.9安装手札以及上篇文章的问题解决 鸣谢 感谢ruby大神===》章鱼的一路指点,才能拨开迷雾见云天! 章鱼大人:     国内Ansible部落原创翻译之一!     资深运维!     ROR大神!  &…

    Linux干货 2015-09-06
  • ansible学习笔记

    简介:  在日常服务器维护中,从系统安装到程序部署再到发布应用,在大规模的生产环境中,如果需要手动的每台服务器进行安装配置将会给运维人员带来许多繁琐而又重复的工作。这就促使了在每个运维层次中出现了不同的自动化运维工具。 常见的自动化运维工具分类有以下几类:  系统安装运维工具(OS Provisioning):    …

    Linux干货 2015-08-17
  • 第四周博客作业

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 ~]# cp -r /etc/skel /home/tuser1 ]# chmod -R 700 /home/tuser1/ 2、编辑/etc/group文件,添加组hadoop ~]# echo "hadoop:…

    Linux干货 2016-12-14