一、输出重定向:
> ##重定向正确输出
2> ##重定向错误输出
&> ##重定向所有输出
注意:重定向会覆盖源文件内容
示例:
注意:以下实验必须在普通用户下完成,否则没有错误输出。
[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>> ##追加错误输出到文件最后
&>> ##追加所有输出到文件最后
注意:
追加不会覆盖原文件内容,会加在原文件的末尾
示例:
首先建立三个有内容的文件
find /etc/ -name passwd >>test1 ##追加正确输出到test
1
find /etc/ -name passwd 2>>test2 ##追加错误输出到test2
find /etc/ -name passwd &>>test3
三、输入重定向
输入重定向是不使用系统提供的标准输入端口输入文件,而是使用“<”指定文件作为标准输入设备。
示例:
不使用输入重定向时修改密码
使用输入重定向
vim test
退出保存并给test执行的权限
chmod +x test
执行文件
四、管道的作用
"|"管道的作用是将前一条命令的正确输出作为管道符后面命令的标准输入
管道只允许正确输出通过,“2>&1”可以把错误输出伪装为正确。
如果需要保存输出内容,那么需要复制一份输出,用到的命令是“tee”
在普通用户下进行操作:
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再统计行数