Linux输入与输出的重定向

1、输出重定向:

>		##重定向正确输出
2>		##重定向错误输出
&>		##重定向全部输出

注意:重定向会覆盖源文件内容
示例:
注意:如下实验必须在普通用户下完成,不然没有错误输出。linux

[student@localhost ~]$ find /etc/ -name passwd >file		##定义正确输出到file
find: ‘/etc/pki/CA/private’: Permission denied
find: ‘/etc/pki/rsyslog’: Permission denied
find: ‘/etc/audit’: Permission denied
find: ‘/etc/polkit-1/rules.d’: Permission denied
find: ‘/etc/polkit-1/localauthority’: Permission denied
find: ‘/etc/grub.d’: Permission denied
find: ‘/etc/selinux/targeted/modules/active’: Permission denied
find: ‘/etc/lvm/archive’: Permission denied
find: ‘/etc/lvm/backup’: Permission denied
find: ‘/etc/lvm/cache’: Permission denied
find: ‘/etc/dhcp’: Permission denied
find: ‘/etc/firewalld’: Permission denied
find: ‘/etc/audisp’: Permission denied
find: ‘/etc/sudoers.d’: Permission denied
find: ‘/etc/ipsec.d’: Permission denied
find: ‘/etc/libvirt’: Permission denied
find: ‘/etc/cups/ssl’: Permission denied

在这里插入图片描述

[student@localhost ~]$ find /etc/ -name passwd 2>file1
/etc/passwd							##定义错误输出到file1
/etc/pam.d/passwd
[student@localhost ~]$ cat file1
find: ‘/etc/pki/CA/private’: Permission denied
find: ‘/etc/pki/rsyslog’: Permission denied
find: ‘/etc/audit’: Permission denied
find: ‘/etc/polkit-1/rules.d’: Permission denied
find: ‘/etc/polkit-1/localauthority’: Permission denied
find: ‘/etc/grub.d’: Permission denied
find: ‘/etc/selinux/targeted/modules/active’: Permission denied
find: ‘/etc/lvm/archive’: Permission denied
find: ‘/etc/lvm/backup’: Permission denied
find: ‘/etc/lvm/cache’: Permission denied
find: ‘/etc/dhcp’: Permission denied
find: ‘/etc/firewalld’: Permission denied
find: ‘/etc/audisp’: Permission denied
find: ‘/etc/sudoers.d’: Permission denied
find: ‘/etc/ipsec.d’: Permission denied
find: ‘/etc/libvirt’: Permission denied
find: ‘/etc/cups/ssl’: Permission denied

在这里插入图片描述

[student@localhost ~]$ find /etc/ -name passwd &>file2
[student@localhost ~]$ cat file2
find: ‘/etc/pki/CA/private’: Permission denied
find: ‘/etc/pki/rsyslog’: Permission denied
find: ‘/etc/audit’: Permission denied
/etc/passwd
find: ‘/etc/polkit-1/rules.d’: Permission denied
find: ‘/etc/polkit-1/localauthority’: Permission denied
find: ‘/etc/grub.d’: Permission denied
find: ‘/etc/selinux/targeted/modules/active’: Permission denied
/etc/pam.d/passwd
find: ‘/etc/lvm/archive’: Permission denied
find: ‘/etc/lvm/backup’: Permission denied
find: ‘/etc/lvm/cache’: Permission denied
find: ‘/etc/dhcp’: Permission denied
find: ‘/etc/firewalld’: Permission denied
find: ‘/etc/audisp’: Permission denied
find: ‘/etc/sudoers.d’: Permission denied
find: ‘/etc/ipsec.d’: Permission denied
find: ‘/etc/libvirt’: Permission denied
find: ‘/etc/cups/ssl’: Permission denied

在这里插入图片描述

2、输出追加

>>			##追加正确输出到文件最后
2>>			##追加错误输出到文件最后
&>>			##追加全部输出到文件最后

注意:
追加不会覆盖原文件内容,会加在原文件的末尾
示例:
首先创建三个有内容的文件
在这里插入图片描述web

find /etc/ -name passwd >>test1			##追加正确输出到test
 1

在这里插入图片描述

find /etc/ -name passwd 2>>test2		##追加错误输出到test2

在这里插入图片描述

find /etc/ -name passwd &>>test3

在这里插入图片描述

3、输入重定向

输入重定向是不使用系统提供的标准输入端口输入文件,而是使用“<”指定文件做为标准输入设备。
示例:
不使用输入重定向时修改密码
在这里插入图片描述
使用输入重定向vim

vim test

在这里插入图片描述
退出保存并给test执行的权限svg

chmod +x test

执行文件
在这里插入图片描述3d

4、管道的做用

"|"管道的做用是将前一条命令的正确输出做为管道符后面命令的标准输入
管道只容许正确输出经过,“2>&1”能够把错误输出假装为正确。
若是须要保存输出内容,那么须要复制一份输出,用到的命令是“tee”code

在普通用户下进行操做:xml

find /etc/ -name passwd | wc -l		##看到的结果为2,错误输出不能经过管道

在这里插入图片描述

find /etc/ -name passwd 2>&1 | wc -l	##会看到19,编号为2的输出会被“2>&1”转换为编号1

在这里插入图片描述

find /etc/ -name passwd 2>&1 | tee file | wc -l	##保存一份输出到file再统计行数

在这里插入图片描述