Linux中的输入输出管理

一.管理输入输出的符号
1.输出重定向

##重定向正确输出
2> ##重定向错误输出
&> ##重定向所有输出
== 注意:重定向会覆盖原文件内容==
示例:
注意:以下实验必须在普通用户下完成
find /etc/ -name passwd > file ##定向正确输出到file
find /etc/ -name passwd 2> file.err ##定向错误输出到file
find /etc/ -name passwd &> file.all ##定向所有输出到file
file ##清空file

2.输出追加
2>> ##追加错误输出到文件最后
&>> ##追加所有输出到文件最后

##追加正确输出到文件最后
注意:追加不会覆盖源文件

示例:
find /etc/ -name passwd >> file1 ##追加正确输出到file1
find /etc/ -name passwd 2>> file2 ##追加错误输出到file2
find /etc/ -name passwd &>> file3 ##追加所有输出到file3
注意:
追加与重定向的区别:重定向会覆盖源文件内容,追加是把定向输出放到源文件但不会覆盖源文件内容

4.输入管理
格式 <<EOF
内容 EOF
5.管道
管道的作用
“|” 管道的作用是把前一条命令的输出变成后一条命令的输入

注意:
管道只允许正确输出通过
通过管道的输入将会变成输入,而变成输入的这些输出是会被第二条命令处理的
如果需要保存输出内容,那么需要复制一份输出,用到的命令是“tee”

此实验在普通用户下操作:
例如
1.显示/etc/passwd文件的第15-18行

[root@localhost Desktop]# cat /etc/passwd |head -n 18 |tail -n 4
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin
avahi-autoipd:x:170:170:Avahi IPv4LL Stack:/var/lib/avahi-autoipd:/sbin/nologin
rlpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin

2.显示/bin中文件包含大写字母的文件,保存到bin_westos_file.txt中,并统计个数显示到屏幕

[root@localhost Desktop]# ls /bin/*[[:upper:]]*
/bin/amuFormat.sh  /bin/Mail  /bin/X  /bin/Xorg  /bin/Xvnc
[root@localhost Desktop]# ls /bin/*[[:upper:]]* |wc -l
5
[root@localhost Desktop]# ls /bin/*[[:upper:]]*|tee bin_westos_file.txt |wc -l
5

3.显示当前时,显示格式为hh:mm:ss,并保存到文件time.txt文件中

[root@localhost Desktop]# date +%T
17:00:58
[root@localhost Desktop]# date +%T >time.txt

4.在student用户下查找/etc下的passwd文件,屏蔽错误输出

[root@localhost Desktop]# su - student
Last login: Sun Mar 24 16:05:17 EDT 2019 on pts/0
[student@localhost ~]$ find /etc/ -name passwd 2>/dev/null
/etc/passwd
/etc/pam.d/passwd

5.在student用户下查找/etc下的passwd文件,正确输出保存到/tmp/westos.out,错误输出保存到/tmp/westos.err

[student@localhost ~]$ find /etc -name passwd >/tmp/westos.out 2>/tmp/westos.err
[student@localhost ~]$ cat /tmp/westos.out     ##验证成功
/etc/passwd              
/etc/pam.d/passwd
[student@localhost ~]$ cat /tmp/westos.err     ##验证成功
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

6.在student用户下查找/etc下passwd文件,显示命令输出并保存输出到/tmp/westos.all中

[student@localhost ~]$ find /etc -name passwd 2>&1 |tee /tmp/westos.all
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

猜你喜欢

转载自blog.csdn.net/weixin_44822212/article/details/88778710