温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

重定向和管道及tr tee命令

发布时间:2020-08-10 03:49:30 来源:网络 阅读:937 作者:power小小潘 栏目:网络安全

一、重定向

    输入重定向,就是将命令的执行结果或者字符串覆盖或者追加到某一个文件中

       命令:>(覆盖)  >>(追加)

     linux输出结果分三种:

        标准输入0:键盘的输入

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

        错误输出2:默认输出到终端窗口

     根据输出结果输出重定向到文件中:

        > 覆盖正确输出结果重定向到文件

         2> 覆盖错误输出结果重定向到文件

        2>> 追加错误输出结果重定向到文件

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

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

        > file > &1 覆盖所有输出重定向到文件

        合并多个程序重定向到文件中

          (ls;pwd)> f1 多条命令重定向


        >文件内容会被覆盖

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

           set +C:允许覆盖

        >>原有内容基础上,追加内容

    输入重定向

       命令:<

       将文件中的内容传递给命令执行

        cat < /etc/fstab

       cat << EOF 通常卸载脚本中,执行脚本后在屏幕上显示出来,做提示使用

        A

        B

        C

       EOF  

二、管道

    格式:Command1 | Command2 |.....

    管道:将第一条命令的执行结果当做参数传递给第二个命令使用

        cat /etc/fstab | mail -s hello tom

        mail -s hello tom < /etc/fstab

    Command1 | Command2:

        如果Command1能够正确执行,则能将结果传递给Command2,如果错误则不能执行  

            [root@localhost ~]# xecho abcdef | tr -t 'abcde' '11'

            bash: xecho: 未找到命令...

            相似命令是: 'echo'

        如果想将错误的命令也传递给Command2,可采取的方法:

            Command1 2>&1 |Command2 

            Command1 |& Command2       

                [root@localhost ~]# xecho asdfasdf 2>&1 |tr "a-z" 'A-Z'

                BASH: XECHO: 未找到命令...

                相似命令是: 'ECHO'

            

三、tr命令

    选项:

       -d info:删除匹配到info的信息

        [root@localhost ~]# echo abcdefg | tr -d abc                 

        defg

       -c info:补集,除了info之外的     

        [root@localhost ~]# echo abcdefg | tr -cd abc

        abc[root@localhost ~]# 

       -s info:将重复info的去掉,保留一个        

        [root@localhost ~]# echo aabbbcc | tr -s ab

        abcc

       ‘A-Z’ ‘a-z’: 将所有大写字符转换成小写        

        [root@localhost ~]# echo aabbbcc | tr 'a-z' 'A-Z'

        AABBBCC

       -t info1 info2: 按位匹配替换,没有匹配到的位不替换      

        [root@localhost ~]# echo abcdef | tr -t 'abcde' '11'

        11cdef

       info1 info2:  将info1中信息全部匹配替换,配有匹配到的用info2的最后一位填满 

        [root@localhost ~]# echo abcdef | tr 'abcde' '11'

        11111f

四、tee命令

     将上一级的管道传递古来的信息,保存到文件中,并在屏幕伤显示出来。  

      ls | tee /testdir/ls.log | tr 'a-z' 'A-Z' > /tmp/who.out

     默认是覆盖  -a 是追加



        


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI