shell 的标准输入/输出,分别称为标准输入(standard input), 标准输出(standard output), 以及标准错误输出(standard error).
lz3.1
root@administrator-laptop:~# cat (cat命令没有指定任何参数,将读取标准输入,返回并写入标准输出)
input (来自键盘,标准输入)
input (来自显示器,标准输出)
^D (Ctrl+D健,结束)
lz3.2
root@administrator-laptop:~# cat /etc/PASSWD
cat: /etc/PASSWD: 没有那个文件或目录 (标准错误输出)
lz3.4
root@administrator-laptop:~# grep -n 'root' < /etc/passwd >root
root@administrator-laptop:~# cat root
1:root:x:0:0:root:/root:/bin/bash
lz3.5
root@administrator-laptop:~# grep -n 'bash' < /etc/passwd | grep -v 'root' >> root
root@administrator-laptop:~# cat root
1:root:x:0:0:root:/root:/bin/bash
24:couchdb:x:105:113:CouchDB Administrator,,,:/var/lib/couchdb:/bin/bash
34:administrator:x:1000:1000:admin,,,:/home/administrator:/bin/bash
以 < 改变标准输入,lz3.4/3.5中 重定向标准输入来自 /etc/passwd 文件,
以 > 改变标准输出,重定向标准输出到 root 文件,这里需注意的是如果root文件不存在时会新建一个, 如果root文件已经存在了将会被覆盖掉,
以 | 建立管道,第一个命令的标准输出(grep -n 'bash' < /etc/passwd),变成( | ) 第二个命令的标准输入(grep -v 'root' >> root), 管道的好处是,你可以使用多个命令来完成复杂的任务,通过管道每个命令标准输出将成为下一个命令的标准输入,
以 >> 追加标准输出到文件末尾,如同">"一样如果root文件不存在时会新建一个,如果root文件已经存在了则追加数据到文件末尾,而不是覆盖文件。
lz3.1
root@administrator-laptop:~# cat (cat命令没有指定任何参数,将读取标准输入,返回并写入标准输出)
input (来自键盘,标准输入)
input (来自显示器,标准输出)
^D (Ctrl+D健,结束)
lz3.2
root@administrator-laptop:~# cat /etc/PASSWD
cat: /etc/PASSWD: 没有那个文件或目录 (标准错误输出)
lz3.4
root@administrator-laptop:~# grep -n 'root' < /etc/passwd >root
root@administrator-laptop:~# cat root
1:root:x:0:0:root:/root:/bin/bash
lz3.5
root@administrator-laptop:~# grep -n 'bash' < /etc/passwd | grep -v 'root' >> root
root@administrator-laptop:~# cat root
1:root:x:0:0:root:/root:/bin/bash
24:couchdb:x:105:113:CouchDB Administrator,,,:/var/lib/couchdb:/bin/bash
34:administrator:x:1000:1000:admin,,,:/home/administrator:/bin/bash
以 < 改变标准输入,lz3.4/3.5中 重定向标准输入来自 /etc/passwd 文件,
以 > 改变标准输出,重定向标准输出到 root 文件,这里需注意的是如果root文件不存在时会新建一个, 如果root文件已经存在了将会被覆盖掉,
以 | 建立管道,第一个命令的标准输出(grep -n 'bash' < /etc/passwd),变成( | ) 第二个命令的标准输入(grep -v 'root' >> root), 管道的好处是,你可以使用多个命令来完成复杂的任务,通过管道每个命令标准输出将成为下一个命令的标准输入,
以 >> 追加标准输出到文件末尾,如同">"一样如果root文件不存在时会新建一个,如果root文件已经存在了则追加数据到文件末尾,而不是覆盖文件。
本文转自 dongnan 51CTO博客,原文链接:
http://blog.51cto.com/dngood/591497