使用grep做文本的过滤

news2024/9/25 13:14:30

常与 管道符(|)结合在一起使用

管道符 piping:用于前一个命令的输出当作后一个命令的输入。常用于连接多个命令


┌──(root㉿kali)-[~/work/exam]
└─# ps aux | grep apache2
root       41946  0.0  0.2   6568  2304 pts/1    S+   17:26   0:00 grep --color=auto apache2
                                                                                               
┌──(root㉿kali)-[~/work/exam]
└─# 

netstat -tunlp 查看端口

──(root㉿kali)-[~/work/exam] 查看端口 -t tcp -u udp -n 数字形式显示 -l 显示当前正在监听的端口 -p 哪个程序在使用这个端口
└─# netstat -tunlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name 

ps aux 显示系统正在运行的所有进程

┌──(root㉿kali)-[~/work/exam] 显示所有系统正在运行进程
└─# ps aux
USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root           1  0.0  0.9  20776  8524 ?        Ss   16:04   0:02 /sbin/init splash
root           2  0.0  0.0      0     0 ?        S    16:04   0:00 [kthreadd]
root           3  0.0  0.0      0     0 ?        I<   16:04   0:00 [rcu_gp]
root           4  0.0  0.0      0     0 ?        I<   16:04   0:00 [rcu_par_gp]
root           5  0.0  0.0      0     0 ?        I<   16:04   0:00 [slub_flushwq]
root           6  0.0  0.0      0     0 ?        I<   16:04   0:00 [netns]
root           9  0.0  0.0      0     0 ?        I    16:04   0:03 [kworker/u256:0-events_unbou
root          10  0.0  0.0      0     0 ?        I<   16:04   0:00 [mm_percpu_wq]
root          11  0.0  0.0      0     0 ?        I    16:04   0:00 [rcu_tasks_kthread]
root          12  0.0  0.0      0     0 ?        I    16:04   0:00 [rcu_tasks_rude_kthread]
root          13  0.0  0.0      0     0 ?        I    16:04   0:00 [rcu_tasks_trace_kthread]
root          14  0.0  0.0      0     0 ?        S    16:04   0:02 [ksoftirqd/0]
root          15  0.1  0.0      0     0 ?        I    16:04   0:04 [rcu_preempt]
root          16  0.0  0.0      0     0 ?        S    16:04   0:00 [migration/0]

systemctl 系统服务控制工具

systemctl 命令 服务名称
常用命令:start :启动 stop:停止 restart :重启

──(root㉿kali)-[~/work/exam]  系统服务控制工具
└─# systemctl -h
systemctl [OPTIONS...] COMMAND ...

Query or send control commands to the system manager.

Unit Commands:
  list-units [PATTERN...]             List units currently in memory
  list-automounts [PATTERN...]        List automount units currently in memory,
                                      ordered by path
  list-paths [PATTERN...]             List path units currently in memory,
                                      ordered by path
  list-sockets [PATTERN...]           List socket units currently in memory,
                                      ordered by address
  list-timers [PATTERN...]            List timer units currently in memory,
                                      ordered by next elapse
  is-active PATTERN...                Check whether units are active
  is-failed PATTERN...                Check whether units are failed

┌──(root㉿kali)-[~/work/exam]
└─# systemctl start apache2
                                                                                               
┌──(root㉿kali)-[~/work/exam]
└─# ps aux | grep apache2  
root       44345  0.9  2.1 205256 19992 ?        Ss   17:31   0:00 /usr/sbin/apache2 -k start
www-data   44348  0.0  1.0 205968  9952 ?        S    17:31   0:00 /usr/sbin/apache2 -k start
www-data   44349  0.0  1.0 205968  9952 ?        S    17:31   0:00 /usr/sbin/apache2 -k start
www-data   44350  0.0  1.0 205968  9952 ?        S    17:31   0:00 /usr/sbin/apache2 -k start
www-data   44351  0.0  1.0 205968  9952 ?        S    17:31   0:00 /usr/sbin/apache2 -k start
www-data   44352  0.0  1.0 205968  9952 ?        S    17:31   0:00 /usr/sbin/apache2 -k start
root       44394  0.0  0.2   6568  2304 pts/1    S+   17:31   0:00 grep --color=auto apache2
                                                                                               
┌──(root㉿kali)-[~/work/exam]
└─# 

echo $? 查看命令的执行状态

┌──(root㉿kali)-[~/work/exam] 正确执行为 0
└─# echo $?   
0

┌──(root㉿kali)-[~/work/exam]
└─# netstat -tunlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp6       0      0 :::80                   :::*                    LISTEN      44345/apache2      

ifconfig 查看ip 地址

┌──(root㉿kali)-[~/work/exam]
└─# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.56.128  netmask 255.255.255.0  broadcast 192.168.56.255
        inet6 fe80::20c:29ff:feb3:7991  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:b3:79:91  txqueuelen 1000  (Ethernet)
        RX packets 1272  bytes 89992 (87.8 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 89  bytes 16008 (15.6 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 4  bytes 240 (240.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 4  bytes 240 (240.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0


apache

SSH服务:常用于远程连接(安全)

端口号 tcp/22

┌──(root㉿kali)-[~/work/exam]
└─# ps aux | grep ssh    
kali        1219  0.0  0.1   7912  1012 ?        Ss   16:05   0:00 /usr/bin/ssh-agent x-session-manager
root       48394  0.0  0.2   6568  2304 pts/1    S+   17:38   0:00 grep --color=auto ssh
                                                                                               
┌──(root㉿kali)-[~/work/exam]
└─# ps aux | grep -w  ssh
kali        1219  0.0  0.1   7912  1012 ?        Ss   16:05   0:00 /usr/bin/ssh-agent x-session-manager
root       48665  0.0  0.2   6568  2176 pts/1    S+   17:38   0:00 grep --color=auto -w ssh
                                                                                               
┌──(root㉿kali)-[~/work/exam]
└─# systemctl start ssh    
                                                                                               
┌──(root㉿kali)-[~/work/exam]
└─# echo $?
0
                                                                                               
┌──(root㉿kali)-[~/work/exam]
└─# netstat -tunlp       
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      48831/sshd: /usr/sb 
tcp6       0      0 :::22                   :::*                    LISTEN      48831/sshd: /usr/sb 
tcp6       0      0 :::80                   :::*                    LISTEN      44345/apache2       
      

!n 调用最近一次以n打头的指令

┌──(root㉿kali)-[~/work/exam]
└─# !n             
                                                                                               
┌──(root㉿kali)-[~/work/exam]
└─# netstat -tunlp

grep 例子

┌──(root㉿kali)-[~/work/exam]
└─# grep --help
用法:grep [选项]... 模式 [文件]...
在每个 <文件> 中查找指定的 <模式>。
例如:grep -i 'hello world' menu.h main.c
<模式> 可以包含多个模式字符串,使用换行符进行分隔。

模式选择与解释:
  -E, --extended-regexp     <模式> 是扩展正则表达式
  -F, --fixed-strings       <模式> 是字符串
  -G, --basic-regexp        <模式> 是基本正则表达式
  -P, --perl-regexp         <模式> 是 Perl 正则表达式
  -e, --regexp=模式         使用指定的 <模式> 进行匹配
  -f, --file=文件           从指定的 <文件> 中获得 <模式>
  -i, --ignore-case         对于模式和数据,忽略大小写
      --no-ignore-case      不要忽略大小写(默认)
  -w, --word-regexp         仅匹配整个单词
  -x, --line-regexp         仅匹配整行
  -z, --null-data           数据行以 0 字节 (NUL) 结束,而非换行符

杂项:
  -s, --no-messages         不显示错误信息
  -v, --invert-match        选中不匹配的行
  -V, --version             显示版本信息并退出
      --help                显示此帮助信息并退出

输出控制:
  -m, --max-count=数值      选中 <数值> 行后停止执行
  -b, --byte-offset         输出的同时打印字节偏移量
  -n, --line-number         输出的同时打印行号
      --line-buffered       每行输出后排空输出缓冲区
  -H, --with-filename       输出的同时打印文件名
  -h, --no-filename         输出时不显示文件名前缀
      --label=标签          使用指定 <标签> 作为标准输入文件名前缀
  -o, --only-matching       只显示行中非空的匹配部分
  -q, --quiet, --silent     不显示所有常规输出
      --binary-files=类型   假定二进制文件是 <类型>;
                            <类型> 可以是 "binary"、"text" 或 "without-match"
  -a, --text                等价于 --binary-files=text
  -I                        等价于 --binary-files=without-match
  -d, --directories=动作    处理目录的方式;
                            <动作> 可以是 "read"、"recurse" 或 "skip"
  -D, --devices=动作        处理设备、FIFO 和套接字的方式;
                            <动作> 可以是 "read" 或 "skip"
  -r, --recursive           等价于 --directories=recurse
  -R, --dereference-recursive  同上,但跟随所有符号链接
      --include=GLOB        只查找匹配 GLOB(含通配符的文件模式)的文件
      --exclude=GLOB        跳过匹配 GLOB 的文件
      --exclude-from=文件   跳过匹配 <文件> 内容中任一文件模式的文件
      --exclude-dir=GLOB    跳过匹配 GLOB 的目录
  -L, --files-without-match  只打印没有被选中的行的 <文件> 的名称
  -l, --files-with-matches  只打印有被选中的行的 <文件> 的名称
  -c, --count               只打印每个 <文件> 的被选中的行的数量
  -T, --initial-tab         使制表符对齐(如有必要)
  -Z, --null                在 <文件> 名后打印 0 字节 (NUL)

文件控制:
  -B, --before-context=数值  打印前面 <数值> 行上下文
  -A, --after-context=数值  打印后面 <数值> 行上下文
  -C, --context=数值        打印前后 <数值> 行上下文
  -数值                     等价于 --context=数值
      --group-separator=分隔符  在带有上下文的匹配块之间打印 <分隔符>
      --no-group-separator  不要在带有上下文的匹配块之间打印分隔符
      --color[=何时],
      --colour[=何时]       使用标记高亮匹配的字符串;
                            <何时> 可以是 "always"、"never" 或 "auto"
  -U, --binary              不要清除行尾的 CR 字符 (MSDOS/Windows)

若 <文件> 为 "-",则从标准输入读取。若没有指定 <文件>,则递归模式
下从 "." 读取,其他情况下从 "-" 读取。若指定的 <文件> 数量少于两个,
则默认启用 -h 选项。如果有任意行被选中,则退出状态为 0,否则
退出状态为 1;如果有错误发生,且未指定 -q 选项,则退出状态为 2。

──(root㉿kali)-[~/work/exam]
└─# ls /usr/bin | grep zip

                                                                                              
┌──(root㉿kali)-[~/work/exam]
└─# pwd                  
/root/work/exam
                                                                                               
┌──(root㉿kali)-[~/work/exam]
└─# cd a   
                                                                                               
┌──(root㉿kali)-[~/work/exam/a]
└─# pwd
/root/work/exam/a
                                                                                               
┌──(root㉿kali)-[~/work/exam/a]
└─# mkdir -pv 01/001/0001
mkdir: 已创建目录 '01'
mkdir: 已创建目录 '01/001'
mkdir: 已创建目录 '01/001/0001'
                                                                                               
┌──(root㉿kali)-[~/work/exam/a]
└─# echo depressiom is very great
depressiom is very great
                                                                                               
┌──(root㉿kali)-[~/work/exam/a]
└─# echo depressiom is very great > test.txt
                                                                                               
┌──(root㉿kali)-[~/work/exam/a]
└─# cat test.txt        
depressiom is very great
                                                                                               
┌──(root㉿kali)-[~/work/exam/a]
└─# ls                     
01  test.txt
                                                                                               
┌──(root㉿kali)-[~/work/exam/a]
└─# echo depressiom is very great >01/test.txt
                                                                                               
┌──(root㉿kali)-[~/work/exam/a]
└─# ls 01                  
001  test.txt
                                                                                               
┌──(root㉿kali)-[~/work/exam/a]
└─# echo depressiom is very great >01/001/test.txtt
                                                                                               
┌──(root㉿kali)-[~/work/exam/a]
└─# echo depressiom is very great >01/001/001/test.txtt
zsh: 没有那个文件或目录: 01/001/001/test.txtt
                                                                                               
┌──(root㉿kali)-[~/work/exam/a]
└─# echo depressiom is very great >01/001/0001/test.txtt
                
// 递归查询
┌──(root㉿kali)-[~/work/exam/a]
└─# grep depressiom 01
grep: 01: 是一个目录
                                                                                               
┌──(root㉿kali)-[~/work/exam/a]
└─# grep -r depressiom 01
01/001/0001/test.txtt:depressiom is very great
01/001/test.txtt:depressiom is very great
01/test.txt:depressiom is very great
                                                                                               
┌──(root㉿kali)-[~/work/exam/a]
└─# 

-i 忽略大小写

┌──(root㉿kali)-[~/work/exam/a]
└─# echo DPRESSIOM is very great >01/001/test01.txtt
                                                                                               
┌──(root㉿kali)-[~/work/exam/a]
└─# grep -r depressiom 01                           
01/001/0001/test.txtt:depressiom is very great
01/001/test.txtt:depressiom is very great
01/test.txt:depressiom is very great
                                                                                               
┌──(root㉿kali)-[~/work/exam/a]
└─# grep -r -i depressiom 01
01/001/0001/test.txtt:depressiom is very great
01/001/test.txtt:depressiom is very great
01/test.txt:depressiom is very great
                                                                                               
┌──(root㉿kali)-[~/work/exam/a]
└─# echo DEPRESSIOM is very great >01/001/test01.txtt
                                                                                               
┌──(root㉿kali)-[~/work/exam/a]
└─# grep -r -i depressiom 01                         
01/001/0001/test.txtt:depressiom is very great
01/001/test.txtt:depressiom is very great
01/001/test01.txtt:DEPRESSIOM is very great
01/test.txt:depressiom is very great
                                                                                               
┌──(root㉿kali)-[~/work/exam/a]
└─# 


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/890012.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

怎么对mp4视频进行压缩?分享了几个不错的方法

怎么对mp4视频进行压缩&#xff1f;这个问题非常重要。确实&#xff0c;MP4视频文件由于包含音频和图像&#xff0c;通常会占据较大的存储空间。如果我们在手机或电脑上保存过多的MP4视频文件&#xff0c;随着时间的积累&#xff0c;会导致存储容量不足的问题。另外&#xff0c…

用cpolar生成的公网地址,对位于本地的Cloudreve网盘进行访问

文章目录 1、前言2、本地网站搭建2.1 环境使用2.2 支持组件选择2.3 网页安装2.4 测试和使用2.5 问题解决 3、本地网页发布3.1 cpolar云端设置3.2 cpolar本地设置 4、公网访问测试5、结语 1、前言 自云存储概念兴起已经有段时间了&#xff0c;各互联网大厂也纷纷加入战局&#…

段错误核心转储

在linux下运行可执行文件的时候出现了以下错误&#xff1a; error:segmentation fault core dumped解决方法&#xff1a; #查看core文件大小判断是否可写 $ ulimit -a real-time non-blocking time (microseconds, -R) unlimited core file size (blocks, -c) …

教学实训平台,新增批量设置作业小组|ModelWhale 版本更新

始惊三伏尽&#xff0c;又遇立秋时。季节更迭、岁月匆匆&#xff0c;ModelWhale 又迎来了新一轮的版本更新。 本次更新中&#xff0c;ModelWhale 主要进行了以下功能迭代&#xff1a; • 新增 批量设置作业小组&#xff08;团队版✓ &#xff09; • 新增 断网时支持连接数据…

opencv-python视频实时识别二维码

代码如下&#xff1a; import numpy as np import cv2 as cv import globcap cv.VideoCapture(0) if not cap.isOpened():print("Cannot open camera")exit() while True:# Capture frame-by-frameret, frame cap.read()# if frame is read correctly ret is True…

3D产品配置器简介【电商】

3D 配置器对整个电子商务业务有良好影响&#xff0c;本文将介绍如何实现&#xff0c;并且涵盖了 3D 产品配置器的重要方面以及一些最常见的问题。 在电子商务营销中采用 3D 技术已显示出更高的客户参与度。 这进一步表明消费者喜欢访问可以为他们提供个性化购物体验的在线商店…

AI智能语音机器人的基本业务流程

先画个图&#xff0c;了解下AI语音机器人的基本业务流程。 上图是一个AI语音机器人的业务流程&#xff0c;简单来说就是首先要配置话术&#xff0c;就是告诉机器人在遇到问题该怎么回答&#xff0c;这个不同公司不同行业的差别比较大&#xff0c;所以一般每个客户都会配置其个性…

低代码如何提效开发者?

低代码如何提效开发者&#xff1f; 一、低代码的出现 二、低代码解决方案的主要特点 三、优秀强大的软件开发工具 四、你所在企业为什么要关心低代码开发&#xff1f; 一、低代码的出现 无论你是一个初级的开发者还是一位经验丰富的专家&#xff0c;低代码都将为你提供了一个突…

华为OD机试 - BOSS的收入 - 回溯(Java 2023 B卷 100分)

目录 专栏导读一、题目描述二、输入描述三、输出描述四、解题思路五、Java算法源码六、效果展示1、输入2、输出3、说明 华为OD机试 2023B卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试&#xff08;JAVA&#xff09;真题&#xff08;A卷B卷&#…

定向传音?静音广播?这所学校会“法术”!

“老者念念有词&#xff0c;一个与世隔绝的空间便形成了&#xff0c;明明身处闹市&#xff0c;周围的人却听不见空间里声音。”小说里经常出现的场景&#xff0c;如今&#xff0c;现实世界正在实现&#xff01; 广州的一所学校里&#xff0c;活力四射的学生方队&#xff0c;正在…

【系统工具】开源服务器监控工具WGCLOUD初体验

经常看到服务器上传下载流量一直在跑&#xff0c;也不知道是啥软件在偷偷联网~~~官网地址&#xff1a;www.wgstart.com&#xff0c;个人使用是免费的。 WGCLOUD官网介绍 "WGCLOUD支持主机各种指标监测&#xff08;cpu使用率&#xff0c;cpu温度&#xff0c;内存使用率&am…

【Java 动态数据统计图】动态数据统计思路案例(动态,排序)二(113)

需求&#xff1a; 有一个List<Map<String.Object>>,存储了区域的数据&#xff0c; 数据是根据用户查询条件进行显示的&#xff1b;所以查询的数据是动态的&#xff1b;按区域维度统计每个区域出现的次数&#xff0c;并且按照次数的大小排序&#xff08;升序&#…

C++新经典--文件操作

文件简介 文件在程序设计中是一个比较重要的概念&#xff0c;这里所说的文件&#xff0c;是指保存在硬盘、U盘等存储介质上的数据&#xff0c;这些存储介质&#xff08;简称磁盘&#xff09;上的数据就是以一个个文件的形式体现&#xff0c;每一个文件有一个对应的名字&#x…

Kotlin开发笔记:使用委托进行拓展

Kotlin开发笔记&#xff1a;使用委托进行拓展 导言 在OO语言(面向对象)中&#xff0c;我们经常会用到委托或者代理的思想。委托和代理在乍一看很相似&#xff0c;其实其各有各的侧重点&#xff0c;这里我引用ChatGpt的回答&#xff1a; 委托&#xff08;Delegation&#xff09…

内涝防控一张图!解锁内涝防控全周期解决方案

随着暴雨高发季的到来&#xff0c;如何提升城市内涝治理水平&#xff0c;构筑人民生活美好空间成为各地关注的重点。近日&#xff0c; 住房和城乡建设部、应急管理部印发《关于加强城市排水防涝应急管理工作的通知》&#xff0c;明确提出&#xff0c;各地要加强城市内涝整治和排…

java Spring Boot properties多环境配置拆分文件管理

上文 java Spring Boot yml多环境拆分文件管理优化 我们用yml 做了一个多环境配置文件的拆分管理 我们将 application.yml 改为 application.properties 参考代码如下 spring.profiles.activedev我们知道 yml 是用 : 来区分高低基本 而 properties是直接通过 . 来表达 其他基本…

解锁暑假云端生活:铁威马NAS助你打造个性化体验

暑假转眼过半&#xff0c;大家一定度过一段非常美好的时光吧。朋友圈被去各地旅游的、看各种演唱会的、各种各样的观影读后感刷屏...生活很精彩&#xff0c;但如何高效地管理、享受和分享自己的文件、照片和影音内容成为困扰我们的难题。在这方面&#xff0c;铁威马NAS成为了越…

Unity自定义脚本的 初始模版

参考博主&#xff1a;Unity修改创建的脚本模板&#xff0c;Unity脚本模板路径_unity hub 怎么改脚本模板_先生沉默先的博客-CSDN博客 【100个 Unity实用技能】 ☀️ | Unity自定义脚本的初始模版_unity 模板脚本_呆呆敲代码的小Y的博客-CSDN博客 一&#xff0c;将脚本放到Ed…

【uniapp】使用permission获取录音权限及实现录音功能

需求 app获取录音权限权限, 实现录音并且播放功能 实现 一. 使用permission获取录音权限 原博 : https://www.wanjunshijie.com/note/uniapp/3203.html 1.1 manifest.json 配置权限 android.permission.RECORD_AUDIO 1.2 permision使用和下载 ( 自行百度搜索即可 ) 1.3 获…

【探索Linux】—— 强大的命令行工具 P.4(编译器 gcc/g++ 使用)

阅读导航 前言一、编译的四大过程&#xff08;背景知识&#xff09;1. 预处理&#xff08;Preprocessing&#xff09;2. 编译&#xff08;Compilation&#xff09;3. 汇编&#xff08;Assembly&#xff09;4. 链接&#xff08;Linking&#xff09; 二、gcc的使用1. 概念2. gcc主…