linux基础之grep训练
grep [OPTIONS] PATTERN [FILE...] 选项: --color=auto: 对匹配到的文本着色显示 -v : 显示不能够被pattern匹配到的行 -i : 忽略字符大小写 -o : 仅显示匹配到的单词 -q: 静默模式,不输出任何消息 -A # :after, 后#行 -B # :before,前#行 -C # : context, 前后各#行 -E ; 使用扩展的正则表达式 grep练习: 1. 显示/proc/meminfo 文件中以大小写s开头的行:(要求: 使用两种方式) # grep "^[sS]" /proc/meninfo # grep -i "^s" /proc/meminfo 2. 显示/etc/passwd文件中不以/bin/bash结尾的行 # grep -v "/bin/bash$" /etc/passwd 3. 显示/etc/passwd 文件中ID号最大的用户的用户名 # sort -t: -k 3 -n /etc/passwd | tail -1 | cut -d: -f1 4.如果用户root存在,显示其默认的shell程序 # grep "^root\>" /etc/passwd &> /dev/null | cut -d: -f7 # id root &> /dev/null && grep "^root\>" /etc/passwd | cut -d: -f7 5. 找出/etc/passwd中的两位或三位数 # grep -o "\<[0-9]\{2,3\}\>" /etc/passwd 6.显示/etc/rc.d/rc.sysinit文件中,至少以一个空白字符开头的且后面存在非空白字符的行 # grep "^[[:space:]].*[^[:space:]].*" # grep "^\([[:space:]]\).*[^\1].*" # grep "^[[:space:]]"\+[^[:space:]] 7.找出netstat -tan 命令的结果中以 LISTEN 后跟0、1或多个空白字符结尾的行 # netstat -tan | grep "LISTEN[[:SPACE:]]*$" 8.添加用户bash、testbash、basher以及nologin(其shell为/sbin/nologin):而后找出/etc/passwd文件中用户名同shell名的行 # useradd -s /sbin/nologin nologin # useradd bash # grep "^\([[:alnum:]]\+\>\).*\1$" /etc/passwd 9. 写一个脚本,实现如下功能 如果user1用户存在,就显示其存在,否则添加之 显示添加的用户的id号等信息 #!/bin/bash id user1 &> /dev/null && echo "user1已存在" || useradd user1 id user1 10. 写一个脚本,完成如下功能 如果root用户登录了当前系统,就显示root用户在线,否则说明其未登录 #!/bin/bash w | grep "^root\>" &> /dev/null && echo "root logged" || echo "root not logged" egrep = grep -E egrep [OPTIONS] PATTERN [FILE...] egrep练习: 1.显示当前系统root、centos或user1用户的默认shell和UID # egrep "^root|centos|user1\>" /etc/passwd | cut -d: -f3,7 2.找出/etc/rc.d/init.d/functions文件(centos6)中某单词后面跟一个小括号的行 # egrep -o "^[_[:alnum:]]+\(\)" /etc/rc.d/init.d/functions 3.使用echo输出一绝对路径,使用egrep取出其基名 # echo "/etc/rc.d/init.d/functions" | egrep -o "[^\/]+" | tail -1 进一步:使用egrep取出路径的目录名,类似于dirname命令的结果 # echo "/tmp/init.d/function/base.txt" | egrep "(\/).*\1\b" 4.找出ifconfig命令结果中1-255之间的数值 # ifconfig | egrep "\<([1-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\>"
分类:
Linux
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix