管道和输入重定向

输入重定向

< ,<< :从文件或键盘读取

不是所有的命令都有输入
不是所有的命令都有输出
其实可以使命令的输入来自于文件或者键盘输入
在这里插入图片描述

<:从文件中读取

<符号,用于指定命令的输入

cat  < note.csv

在这里插入图片描述我们可以看到cat < note.csv 的运行结果和cat note.csv 其实是一模一样的
虽然结果一样,但是其运行原理是不同的
cat note.csv运行原理:
cat命令接受的输入是note.csv这个文件名
那么久要先打开note.csv这个文件
然后打印出内容

cat < note.csv运行原理:
cat命令接受的输入直接是note.csv这个文件的内容
cat命令只负责将其内容打印
打开文件,并将文件内容传递给cat命令的工作则交给终端完成

这样对比一下就会发现,其结果一样,但是中间的过程是完全不同的

<<:从键盘读取

<<符号的作用是将键盘的输入重定向为某个命令的输入
例如,将数值排序

sort -n << END

输入之后,按下会出,终端就进入了键盘输入模式
在这里插入图片描述
可以看到这里光标在闪动
那我们就输入数值,按回车确定,最后END来结束输入,
END被称为结束字符串
在这里插入图片描述在试一下wc命令与输入重定向符号的配合

wc -m << END

在这里插入图片描述

小结

<:将命令的输入重定向为文件内容
<<:将命令的输入重定向为键盘输入,以逐行输入的模式(回车键换行),所有输入的行都将在输入结束字符串后发送给命令
在这里插入图片描述
那么这里把输入重定向和输出重定向结合使用一下

将键盘输入的数字排序重定向到numbers_sort.txt合格文件中,并且标准流和标准错误流重定向到同一文件中

sort -n << END >numbers_sort.txt 2>&1

在这里插入图片描述

|: 管道

传说中的管道符,将会是你Linux生涯中最常用的符号
|符号既然被称为‘管道符’,其作用就是‘建立命令管道’
管道也算重定向流的一种

管道的原理

将两个命令连成管道
简单的说就是将一个命令的输出为另一个命令的输入
在这里插入图片描述
所以我们可以用管道符链接很多个命令,构成很长的命令管道,绝对使Linux命令威力倍增

Linux中的命令,每一个功能虽然有限
但是一旦‘铁索连环’,那可是会结合各个命令的功能

管道符的实践

按学生名字排序

cut -d , -f 1 note.csv | sort

在这里插入图片描述

根据目录大小排序

du命令,深入遍历当前目录下的每个子目录,并对其大小都做一个统计
先用cd命令回到家目录

sudo du

在这里插入图片描述
可以看到du命令的缺点,1是显示结果多,遍历起来花费时间,2是没有排序,杂乱无章
但是如果我们这样做就会清爽很多了

du | sort -nr | head

在这里插入图片描述
在这里我们用du命令对子目录进行统计,用sort命令进行排序,用sort的-r参数倒许,-n参数对数字排序,head命令显示前10行

列出包含log关键字的文件

听起来很蒙,一步步来

sudo grep log -Ir /var/log

用于遍历/var/log 这个目录及其子目录
列出所有包含log关键字的行
-I参数用于排除二进制文件
-r参数用于递归遍历

cut -d : -f 1

剪切出文件名那一列(由冒号分隔的第一个区域)

sort

将文件名列以首字母的字典顺序排列

uniq

去掉重复的文件名

最后用管道符重定向流

sudo grep -Ir /var/log |cut -d : -f 1 | sort | uniq > contain_log_list.txt

在这里插入图片描述

小结

管道符的基本作用比较简单
就是将一个命令的输出重定向为另一个命令的输入
在这里插入图片描述

总结

<符号重定向命令输入为文件内容
<<符号重定向命令的输入为键盘输入
管道符号|可以将命令链接起来
好像一个个对接的管道一样
前一个命令的输出作为后一个命令的输入

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值