1、文件描述符
Linux系统预留可三个文件描述符:0、1和2,他们的意义如下所示:
0——标准输入(stdin)
1——标准输出(stdout)
2——标准错误(stderr)

标准输出——stdout
假设:在当前目录下,有且只有一个文件名称为123.txt的文件,这时我们运行这个命令【ls 123.txt】,就会获得一个标准输出stdout的输出结果:123.txt
错误输出——stderr
按照上面的假设,我们运行另一条命令【ls abc.txt】,这样我们就会获得一个标准错误stderr的输出结果“ls:无法访问abc.txt:没有那个文件或目录”。

2、重定向
重定向的符号有两个:>或>>,两者的区别是:前者会先清空文件,然后再写入内容,后者会将重定向的内容追加到现有文件的尾部。举个例子:
(a)重定向标准输出stdout

对比没有添加重定向的操作,这条命令在使用之后并没有将123.txt打印到屏幕。在紧接的cat操作后,可以发现本来应该被输出的内容被记录到stdout.txt中。
(b)重定向标准错误stderr

对比没有添加重定向的操作,这条命令在使用之后并没有将123.txt打印到屏幕。在紧接的cat操作后,可以发现本来应该被输出的内容被记录到stderr.txt中。

以上执行结果如下:

[root@node1 xiaoa]# ll
total 0
-rw-r--r--. 1 root root 0 Jun  5 14:21 123.txt
[root@node1 xiaoa]# ls 123.txt
123.txt
[root@node1 xiaoa]# ls abd.txt
ls: cannot access abd.txt: No such file or directory
[root@node1 xiaoa]# ls 123.txt 1> stdout.txt
[root@node1 xiaoa]# vi stdout.txt
[root@node1 xiaoa]# ls abc.txt 2> stderr.txt
[root@node1 xiaoa]# vi stderr.txt
[root@node1 xiaoa]# ll
total 8
-rw-r--r--. 1 root root  0 Jun  5 14:21 123.txt
-rw-r--r--. 1 root root 53 Jun  5 14:40 stderr.txt
-rw-r--r--. 1 root root  8 Jun  5 14:39 stdout.txt

(c)也可以将stderr和stdout重定向到同一个文件

#ls 123.txt &> output.txt

3、Linux特殊文件
/dev/null是一个特殊的设备文件,这个文件接收到任何数据都会被丢弃。因此,null这个设备通常也被称为位桶(bit bucket)或黑洞。
所以,2>/dev/null的意思就是将标准错误stderr删掉。

#ls abc.txt 2> /dev/null

最新文章

  1. Codeigniter基础
  2. 中国175个 AAAAA级风景区,去过20个 以上,你就是旅游达人
  3. praise包--R给你点赞!
  4. 1920.154s 0.309s 30817
  5. A trip through the Graphics Pipeline 2011_02
  6. pl/sql乱码
  7. 初探appium之appium的使用
  8. MyBatis(3.2.3) - hello world
  9. spring 的配置 bean>>property>>name属性
  10. object C—类中函数的调用
  11. 触摸点为scrollview上的子控件时,scrollview不能滚动(iOS8)
  12. iOS 用GDataXMLNode创建和解析XML
  13. jQuery 效果 – 隐藏和显示
  14. Cookies 和session
  15. matlab : Nelder mead simplex 单纯形直接搜索算法;
  16. atomic 原子操作
  17. 33、iOS10 由于权限问题导致崩溃的大坑
  18. Bash重定向
  19. hdoj1050 Moving Tables(贪心)
  20. UI复习练习_优酷布局

热门文章

  1. shiro免认证的路径配置
  2. 【科研工具】流程图软件Visio Pro 2019 详细安装破解教程
  3. Unity——WegGL打包问题
  4. Redis cluster 集群部署和配置
  5. Declarative Pipeline 基础语法
  6. 3、回溯算法解题套路框架——Go语言版
  7. Sentinel-Go 源码系列(三)滑动时间窗口算法的工程实现
  8. 『学了就忘』Linux系统定时任务 — 89、任务调度工具anacron
  9. java 多线程 线程池:多核CPU利用ExecutorService newWorkStealingPool; ForkJoinPool线程池 执行可拆分的任务RecursiveAction;RecursiveTask
  10. libevent实现多线程