标准输入,输出和错误

---------------------------------

文件文件                描写叙述符

---------------------------------

输入文件—标准输入       0

输出文件—标准输出       1

错误输出文件—标准错误   2

---------------------------------

1.重定向

COMMAND_OUTPUT >
2  # 将stdout重定向到一个文件.
3  # 假设这个文件不存在, 那就创建, 否则就覆盖.

5  ls -lR > dir-tree.list
6  # 创建一个包括文件夹树列表的文件.

8  : > filename
9  # >操作, 将会把文件"filename"变为一个空文件(就是size为0).
10  # 假设文件不存在, 那么就创建一个0长度的文件(与'touch'的效果同样).
11  # :是一个占位符, 不产生不论什么输出.
12 
13  > filename
14  # >操作, 将会把文件"filename"变为一个空文件(就是size为0).
15  # 假设文件不存在, 那么就创建一个0长度的文件(与'touch'的效果同样).
16  # (与上边的": >"效果同样, 可是某些shell可能不支持这样的形式.)
17 
18  COMMAND_OUTPUT >>
19  # 将stdout重定向到一个文件.
20  # 假设文件不存在, 那么就创建它, 假设存在, 那么就追加到文件后边.
21 
22 
23  # 单行重定向命令(仅仅会影响它们所在的行):
24  # --------------------------------------------------------------------
25 
26  1>filename
27  # 重定向stdout到文件"filename".
28  1>>filename
29  # 重定向并追加stdout到文件"filename".
30  2>filename
31  # 重定向stderr到文件"filename".
32  2>>filename
33  # 重定向并追加stderr到文件"filename".
34  &>filename
35  # 将stdout和stderr都重定向到文件"filename".
36 
37  M>N
38  # "M"是一个文件描写叙述符, 假设没有明白指定的话默觉得1.
39  # "N"是一个文件名称.
40  # 文件描写叙述符"M"被重定向到文件"N".
41  M>&N
42  # "M"是一个文件描写叙述符, 假设没有明白指定的话默觉得1.
43  # "N"是还有一个文件描写叙述符.
44 
45  #==============================================================================
46 
47  # 重定向stdout, 一次一行.
48  LOGFILE=script.log
49 
50  echo "This statement is sent to the log file, \"$LOGFILE\"." 1>$LOGFILE
51  echo "This statement is appended to \"$LOGFILE\"." 1>>$LOGFILE
52  echo "This statement is also appended to \"$LOGFILE\"." 1>>$LOGFILE
53  echo "This statement is echoed to stdout, and will not appear in \"$LOGFILE\"."
54  # 每行过后, 这些重定向命令会自己主动"reset".
 
58  # 重定向stderr, 一次一行.
59  ERRORFILE=script.errors
61  bad_command1 2>$ERRORFILE # Error message sent to $ERRORFILE.
62  bad_command2 2>>$ERRORFILE # Error message appended to $ERRORFILE.
63  bad_command3 # Error message echoed to stderr,
64  #+ and does not appear in $ERRORFILE.
65  # 每行过后, 这些重定向命令也会自己主动"reset".
66  #==============================================================================
67 
70  2>&1
71  # 重定向stderr到stdout.
72  # 将错误消息的输出, 发送到与标准输出所指向的地方.
73 
74  i>&j
75  # 重定向文件描写叙述符ij.
76  # 指向i文件的全部输出都发送到j.
77 
78  >&j
79  # 默认的, 重定向文件描写叙述符1(stdout)到j.
80  # 全部传递到stdout的输出都送到j中去.
81 
82  0< FILENAME
83  < FILENAME
84  # 从文件里接受输入.
85  # 与">"是成对命令, 而且通常都是结合使用.
86  #
87  # grep search-word <filename
88 
90  [j]<>filename
91  # 为了读写"filename", 把文件"filename"打开, 而且将文件描写叙述符"j"分配给它.
92  # 假设文件"filename"不存在, 那么就创建它.
93  # 假设文件描写叙述符"j"没指定, 那默认是fd 0, stdin.
94  #
95  # 这样的应用一般是为了写到一个文件里指定的地方.
96  echo 1234567890 > File # 写字符串到"File".
97  exec 3<> File # 打开"File"而且将fd 3分配给它.
98  read -n 4 <&3 # 仅仅读取4个字符.
99  echo -n . >&3 # 写一个小数点.
100  exec 3>&- # 关闭fd 3.
101  cat File # ==> 1234.67890
102  # 随机訪问.
106  |
107  # 管道.
108  # 通用目的处理和命令链工具.
109  # 与">", 非常相似, 可是实际上更通用.
110  # 对于想将命令, 脚本, 文件和程序串连起来的时候非常实用.
111  cat *.txt | sort | uniq > result-file
112  # 对全部.txt文件的输出进行排序, 而且删除反复行.
113  # 最后将结果保存到"result-file"中.

command > filename      把标准输出重定向到一个新文件里

command >> filename      把标准输出重定向到一个文件里(追加)

command 1 > fielname      把标准输出重定向到一个文件里

command > filename 2>&1    把标准输出和标准错误一起重定向到一个文件里

command 2 > filename     把标准错误重定向到一个文件里

command 2 >> filename     把标准输出重定向到一个文件里(追加)

command >> filename 2>&1   把标准输出和标准错误一起重定向到一个文件里(追加)

command < filename >filename2   把command命令以filename文件作为标准输入。以filename2文件作为标准输出

command < filename    把command命令以filename文件作为标准输入

command << delimiter   把从标准输入中读入,直至遇到delimiter分界符

command <&m    把文件描写叙述符m作为标准输入

command >&m    把标准输出重定向到文件描写叙述符m中

command <&-    把关闭标准输入

2.双向重定向

  即在重定向数据到目标文件的同一时候,还要保证数据可以正常处理,使用tee命令。

  tee [-a]  file

    -a 往文件尾加入内容  

  last | tee last_backup | cut -d " " -f 1  #tee相当于对last的结果备份了一次

最新文章

  1. 关系数据库常用SQL语句语法大全
  2. FusionCharts教程文档下载
  3. EMLS项目推进思考
  4. [Js/Jquery]立即执行匿名函数
  5. mysql sql维护常用命令
  6. jstack命令详解
  7. 12岁的少年教你用Python做小游戏
  8. Windows安装配置php+memcached的方法
  9. C,C++宏中#与##的讲解[转]
  10. LDS,LES,LFS,LGS,LSS指令
  11. jsp的常用指令有哪些(编译指令/动作指令整理)
  12. Does not contain a valid host:port authority: Master:8031 (configuration property &#39;yarn.resourcemanager.resource-tracker.address&#39;)
  13. Linux下su与su -命令的区别
  14. SDOI(队列)
  15. angular中的jsonp记录
  16. Android查缺补漏(View篇)--自定义 View 的基本流程
  17. PL/SQl编程 基本语法
  18. python特性--property
  19. HANA 与 Oracle 12c哪一个更快
  20. 使用命令行执行sql文件

热门文章

  1. Linux 常用的一些操作
  2. 随机生成一串字符串(java)
  3. python培训拾遗
  4. Web移动端常见问题-摘抄
  5. C#网页数据采集(三)HttpWebRequest
  6. 一些基本LINUX命令以及测试环境的搭建
  7. MakeDown渲染出错
  8. qemu的动态翻译机制
  9. 剑指offer——75不用加减乘除做加法
  10. jQuery全部选择器总结(转载)