Linux输入输出重定向与管道
正则大全
Java Script
72
18
60
2019-05/01 15:13
在平时的运维工作中,会经常遇到linux重定向操作和管道符。linux重定向分为输入重定向和输出重定向。 简言之,输入重定向就是将文件内容导入到命令中,而输出重定向则是将原本要输出到屏幕上的信息写入到指定的文件中。

重定向

标准输入重定向(STDIN,文件描述符为0):默认从键盘输入,也可以从其他文件或命令输入
标准输出重定向(STDOUT,文件描述符为1):默认输出到屏幕
标准错误重定向(STDERR,文件描述符为2):默认输出到屏幕

输入重定向及其作用
命令《 文件 : 将文件作为命令的标准输入
命令《 分界符 : 从标准输入中读取,直到遇见分界符才终止
命令《 文件1《 文件2 : 将文件1作为命令的标准输入并将标准输出到文件2 输出重定向及其作用


输出重定向及其作用
命令 > 文件 : 将标准输出重定向到文件中(清空原有文件的数据)
命令 >> 文件 : 将标准输出重定向到文件中(追加到原有的文件中)
命令 2> 文件 : 将标准错误重定向到一个文件中(清空原有文件的数据)
命令 2>> 文件 : 将标准错误重定向到一个文件中(追加到原有文件中)
命令 >> 文件 2>&1 或 命令 &>> 文件 : 将标准输出和标准错误重定向到文件中(追加到原有文件中)

[root@linux ~]# ls -l > ls.txt
[root@linux ~]# cat ls.txt
总用量 581856
-rw-r--r--. 1 root root 587202560 1月 5 22:47 560_file
drwxr-xr-x. 2 root root 6 1月 20 22:20 Desktop
-rw-r--r--. 1 root root 19 1月 5 22:36 diff_a.txt
-rw-r--r--. 1 root root 19 1月 5 22:37 diff_b.txt
drwxr-xr-x. 2 root root 6 1月 5 21:53 Documents
drwxr-xr-x. 2 root root 6 1月 5 21:53 Downloads
drwxr-xr-x. 3 root root 16 1月 5 22:52 etc
-rw-r--r--. 1 root root 8596360 1月 5 22:50 etc.tar.gz
drwx------. 57 linux linux 4096 1月 5 22:57 findresults
-rw-r--r--. 1 root root 0 1月 20 22:33 linuxprobe
-rw-r--r--. 1 root root 0 1月 20 23:39 ls.txt
drwxr-xr-x. 2 root root 6 1月 5 21:53 Music
drwxr-xr-x. 2 root root 6 1月 5 21:53 Pictures
drwxr-xr-x. 2 root root 6 1月 5 21:53 Public
-rw-r--r--. 1 root root 55 1月 20 22:36 readme.txt
-rw-r--r--. 1 root root 50 1月 20 22:39 stderr.txt
drwxr-xr-x. 2 root root 6 1月 5 21:53 Templates
drwxr-xr-x. 2 root root 6 1月 5 21:53 Videos

ls -l > ls.txt 将ls命令的标准输出重定向到文件中,并且是以覆盖的方式,这样会清空ls.txt原有的内容。

[root@linux ~]# echo 'welcome to beijing' > ls.txt
[root@linux ~]# echo 'welcome to hangzhou' >> ls.txt
[root@linux ~]# cat ls.txt
welcome to beijing
welcome to hangzhou

echo 'welcome to beijing' > ls.txt以覆盖的方式将命令的标准输出重定向到文件ls.txt可见ls.txt文件原有的内容被清除了。
echo 'welcome to hangzhou' >> ls.txt以追加的方式将命令的标准输出重定向到文件ls.txt可见ls.txt文件原有的内容被保留了。


[root@linux ~]# ls -l xxxxxx
ls: 无法访问xxxxxx: 没有那个文件或目录
[root@linux ~]# ls -l xxxxxx 2> error.txt
[root@linux ~]# cat error.txt
ls: 无法访问xxxxxx: 没有那个文件或目录

ls -l xxxxxx 2> error.txt 将命令的标准错误重定向到文件error.txt文件中。这时本应该显示在屏幕上的错误信息会重定向到文件error.txt中。

管道
管道的作用简言之就是将上一个命令的输出作为下一个命令的输入,格式为 "命令A | 命令B | 命令C"

统计系统中的用户数
[root@linux ~]# cat /etc/passwd | wc -l
38


将cat命令的输出作为wc命令的输入,然后得到/etc/passwd文件的行数,效果等价于wc -l /etc/passwd

统计系统中不能登录的用户数
[root@linux ~]# cat /etc/passwd | grep "/sbin/nologin" | wc -l
33


在cat命令的输出中查找包含"/sbin/nologin"的行,并将其作为wc命令的输入,得到的就是系统在被限制登录的用户数。
22赞
正则大全
Java Script
此文章有 40 人阅读
10 评论
张美丽的美
2019年11月01日 00:31
这篇文章确实有点意思,学到了!希望博主能够多发表类似的这些文章,而且我关注这个博客网站已经很久,感觉博主创作很有质量, 博主应该长得很帅吧,而且博主发表的每一篇文章都能让我学到好多, 希望能够坚持下去,多多发表一些这么有知识含量的文章,!加油!!!!

王小帅的帅
2019年11月02日 09:55
看你这马屁拍的!要脸不!

面朝大海,春暖花开 -> 王小帅的帅
2019年11月01日 00:31
我觉得也是,这马屁拍的,我都看不下去了,不过我觉得坚持写博客文章本身就是一件很不容易的事。

我带你们打
2019年11月01日 00:31
在?谷歌CEO?请问你们还招人吗?

烟味真臭啊
2019年11月01日 00:31
就这?这么垃圾的文章也配?

我带你们打
2019年11月02日 09:55
爱看看,不看滚!

张美丽的美
2019年11月01日 00:35
这篇文章确实有点意思,学到了!希望站长能够多发表类似的这些文章,而且我关注这个博客网站已经很久,感觉博主创作很有质量每一片文章都能让我学到好多, 能够坚持下去,多多发表一些这么有知识含量的文章,!加油!!!!

王小帅的帅
2019年11月02日 09:55
你刷尼玛呢!

张美丽的美
2019年11月01日 00:35
这篇文章确实有点意思,学到了!希望站长能够多发表类似的这些文章,而且我关注这个博客网站已经很久,感觉博主创作很有质量每一片文章都能让我学到好多, 能够坚持下去,多多发表一些这么有知识含量的文章,!加油!!!!

王小帅的帅
2019年11月02日 09:55
你刷尼玛呢!
更多评论
重定向
输入重定向及其作用
输入重定向及其作用
管道
统计系统中的用户数
统计系统中不能登录的用户数
RD Minfo
我的简历我的历程我的作品
© Copyright 2016-2019 All Rights Reserved. 浙ICP备16044260号-1Power by Minfo | V0.01Beta