美文网首页Linux运维
day12-重定向-笔记

day12-重定向-笔记

作者: 一条小强强OvO | 来源:发表于2019-08-09 12:23 被阅读0次

    Day12-重定向


    导读

    • 昨日回顾
      • 1.特殊权限SUID
      • 2.特殊权限SGID
      • 3.特殊权限SBIT
      • 4.特殊属性
      • 5.默认权限UMASK
    • 今日内容
      • 1.什么是重定向
      • 2.为什么要使用重定向
      • 3.标准输入、标准输出、错误输出
        • 输出重定向
        • 输入重定向
      • 4.进程管道技术
        • 三通管道tee
        • xargs参数传递
    • 今日总结

    昨日回顾

    特殊权限SUID

    功能:任何用户执行带有suid的命令,都是用该命令的属主权限
    非常危险,比如授权 vim --> sudoers
    授权方式
    chmod u+s /usr/bin/vim
    chmod 4755 /usr/bin/vim
    chmod u-s /usr/bin/vim
    chmod 755 /usr/bin/vim
    

    特殊权限SGID

    功能:目录被赋予SGID属性,所有在该目录下的文件都隶属于目录的属组
    授权方式
    chmod g+s /data
    chmod 2755 /data
    

    特殊权限SBIT

    功能:允许任何人在该目录下创建文件,但只能删除自己创建的,不允许删除其他人的
    /tmp   <---- 上传资源时,临时存放的一个目录
    

    特殊属性

    chattr
        i 不允许删除,不允许修改的文件 /etc/passwd(不允许创建用户)
        a 只允许往文件中追加内容,其他无操作(日志文件)
        chattr +i /etc/passwd
    lsattr
        查看文件是否存在特殊属性
    

    默认权限UMASK

    Umask表示要减去的权限
        默认目录权限是777 - 022
        默认文件权限是666 - 022
    普通用户创建文件和目录的权限不一样,取决于/etc/profile中的UMASK设定
    创建普通用户,会同时创建家目录,家目录权限是多少取决于/etc/login.defs文件的设定
    

    今日内容

    什么是重定向

    将原本要输出到屏幕的数据信息,重新定向到某个指定的文件中
    

    为什么要使用重定向

    1.当屏幕输出的信息很重要,而且希望保存下来的时候
    2.后台执行中的程序,不希望干扰屏幕正常输出结果
    3.系统的例行命令,例如定时任务的执行结果
    4.一些命令的错误信息,想将信息丢掉时
    5.错误日志与正确日志分别保存到文件
    

    标准输入、标准输出、错误输出

    输出重定向

    `>`     标准覆盖输出重定向
    `>>`    标准追加输出重定向
    `2>`    错误覆盖输出重定向
    `2>>`   错误追加输出重定向
    `&>`    混合覆盖输出重定向
    `&>>`   混合追加输出重定向
    

    输入重定向

    `<`     输入重定向
    `;`     cmd1;cmd2 无论前者命令成功还是失败,都执行后者命令
    `&&`    cmd1&&cmd2 前者命令执行成功,后者命令才会执行
    `||`    cmd1||cm2 前者命令执行失败,后者命令才会执行
    `&`     将程序放入后台执行(screen)
    

    进程管道技术

    将前者命令的输出变成后者命令的输入
    

    三通管道tee

    #将前者命令的输出另存为df.log,并将输出传递给后者命令的输入
    df -h | tee df.log | grep '/$'
    #将前者命令的输出打印到屏幕,并将输出传递给后者命令的输入
    df -h | tee /dev/pts/0 | grep '/$'
    

    xargs参数传递

    主要让一些不支持管道的命令可以使用管道技术

    which cat | xargs ls -l
    ls | xargs rm -rf
    

    今日总结

    # 重定向
    将原本要输出到屏幕的数据信息,重新定向到某个指定的文件中
    # 标准输入,标准输出,错误输出
    程序运行起来后变为进程,会同时打开三个文件 标准输入 标准输出 错误输出
    标准输入:0
    标准输出:1
    错误输出:2
    # 标准输入,标准输出,错误输出与重定向之间有什么关系
    重定向就是用来改变标准输出或者标准错误输出的一个指向
        `>`     标准覆盖输出重定向
        `>>`    标准追加输出重定向
        `2>`    错误覆盖输出重定向
        `2>>`   错误追加输出重定向
        `&>`    混合覆盖输出重定向
        `&>>`   混合追加输出重定向
    # 输入重定向
    从文件中获取内容 <
    # 进程管道技术
    将左边命令的标准输出传递给右边命令的标准输入
    tee将左边命令的标准输出保存至文件或打印至终端,但不影响管道数据的一个传递
    xargs用于将不支持管道的命令支持管道,将左边命令的输出作为参数进行传递
    

    相关文章

      网友评论

        本文标题:day12-重定向-笔记

        本文链接:https://www.haomeiwen.com/subject/ipgcjctx.html