开发者社区> 技术小阿哥> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

linux之输入,输出

简介:
+关注继续查看
linux之输入,输出
标准输入和输出
读入数据: Input
输出数据: Output

打开的文件都有一个fd: file descriptor(文件描述符)

linux提供的三种I/O设备:
    标准输入 (STDIN) - 描述符0 默认接受来自键盘的输入
    标准输出 (STDOUT) - 描述符1 默认输出到终端窗口
    标准错误输出 (STDERR) - 描述符2 默认输出到终端窗口
I/O重定向和管道符
  • I/O重定向: 改变输入输出默认方向

            输入重定向:
               <          输入重定向
               << EOF     将输入的文本作为标准输入,遇到EOF结束输入
    
            输出重定向:
                >  覆盖输出
                set -C 禁止覆盖输出
                set +C 启用覆盖输出
                >| 强制覆盖输出
    
                >> 附加输出
    
            支持操作符:
                1>   标准覆盖输出 
                2>   标准错误覆盖输出
                &>   所有覆盖输出
                1>>  标准附加输出  
                2>>  标准错误附加输出
                &>>  所有附加输出
    
            特殊用法:
                1>&2 将标准输出转化为错误输出
                2>&1 将标准错误输出转化为标准输出
    
            输入优先于输出
                    # tr a-z A-Z > /tmp/test.txt < /etc/fstab
    
            (): 合并对个命令的STDOUT
  • 管道符&rsquo;|&rsquo;: 将前一命令的标准输出作为下一个命令的标准输入

        |& : 可将前一命令的标准输出和标准错误输出一并作为下一个命令的标准输入
  • tr

       从标准输入中翻译,挤压或删除字符,写入标准输出。 
    
        语法格式:
            tr [options]... SET1 [SET2]
    
                -c 将SET1以外的字符,替换为SET2
                -d 删除SET1中的字符
                -s 将SET1中连续字符压缩成一个
                -t 将SET1中匹配的字符,替换为SET2 (默认)
    
                    替换时规则: 
                        将SET1转换为SET2时,SET1的位数多于SET2时,SET1中多出的位数全部转换为SET2中最后一位字符.
                            如:
                            # echo aabbcc|tr abc de
    
                -dc  仅保留SET1中字符
    
                    示例:
                        # echo abcd | tr -d a
                        # echo abcd | tr -c a 1
                        a1111
                        # echo abcd | tr -cd abc
                        abc
                        # echo aaaa::::bbbb|tr -s :
                        aaaa:bbbb
  • tee

        读取标准输入并保存至指定文件内
    
        -a  追加内容至文件
    
        命令1 | tee [-a] file| 命令2
    
        使用:
            保存不同阶段的输出
            复杂管道的故障排除
            同时查看和记录输出
    
        示例:
            echo hello|tee /tmp/test.txt|tr a-z A-Z
  • mail

        mail -s 'SUBJECT' USER
    
        默认.结尾
        或者 << EOF 自定义结尾符

本文转自 撒旦搞时间 51CTO博客,原文链接:http://blog.51cto.com/12074120/1963883,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
修改Linux服务器时间的命令
修改Linux服务器时间的命令
0 0
如何从虚拟机上的linux使用sz命令传输windows大于4G的文件
如何从虚拟机上的linux使用sz命令传输windows大于4G的文件
0 0
linux基本功系列之uptime命令实战
linux基本功系列之uptime命令实战
0 0
linux基本功系列之sudo命令实战一
linux基本功系列之sudo命令实战一
0 0
linux基本功系列之-rpm命令实战
linux基本功系列之-rpm命令实战
0 0
linux基本功系列之su命令
linux基本功系列之su命令
0 0
linux基本功系列之wc命令实战
linux基本功系列之wc命令实战
0 0
linux基本功系列之-lsattr命令实战
linux基本功系列之-lsattr命令实战
0 0
linux基本功系列之chattr命令
linux基本功系列之chattr命令
0 0
文章
问答
文章排行榜
最热
最新
相关电子书
更多
Decian GNU/Linux安全合规之路
立即下载
从 Linux 系统内核层面来解决实际问题的实战经验
立即下载
冬季实战营第二期:Linux操作系统实战入门
立即下载