Linux使用之grep,shell脚本(一)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux使用之grep,shell脚本(一)相关的知识,希望对你有一定的参考价值。

参考技术A

在使用Linux的过程中,场景有时候便会涉及到查找文本文件的内容,假如现在我们想要在一个三百多行的文本中找到特定的语句,或者在这其中查找是否含有特定的字段应该怎么办呢?
这里便出现了专门的文本处理工具——grep,grep是Linux中常用的文本处理工具之一。
grep的全称为“ Global search Regular Expression and Print out the line”。
全称中的“Glibal search”意思为全局搜索的意思。
全称中的“Regular Expression”意思为正则表达式。
所以从全称中就可以理解为gerp是一个可以利用正则表达式的全局搜索工具。grep会按照正则表达式的匹配原则在文本文件中按照逐行匹配处理的方法来处理文本并输出。
来看看grep的用法。

来看看案例。
案例1.统计出/etc/passwd文件中其默认shell为非/sbin/nologin的用户个数,并将用户都显示出来

上面的案例开始匹配了/sbin/nologin关键词,但是案例中只需要除了它之外的shell,所以讲它使用-v选项排除开就可以了。

案例2.查出用户UID最大值的用户名、UID及shell类型

案例3.统计当前连接本机的每个远程主机IP的连接数,并按从大到小排序

上面的案例中ss -nt 查看连接情况,然后将EATAB状态的过滤出来,在进行处理,最后提取出结果并完成排序。

案例4:编写脚本disk.sh,显示当前硬盘分区中空间利用率最大的值

案例5.编写脚本 systeminfo.sh,显示当前主机系统信息,包括:主机名,IPv4地址,操作系统版本,内核版本,CPU型号,内存大小,硬盘大小

shell脚本(linux)

写出一个简单的脚本,以实现下列功能:
判断用户usr2是否存在,如果不存在,添加之。使之宿主目录为/home/usr2并且不能从telnet登陆服务器。以用户usr1为蓝本建立磁盘定额。
在线等!

if cat /etc/passwd | cut -d":" -f1 | grep -E "\busr2\b" > /dev/null 2>&1
then
echo "Account usr2 exists!"
else
useradd usr2 -d /home/usr2 -s /sbin/nologin && edquota -p usr1 usr2
fi

exit 0

----------------------

直接grep ^usr2不能精确匹配 ,类似usr22这样的也能被匹配到 ,可能造成错误
参考技术A MARK=`cat /etc/passwd | grep ^usr2`
if [ -z $MARK ] ; then
useradd usr2 -s /sbin/nologin
edquota -p usr1 usr2
else
echo "user usr2 exists"
fi

exit 0

以上是关于Linux使用之grep,shell脚本(一)的主要内容,如果未能解决你的问题,请参考以下文章

Linux重启Java的.sh脚本shell

Linux之Shell脚本实战监控系统的磁盘空间使用率

linux 执行shell脚本

shell脚本启动、关闭服务

shell脚本--内容查找之grep命令

shell脚本之grep的使用方法