Linux开发-数据流与管道

数据流与重定向

什么是数据流重定向?

在这里插入图片描述

使用数据流重定向

在这里插入图片描述

#在Ubuntu里不支持,不过18.04支持,'ll' 是'ls -l' 的缩写
ll /
#输出重定向
ll / > ~/rootfiles
#进行操作,并将输出转到rootfiles中
ll ~/rootfiles
#-------------------------------------------
• 标准输出流stdout默认情况下将数据输出到device
• 使⽤>将数据输出重定向到⽂件
• >默认为覆盖⽂件内容,如果要追加则用>>
  1. 在这里插入图片描述

    #替换成 ubuntu 代码
    sudo find /home -name .bashrc
    #查询结果:/home/yuez/.bashrc
    
    #总结一下
        #将错误信息重定向,就在命令最后加 2> errorfile(文件名)
        #将正确信息重定向,就在命令最后加 > infofile(文件名),如果和上边的一块用,就同时重定向两种信息,就是把信息分流了
        #要忽略错误信息,就在命令最后加 2> /dev/null
    
  2. 在这里插入图片描述

     #修改文件 demofile的内容;并按Ctrl + d 结束输入
     cat > demofile
     #如果文件不存在则会创建;
     #如果文件存在:因为使用的是'>',所以会覆盖掉文件内容;使用'>>'则会继续添加
     
     #简单的查看文件内容
     cat demofile
     
     #输入重定向为 ~/.bashrc 文件
     cat > demofile < ~/.bashrc
     #这里使用了'>'会覆盖掉原有内容,若修改为'>>'则会在文件最后输入
     
     #输入重定向到键盘输入,这里的eof是结束时输入的字符
     cat > demofile << "eof"
     #换成'>>'就可以在文件后添加
     
     #-------------------------------<:标准输⼊流默认从键盘输⼊
     • <<:⽤于设定结束输入的关键字
     • 这里的'~/'是返回当前用户的主目录,'.bashrc'是该目录下的一个文件
    

管道命令

管道命令执行原理

管道执行原理图

  • 管道命令的界定符号为”|”

  • 管道命令仅会处理stdout,对stderr会忽略

  • 管道命令必须要能够接收来⾃前⼀个命令的数据作为stdin

  • 说白了,管道命令是几个命令组合,中间用 | 分开,前一个的输出(stdout)作为后一个的输入(stdin),忽略掉所有的(stderr)

常用管道命令

选取命令 cut 和 grep

cut

cut命令

值得注意的是 cut 命令是“竖着切”,即每一行都会切。如下:

竖着切

grep

grep命令

举个例子:

​ 首先 运行last命令,得到:

last运行结果

​ 之后开始用管道命令’grep‘进行选取:

grep选取

​ 因为 grep -i 是不区分大小写,可以嵌套进其他的命令,故没有列出;

​ 其他的命令也可以嵌套,但是一旦嵌套上 ‘-c’ 就会只输出数字

排序命令sort、wc、uniq

sort

sort命令

wc

wc命令

实操发现 wc 后不跟命令的话就是默认三个都显示:

wc结果

uniq

uniq命令

归档压缩和软件安装

思维导图

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值