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,如需转载请自行联系原作者
相关文章
|
Ubuntu Linux
Linux Ubuntu 20.04 LTS 解决无法输入中文 输入法问题
Linux Ubuntu 20.04 LTS 解决无法输入中文 输入法问题
3273 0
|
Linux
解决Linux使用fcitx5输入法无法输入问题
解决Linux使用fcitx5输入法无法输入问题
746 0
解决Linux使用fcitx5输入法无法输入问题
Linux: 2>/dev/null 解决大量屏幕输出
Linux: 2>/dev/null 解决大量屏幕输出
Linux: 2>/dev/null 解决大量屏幕输出
|
缓存 Java Linux
如何使用 Linux 后台运行 Python 脚本,并输出日志文件
如何使用 Linux 后台运行 Python 脚本,并输出日志文件
3129 0
|
Ubuntu Linux 测试技术
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(十五)输入系统应用编程(下)
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(十五)输入系统应用编程
349 0
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(十五)输入系统应用编程(下)
|
Linux 芯片
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(十五)输入系统应用编程(中)
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(十五)输入系统应用编程
237 0
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(十五)输入系统应用编程(中)
|
Ubuntu Linux API
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(十五)输入系统应用编程(上)
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(十五)输入系统应用编程
277 0
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(十五)输入系统应用编程(上)
Linux 删除(清空)已输入的命令
Linux 删除(清空)已输入的命令
java Linux语句输入 linux下执行语句
java Linux语句输入 linux下执行语句
|
NoSQL Linux Redis
关于redis-server服务启动之后,无法再输入Linux命令的问题!
关于redis-server服务启动之后,无法再输入Linux命令的问题!
145 0
关于redis-server服务启动之后,无法再输入Linux命令的问题!