Linux重定向的基础知识。
在登录Linux时,便将默认的标准输入、标准输出、标准错误输出安排成你的终端。
标准错误输出(stderr):代码为2,使用2>或2>>,是命令执行失败后,所回传的错误信息。
复制代码代码示例:
[root@jbxue ~]# cat /etc/crontab /etc/thinksay
SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root HOME=/ # run-parts 01 * * * * root run-parts /etc/cron.hourly 02 4 * * * root run-parts /etc/cron.daily 22 4 * * 0 root run-parts /etc/cron.weekly 42 4 1 * * root run-parts /etc/cron.monthly cat: /etc/thinksay: 没有那个文件或目录 [root@jbxue ~]# cat /etc/crontab /etc/thinksay > list_right 2> list_error [root@jbxue ~]# cat list_error cat: /etc/thinksay: 没有那个文件或目录 [root@jbxue ~]# cat list_right SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root HOME=/ # run-parts 01 * * * * root run-parts /etc/cron.hourly 02 4 * * * root run-parts /etc/cron.daily 22 4 * * 0 root run-parts /etc/cron.weekly 42 4 1 * * root run-parts /etc/cron.monthly
标准输入(stdin):代码为0,使用<或<<,是将原本需要由键盘输入的数据改由文件内容来替代。注意,<<代表的是结束输入的意思。
复制代码代码示例:
[root@jbxue think]# cat > test <<"eof"
> my name is think > hello world > eof [root@jbxue think]# cat test my name is think hello world
可以把>、<、>>想象成漏斗:数据会从大的一端进入,由小的一端出来。
注意:构造管道时,应该试着让每个阶段的数据量变得更少。
复制代码代码示例:
[root@jbxue think]# cat > test01 << "eof"
> 1 2 5 > eof [root@jbxue think]# tr -d 2 < test01 | sort > test02 [root@jbxue think]# cat test02 1 5
注意:
1)屏幕输出信息很重要,而且我们需要将其存下时
(责任编辑:IT)2)后台执行中的程序,不希望它打搅屏幕正常的输出结果时 3)一些系统的例行工作,希望它可以存下来时 4)一些执行命令的可能已知错误信息,想以“2> /dev/null"将其丢弃时 5)错误信息与正确信息需要分别执行时 |