管道
是进程通信的方法之一,在Linux中用命令1|命令2
的形式表示,将前一个命令的结果作为后续命令的参数进行输入,也有tee
管道,可以进行多次筛选,即多次使用|
过滤命令。
重定向
文件描述符FD
Linux中输入输出分为三种,标准输入0、标准正确输出1、标准错误输出2,3及以上表示其他文件方法。
文件内存写入磁盘文件的实质过程是先写入swap
文件,删除原有文件,然后将swap
文件修改成与原文件名称一致,所以有时因为系统操作不当,文件报错与swap
相关时,可找到进程下的swap
文件删除即可。
Linux中一切皆文件,进程实质也是在系统中存放的文件,我们如果打开多个终端,可以向终端文件输入字符,即可直接显示在终端上,图形化系统开启多终端很简单,centos纯命令行的需要使用快捷键ctrl
+alt
+F1
-F7
最多可以开七个终端,如果一个长时间执行前台任务,可以切换终端继续操作,终端可以直接输入w
查看。
输出重定向
具体方法如下:
>:覆盖重定向
>>:追加重定向
1>:覆盖重定向正确的输出数据流
1>>:追加重定向正确的输出数据流
2>:覆盖重定向错误输出数据流
2>>:追加重定向错误输出数据流
通过不同的文件描述符与重定向符号结合,可以过滤输出需要的信息,剩下的会输出到屏幕,只有>
是默认为1>
,即输出正确的信息,&>
表示无论正确错误,全部重定向。
Linux中有两个文件比较特殊,/dev/null
和/dev/zero
,一个为空,无论如何填不满,一个无论如何取不尽,可用作垃圾堆和数据测试的来源。
输入重定向
cat
的本质就是利用输入重定向,将接收到的标准输入打印到屏幕上,即cat
命令本身是接收输入并打印到屏幕,后面如果接了文件就自动补上<
输入重定向符号,示例如下:
第一条是屏幕输入,下面的cat
执行的操作,进行输出。
<
等价于0<
,将右边的转化成标准输入给左边,<< 分界符
允许输入大段文本,检测到分界符就停止,故可以利用输入重定向直接建立多行文件,示例如下:
接收屏幕输入保存到file.text
文件,遇到EOF
就停止,这里的停止符可以是不包含空格的任意字符串,只是在英文中这也是结束的缩写,遵循传统。
总结
本章学习的内容比较少,管道和重定向是我们使用Linux时比较方便的两个小工具,尤其是管道,可以在我们查日志时进行简单初步的筛选过滤,而重定向可以帮助我们实现快速的简单输入输出,目前来看只是|
和>
或<
的使用,但其中可以杂糅很多其他命令,极大依赖我们对系统的熟练程度。