【linux_笔记】Linux_IO重定向,管道

学习资源来自:www.magedu.com

学习记录过程中难免出现错误,如有发现,还望大神们指出。

示例操作部分有的与历史操作有关,如果先前的示例操作没有执行过的话,可能会有部分示例的操作无法执行。示例仅供参考。(练习题在附录)


计算机组成:


    计算机的五大主要部件:
        运算器、控制器: CPU
        存储器:RAM
        输入设备/输出设备
    总线:
        地址总线:内存寻址
        数据总线:传输数据
        控制总结:控制指令

    寄存器:CPU暂时存储器

I/O设备:
    INPUT设备:数据的来源,鼠标键盘……
    OUTPUT设备
    系统设定
        默认输出设备:标准输出,STDOUT(设备名称), 1(描述符)
        默认输入设备:标准输入, STDIN, 0
        标准错误输出:STDERR, 2
    
    标准输入:键盘
    标准输出和错误输出:显示器

    I/O重定向:改变数据输出(输入)来源

        输出重定向:
            >: 覆盖输出(原有内容会被覆盖)
            >>:追加输出(保留原有内容)
            示例:
                ls /var
                ls /var > /tmp/var.out ―― 输出到var.out(覆盖)
                cat /tmp/var.out
                cat /etc/fstab
                cat /etc/fstab > /tmp/var.out ―― 输出到var.out(覆盖)
                cat /tmp/var.out
                ls /var
                ls /var >> /tmp/var.out― ―― 输出到var.out(追加)
                cat /tmp/var.out

            set -C: 禁止对已经存在文件使用覆盖重定向;
                强制覆盖输出,则使用 >|
            set +C: 关闭上述功能
            示例:
                set -C
                ls /usr > /tmp/var.out ―― 禁止覆盖
                set +C
                ls /usr > /tmp/var.out ―― 允许覆盖
                cat /tmp/var.out
                set -C
                ls /usr >| /tmp/var.out ―― 强制覆盖
                set +C
                
        重定向错误输出:
            2>: 重定向错误输出
            2>>: 追加方式输出
            示例:
                ls /varr > /tmp/var2.out ―― 错误信息输出到显示器
                ls /varr 2> /tmp/var2.out ―― 错误信息输出到var2.out
                cat /tmp/var2.out
                ls /var 2> /tmp/var2.out ―― 输出任在显示器
                ls /var > /tmp/var3.out 2> /tmp/err.out
                    ―― 重定向标准输出和错误输出
                
        &>: 重定向标准输出或错误输出至同一个文件
            示例:
                ls /var6 &> /tmp/var5.out (var6不存在)
                cat /tmp/var5.out
                ls /var &> /tmp/var5.out
                cat /tmp/var5.out
            
        输入重定向:
            <:输入重定向
            <<:Here Document(在此处生成文档)
            示例:
                cat
                    abc
                    ctr+c(退出)
                cat < /etc/fstab
                tr 'a-z' 'A-Z'
                    abc
                    ctr+c(退出)
                tr 'a-z' 'A-Z' /etc/fstab ―― 无法执行
                tr 'a-z' 'A-Z' < /etc/fstab ―― 输入重定向
            
                cat << END(结束符)
                    The first line
                    The second line.
                    END(退出)
                cat >> /tmp/myfile.txt << EOF
                    The first linde
                    The second line.
                    EOF
                cat /tmp/myfile.txt ―― 输入的文本被存入文档
            
        管道:前一个命令的输出,作为后一个命令的输入
            命令1 | 命令2 | 命令3 | ...
            示例:
                echo "hello, world."
                echo "hello, world," | tr 'a-z' 'A-Z'
                cut -d: -f1 /etc/passwd | sort
                cut -d: -f3 /etc/passwd | sort -n
                cut -d: -f1 /etc/passwd | sort | tr 'a-z' 'A-Z'
                只显示文件的行数不显示其它内容:
                    wc -l /etc/passwd ―― 使用管道前
                    wc -l /etc/passwd | cut -d' ' -f1


        tee:从标准输入读取数据,输出到标准输出并保存至文件
            示例:
                echo "Hello,World." | tee /tmp/hello.out
                cat /tmp/hello.out




你可能感兴趣的:(管道,tee,io重定向)