|NO.Z.00040|——————————|LinuxShell|——|Linux&Shell$Bash功能.V06|——|管道符|
一、管道符
### --- 行提取命令 grep参数说明
~~~ # 选项:
~~~ -A 数字:列出符合条件的行,并列出后续的 n 行
~~~ -B 数字:列出符合条件的行,并列出前面的 n 行
~~~ -c:统计找到的符合条件的字符串的次数
~~~ -i:忽略大小写
~~~ -n:输出行号
~~~ -v:反向查找
~~~ --color=auto 搜索出的关键字用颜色显示
[root@localhost ~]# grep [选项] "搜索内容" 文件名
### --- grep实验:举几个例子:
~~~ 查找用户信息文件/etc/passwd 中,有多少可以登录的用户
[root@localhost ~]# grep "/bin/bash" /etc/passwd
root:x:0:0:root:/root:/bin/bash
### --- 再举几个例子吧:
~~~ 查找包含有“root”的行,并列出后续的 3 行
[root@localhost ~]# grep -A 3 "root" /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
~~~ 查找可以登录的用户,并显示行号
[root@localhost ~]# grep -n "/bin/bash" /etc/passwd
1:root:x:0:0:root:/root:/bin/bash
~~~ 查找不含有“/bin/bash”的行,其实就是列出所有的伪用户
[root@localhost ~]# grep -v "/bin/bash" /etc/passwd
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
二、find和grep的区别
### --- find 命令是在系统当中搜索符合条件的文件名,
~~~ 如果需要模糊查询,使用通配符(通配符我们下一小节进行介绍)进行匹配,
~~~ 搜索时文件名是完全匹配。
~~~ 建立文件 abc
[root@localhost ~]# touch abc
~~~ 建立文件 abcd
[root@localhost ~]# touch abcd
~~~ 搜索文件名是 abc 的文件,只会找到 abc 文件,而不会找到文件 abcd
~~~ 虽然 abcd 文件名中包含 abc,但是 find 是完全匹配,
~~~ 只能和要搜索的数据完全一样,才能找到
~~~ # 注意:find 命令是可以通过-regex 选项识别正则表达式规则的,也就是说 find 命令可以按
~~~ 照正则表达式规则匹配,而正则表达式是模糊匹配。但是对于初学者而言,
~~~ find 命令和 grep 命令本身就不好理解,所以我们这里只按照通配符规则来进行 find 查询。
~~~ grep 命令是在文件当中搜索符合条件的字符串,如果需要模糊查询,使用正则表达式进行匹配,
~~~ 搜索时字符串是包含匹配。
[root@localhost ~]# find . -name "abc"
./abc
~~~ 在 test 文件中写入 abc 数据
[root@localhost ~]# echo abc > test
~~~ 在 test 文件中再追加 abcd 数据
[root@localhost ~]# echo abcd >> test
~~~ grep 命令查找时,只要数据行中包含有 abc,就会都列出
~~~ 所以 abc 和 abcd 都可以查询到
[root@localhost ~]# grep "abc" test
abc
abcd
三、管道符
### --- 管道符
~~~ 查询下本地所有网络连接,提取包含 ESTABLISHED(已建立连接)的行
~~~ 就可以知道我们的服务器上有多少已经成功连接的网络连接
[root@localhost ~]# ll -a /etc/ | more
[root@localhost ~]# netstat -an | grep "ESTABLISHED"
~~~ 如果想知道具体的网络连接数量,就可以再使用 wc 命令统计行数
[root@localhost ~]# netstat -an | grep "ESTABLISHED" | wc -l
[root@localhost ~]# rpm -qa | grep httpd
Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
——W.S.Landor
分类:
cdv008-shell
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」