Linux输入输出重定向以及管道(下)

Linux输入输出重定向以及管道(下)

0X00 又见面了

昨天的内容还没讲完,今天就把它终结了吧!
在这里插入图片描述

0X10 输入重定向

昨天说完了输出重定向,今天就来说说输入重定向吧
有了昨天的基础,这个知识点就好理解一点了
到目前为止我们只讲了如何重定向命令的输出,也就是决定命令输出的信息的去向,现在我们做一点相反的事情:决定命令的输入来自哪里
当然了,不是所有的命令都有输入,也不是所有的命令都有输出。
到目前为止,我们的命令的输入都来自于后面接的参数,这些参数有些是文件名,有些是目录名,等等。
在这里插入图片描述

1、 <:从文件中读取

< 的功能与 > 的功能相反,用于指定命令的输入
举例:

cat test.txt

结果:
在这里插入图片描述
哪有人要问了:这不是逗我吗,这和 cat test.txt 的结果一样,有什么区别?
但事实上,两者的原理确实十分不同的:

  • cat test.txt :这种情况下,cat 命令接受的输入是 test.txt 这个文件名,那么它要先打开
    test.txt文件,然后打印出文件内容。
  • cat < test.txt :这种情况下,cat 命令接受的输入直接是 test.txt 这个文件的内容,cat
    命令只负责将其内容打印。而打开文件并将文件内容传递给 cat 命令的工作则交给 Shell 程序(也就是控制终端的程序)来完成。

2、 <<:从键盘中读取

<< 符号的作用是将键盘的输入重定向为某个命令的输入
首先来认识一个指令:
sort
这是用来排序的指令,比如有一个文件 num,txt 里面存储着一下内容:
5
8
67
1
57
如果我们执行:

sort -n num.txt

会将其中的内容从小到大排序输出(-n是数字排序)
在这里插入图片描述
我们现在用sort指令来演示 << 的作用:

sort -n << END

输入之后进入键盘模式:
在这里插入图片描述
提示我们需要进行输入,那什么时候停止呢?其实我们自己早就定义了,就是 << 后面的END,这个可不是硬性规定,你们也可一自己规定,比如 2333,stop等
在这里插入图片描述
可将 << 从键盘读取的内容作为了sort 的输入

再看一个比较有意思的例子:

wc -m << END

在这里插入图片描述
是不是有那味了
在这里插入图片描述
上图:
在这里插入图片描述

0X20 | :管道

!!!打几个!提醒一下大家,管道将我们在Linux中最常用的符号之一!

这就是传说中的“管道符号

|

那管道的作用究竟是啥呢?
其实就好比水管:
前面输出的水流变成后面输入的水流一个命令的输出可以作为另一个命令的输入
在这里插入图片描述
可能现在大家还没有体会到它的强大魅力。还是来几个例子提提神吧

来,上例子!

1、xxxxxxxxxxxx(毫无意义,仅为标号)
我们还是用昨天的 csv 文件,里面有学生名字,成绩和评论,三栏
在这里插入图片描述
我们用 ==cut -d , -f 1 notes.csv == 来剪切名字那一列。然后再用sort命令对剪切出来的内容排序

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

结果如下:
在这里插入图片描述
可以看到这已经不是原来的排序了,而是字典序

*2、 xxxxxxxxxxxxxxxxxxxxxxx
还有我们在查找一个进程时,用到的 ps 指令。
== ps -au == 是将所有的用户进程列出来,但是有时候我们的进程很多,如果我们需要查找一个进程岂不是很难?
所以如果我们能进行查找,岂不妙哉

ps -au | grep zsh

在这里插入图片描述
东风快递,使命必达
一声令下,送货到家
在这里插入图片描述
当然,只要用到好,绝对受益终身!

0X30 后言

上下两篇,终于写了完,虽然是一些基础的东西,但是还是很有必要记录下来的。
上篇在此:Linux输入输出重定向以及管道(上)
最后希望大家能够好好学习,天天向上!

最后的最后,大家江湖再见
在这里插入图片描述
—————————————————————————————————————————————————
参考:Linux命令行与Shell脚本编程大全/24 输入重定向和管道,随意流转

猜你喜欢

转载自blog.csdn.net/rjszz1314/article/details/104435127
今日推荐