重定向及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 09:38
下一篇 2016-08-11 09:38

相关推荐

  • Linux系统操作练习-2

    1、显示当前系统上root、fedora或user1用户的默认shell: 2、找出/etc/rc.d/init.d/functions文件中某单词后面跟一组小括号的行,形如:hello(): 3、使用echo命令输出一个绝对路径,使用grep取出基名;扩展:取出路径名: 扩展: 4、找出ifconfig命令结果中的1-255之间的数字: 5、挑战题:写一个…

    2017-11-25
  • 网络班22期学习宣言

    马哥Linux运维学院 学习宣言 亲爱的小伙伴:        欢迎大家报名马哥Linux运维网络学习班,跟随马哥学习Linux技术,成就Linux大牛之梦。在这里,我们不仅可以学习到最优秀的技术课程,还可以跟着追梦的小伙伴们一起学习、一起进步。 为了督促大家一直积极认真努力的学习,请各位同学在评论区写出你的学习宣言。…

    Linux干货 2016-08-03
  • Linux命令date命令详解

    在linux环境中,熟练运用date命令来表示自己想要表示的时间,肯定可以给自己的工作带来诸多方便,下面是详细的使用说明和示例 在linux环境中,不管是编程还是其他维护,时间是必不可少的,也经常会用到时间的运算,熟练运用date命令来表示自己想要表示的时间,肯定可以给自己的工作带来诸多方便。 1.命令格式:date[参数]… [+格式] 2.命…

    2017-07-18
  • Linux磁盘管理进阶

    Linux磁盘管理进阶 dd命令 SWAP与移动介质 磁盘配额 RAID dd命令 dd – convert and copy a file Copy a file, converting and formatting according&…

    Linux干货 2016-09-05
  • Linux系统重定向和管道

    1、标准输入和标准输出              程序:指令+数据               &n…

    Linux干货 2016-08-04
  • Shell脚本中循环浅析

    在shell脚本中,循环是很重要的一环。循环可以不断的执行某个程序段落,直到用户设置的条件达成为止。在shell中,除了这种依据判断时达成与否的不定循环之外,还有另外一种已经固定要跑多少次的循环,可称之为固定循环。下面,我们主要对for,while,until三种循环做一下介绍。   一、for循环 For循环是给定变量列表的固定次数循环,其执行机…

    Linux干货 2016-08-21