LINUX基础培训八之管道符与重定向

发布时间:2024年01月15日
前言、本章学习目标?
  1. 了解并掌握LINUX管道符和重定向的用法

一、管道符的用法

在linux上可以使用管道符“|”用来组合命令,左边的命令输出用作右边的命令输入,从而组合成为功能强大的命令。

例1,使用cat查看message日志,然后用more实现换页暂停功能:
# cat /var/log/message | more

例2,查找“/usr”目录下占据空间最大的5个目录,首先用du统计占据空间大小,然后用sort进行排序,最后用head提取前5行。这个组合命令可以用于文件系统告警故障的处理:
# du -k /usr | sort -nr -k 1 |head -5

例3,查看oracle数据库服务器所有的oracle用户进程,首先使用ps查询进程,然后用grep查找包含oracle字符串的行:
# ps -ef | grep oracle

例4,杀掉oracle数据库所有的外部连接进程,首先使用ps查询进程,然后用grep查找包含“LOCAL=NO”字符串的行,再用awk找到进程号,最后用kill杀连接进程:
# ps -ef|grep 'LOCAL=NO'|awk '{print $2}'| xargs kill -9

例5,查找服务器上所有可用的监听端口,例如数据库监听端口1521,首先用netstat显示网络连接,然后用grep查找包含“LISTEN”字符串的行:
# netstat -anp | grep LISTEN

例6,查找服务器上所有到数据库1521监听端口的网络连接,首先使用netstat显示网络连接,然后用grep查找包含“1521”字符串的行。这个组合命令可以用于查询外部连接来自哪个应用服务器和IP地址:
# netstat -anp | grep 1521
?

二、重定向的用法

1、输入、输出可以重定向到其它文件;
2、重定向输出使用“>”、“>>”操作符,“>”为覆盖文件,“>>”为追加内容到文件尾部;
3、重定向输入使用“<” 、“<<” 操作符;

例1,重定向输出,查找messages文件中所有包含“fail”字符串的错误行,输出到新文件testnew.log:
# grep fail /var/log/messages > /root/testnew.log

例2,重定向输出,查找messages-20180930文件中所有包含“fail”字符串的错误行,追加输出到文件testnew.log:
# grep fail /var/log/messages-20180930 >> /root/testnew.log

例3,重定向输入,以testnew.log作为输入,统计文件的行数:
# wc -l < /root/testnew.log

例4,重定向输入,在shell脚本里使用<<和用户自定义终止符EOF,表示后续的输入作为子shell的输入,到下一个EOF终止,最后再返回主shell。例如下面的ftp脚本,连接到ftp服务器后,自动带入用户名和密码,然后上传新文件,删除老文件,最后中断ftp连接:

# vi test_ftp.sh
ftp -n -i 192.168.59.129 << EOF
user ftpuser ftpuser
bin
mput $yesterday.*
delete $three_day_ago.*
bye
EOF

三、本章实验

·1、在/usr/share/dict/linux.words中找出所有包含abrot的行。复制所有这些行并按照原来的顺序放在文件/root/grepfile.txt中。/root/grepfile.txt应该没有空白行,所有的行必须是原有行的精确复制。

文章来源:https://blog.csdn.net/vincent0920/article/details/135592848
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。