重定向及tr命令详解及其在管道中的使用简述

一、标准输入和输出及其重定向

        1.标准输入指的是来自键盘的输入,通常用0来表示;标注输出是默认输出到当前终端窗口,用1来表示;标准错误输出同样默认输出到当前终端窗口,用2来表示。除标准输出之外,我们还可以通过重定向来更改默认的输入和输出方式。

        2.标准输出重定向用>来表示,可以将输出内容重定向至其他终端或者文件,若重定向至文件,则当文件存在时覆盖并写入,文件不存在时创建并写入,如图所示:

计算机生成了可选文字: |0[ root@snorlaxh  snorlaxh  [ root@snorlaxh  snorlaxh  cat > a  cat a

        标准错误输出重定向可以用2>来表示,可以将错误的命令或者命令中有错误参数的标准错误输出至其他终端或者文件,若重定向至文件,则当文件存在时覆盖并写入,文件不存在时创建并写入,如图所示:

计算机生成了可选文字: |0[root@snorlaxh echol snorlaxh  2>a  [root@snorlaxh cat a  -bash: echol: command not  [root@snorlaxh cat a  -bash: echol: command not  found  found

        标准输入重定向是指将默认来自键盘的输出重定向至某个已存在的文件,用文件中的内容作为这次输入的内容,如图所示:

计算机生成了可选文字: |0[ root@snorlaxh  snorlaxh  [ root@snorlaxh  snorlaxh  cat a  cat < a

        另外,还可将标准输出和标准错误输出重定向至同一终端或者文件,用&>或者2>&1来表示,如下图所示

计算机生成了可选文字: |0[root@snorlaxh Is /a /tmp >a 2>&1  [root@snorlaxh cat a  Is: cannot access /a: No such file or directory  /tmp .  ks-script-Cnm cu  ks-script-PV6SKv  systemd-private-lc6e@b3@9@dc424fb@9eb74e233@7b66-cups . service- u6kP2f  systemd- private- 8ba17657427c4eb68dcc87d298c8a77f- cups . service- VLoodK  yum. log

        注意:以上所有重定向输出中,>表示标准输出重定向至文件时追加内容不覆盖原有内容,将>替换为>>表示标准错误输出重定向至文件时追加内容不覆盖原有内容。

 

二、tr命令

        tr命令表示转换或者删除指定文件或输入中的内容,将SET1中的字符转换成SET2,如下图所示。

计算机生成了可选文字: |0[ root@snorlaxh  ABCDEF  abcDEF  — tr  ABC  abc'

        当SET1与SET2的长度不同时,SET1长时,SET多余部分全部转化为SET2中最后一个字符;SET2长时,多余部分忽略。如下图所示:

计算机生成了可选文字: |0[ root@snorlaxh  ABCDEF  abccEF  [ root@snorlaxh  ABCDEF  abcDEF  ABCD  ABC  abc'  abcd'

        -t 先将set1的内容截取为和set2相同,再进行转化,如图所示:

计算机生成了可选文字: |0[ root@snorlaxh  — tr  -t  ABCDEF  abcDEF  ABCD  abc'

        -d 删除SET1中的字符,如图所示:

计算机生成了可选文字: |0[ root@snorlaxh  -d  — tr  or lax  h  snorlaxh

        -s SET1中的字符重复出现时只保留一个,如图所示:

计算机生成了可选文字: |0[ root@snorlaxh  tr  -s  aaab

        -c 取非SET1中的字符进行转换,如图所示

计算机生成了可选文字: |0[root@snorlaxh tr -sc  abcdabcd  aAaA[ root@snorlaxh

三、管道

        管道用|作为分隔符,将分隔符左侧命令的输出作为分隔符右侧命令的输入来进行命令执行结果的传递,示例如下图所示:

计算机生成了可选文字: |0[ root@snorlaxh  SnoR1aXh  echo snorlaxh I tr 'a-zl  'A-QI  a-q'

        示例中使用了两次管道,作用是先将输出字符中的小写全部转化为大写再进行部分转化。

        当管道分隔符左侧命令执行错误时,可以通过&|或者2>&1|将其结果向右侧命令传送,示例如下图所示:

计算机生成了可选文字: |0[root@snorlaxh echol snorlaxh tr  -baSh: echol: command noT foUnd  'a-zl  'A-ZI ltr  'A-QI  a-q'

计算机生成了可选文字: |0[ root@snorlaxh 一 ] # e c h 01 snorlaxh 2 > & 蚓 t r  -baSh : e c h 01 : command n 0T foUnd  。 a 一 z  . A 一 Z 目 t r

 

这就是今天介绍的主要内容,重定向和管道在linux的 学习中是非常重要的内容,希望大家能多多练习,真正掌握起来。

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

(0)
snorlaxhsnorlaxh
上一篇 2016-08-11
下一篇 2016-08-11

相关推荐

  • N21-北京-兔锅-马哥教育网络班21期+第3周课程练习

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。    who | cut -d' ' -f1 | uniq   2、取出最后登录到当前系统的用户的相关信息。    who | ta…

    系统运维 2016-07-07
  • Linux入门详解(第一周)

    Linux入门 1. 描述计算机的组成及其功能 计算机硬件的五大组成部分为:运算器、控制器、存储器、输入设备和输出设备; CPU:CPU是执行存储在主存中指令的引擎;内部又分为算数逻辑单元和控制单元,其中算数逻辑单元主要负责程序的运算与逻辑判断,控制单元则主要是协调各周边组件与各单元间的工作;此外CPU内还包含寄存器(如PC)和高速缓存等; 存储器:这里指主…

    Linux干货 2016-08-29
  • shell脚本1——test测试

    程序:指令+数据 程序:算法+数据结构 shell脚本编程: 编程的语言分类:根据运行方式     编译运行:源代码——>编译器——>程序文件     解释运行:源代码——>运行时启动解释器,由解释器边解释边执行 根据其编程过程中功能的实现是否调用库还是调用外部…

    Linux干货 2016-08-18
  • MySQL慢日志监控脚本实例剖析

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://nolinux.blog.51cto.com/4824967/1577326        公司线上的 MySQL 慢日志,之前一直没有做好监控。趁着上周空闲,我就把监控脚本写了下,…

    Linux干货 2016-08-15
  • 第9天:压缩,任务,rpm包

    http://note.youdao.com/yws/public/redirect/share?id=b3e4fc37bdd98991638dce69ce3eea53&type=false

    Linux干货 2016-08-18
  • RAID各级别特性介绍

        RAID全称为独立磁盘冗余阵列(Redundant Array of Independent Disks):基本思想就是把多个相对便宜的硬盘组合起来,成为一个硬盘阵列组,使性能达到甚至超过一个价格昂贵、 容量巨大的硬盘。     RAID通常被用在服务器电脑上,使用完全相…

    Linux干货 2016-06-22