当前位置: 首页 > news >正文

linux的三剑客和进程处理

Linux三剑客:

grep:查找
sed:编辑
awk:分析 

  • grep - 正则表达式 

[root@localhost ~]# grep ^a hello.txt

abc

  •  grep - 忽略大小写,还有一些场景需要查询出来对应字符串所在的行号,方便我们快速在文件中定位字符串所在的位置,这个也很简单,通过-n参数就可以实现

[root@localhost ~]# grep -i ABC hello.txt

abc

[root@localhost ~]# grep -i ABC -n hello.txt 
7:abc

  • sed - 增、删、追加、替换,sed命令的所有操作,在执行之后都不会修改源文件中的内容,这样只能作为测试,如果需要修改源文件的话,其实也很简单,只需要增加一个 -i 参数即可

//a其实表示是append的意思,在指定行后面追加内容
//i表示是insert的意思,是在指定行的前面插入内容

[root@localhost ~]# sed '2a\haha' hello.txt

hello world!

hello world!

haha

hello world!

hello world!

hello world!

[root@localhost ~]# sed '1i\haha' hello.txt

haha

hello world!

hello world!

hello world!

//$ 表示 最后一行

[root@localhost ~]# sed '$i\haha' hello.txt

hello world!

hello world!

hello world!

hello world!

hello world!

hello world!

haha
abc

//删除第7行

[root@localhost ~]# sed '7d' hello.txt

hello world!

hello world!

hello world!

hello world!

hello world!

hello world!

//删除最后一行

[root@localhost ~]# sed '$d' hello.txt

hello world!

hello world!

hello world!

hello world!

hello world!

//替换

sed后面的参数格式为[address]s/pattern/replacement/flags

这里的address 表示指定要操作的具体行,是一个可选项,值为空就是全部行
s 表示替换操作,pattern 指的是需要替换的内容,replacement 指的是要替换的新内容,flags有多种用法,挑两种常见的说一下
第一种就是flags可以表示为1~512之间的任意一个数字,表示指定要替换的字符串在这一行中出现第几次时才进行替换
第二种就是flags可以直接表示为g,这样的意思就是对每一行数据中所有匹配到的内容全部进行替换、如果flags位置的值为空,则只会在第一次匹配成功时做替换操作

awk - 文本分析工具,在具体使用awk之前我们还需要掌握awk的一个特性,就是awk在处理文本数据的时候,它会自动给每行变量从1开始
$1表示是文本中的第1个数据字段

$2表示是文本中的第2个数据字段

以此类推。
还有一个特殊的 $0 它代表整个文本行的内容

默认按照空格来截取,可以指定字段分隔符,通过-F 参数awk -F: ‘{print $1}’ /etc/passwd

我们在处理数据的时候还可以对数据进行一些过滤操作,只获取满足条件的数据可以使用正则表达式进行过滤,awk ‘/world/ {print $1}’ hello.txt 这种写法表示对每次读取到的那一行数据进行匹配

[root@localhost ~]# cat hello.txt

hello world!

heaao worad!

hello world!

hello world!

hello world!

hello world!

abc
[root@localhost ~]# awk '/world/ {print $0}' hello.txt

hello world!

hello world!

hello world!

hello world!

hello world!
[root@localhost ~]# awk '/abc/ {print $0}' hello.txt

abc

  • ps命令

ps命令是用来显示进程相关信息的,他的一个典型应用就是在后面跟e和f参数,显示系统内的所有进程ps -ef,显示 java 进程是 ps -ef | grep java,

显示出这个信息其实说明没有找到java进程信息,下面返回的这一行表示是grep进程本身,这样容易给我们造成错觉,想把它去掉。使用grep加上-v参数再做一次过滤即可,表示忽略包含指定字符串的数据。

  • netstat命令

常见netstat -anp,如查看22 端口:netstat -anp | grep 22

  • top命令:

主要作用在于动态显示系统消耗资源最多的进程信息,包含进程ID、内存占用、CPU占用等
和ps命令作用基本相同,唯一的区别是top命令能够动态显示进程信息,如果是多核CPU,想查看具体每个CPU的使用情况的话可以在监控模式中按键盘上的1,就可以查看每一个CPU的情况了

  • kill命令:杀进程

kill PID 相当于我告诉你一声让你自杀,然后你就自己挥刀自杀了
kill -9 PID 针对不自觉的,没有自杀成功的,那我就直接亲自出马了


http://www.mrgr.cn/news/90693.html

相关文章:

  • VM ubuntu20.04 虚拟机与主机之间不能互相复制的解决
  • 人工智能时代下ai智能语音机器人如何以假乱真?
  • Golang的容器化部署流程
  • 第十篇:电源设计的“能量矩阵”——无线充电与碳化硅LLC谐振
  • 驱动开发、移植(最后的说法有误,以后会修正)
  • KubeSphere 和 K8s 高可用集群离线部署全攻略
  • 200个Python练手项目源码
  • rocketmq-netty通信设计-request和response
  • 【DeepSeek】Deepseek辅组编程-通过卫星轨道计算终端距离、相对速度和多普勒频移
  • 【Stable Diffusion部署至GNU/Linux】安装流程
  • Ubuntu启动geteck/jetlinks实战:Docker启动
  • Proxmox VE 8.3 qm 方式导入ESXi Linux OVA UEFI模式虚拟机
  • C++类和对象进阶:运算符重载深度详解
  • 在vscode中拉取gitee里的项目并运行
  • Python----PyQt开发(PyQt高级:手搓一个文件浏览器)
  • Druid GetConnectionTimeoutException解决方案之一
  • vue-model如何自定义指令,及批量注册自定义指令
  • 【GRPO】GRPO原理原文翻译
  • docker学习---第3步:docker实操大模型
  • Hive增量迁移方案与实操PB级
  • Linux初始化 配置yum源
  • 大数据学习之PB级百战出行网约车二
  • poi 将图片写入到excel文件中
  • vue开发06:前端通过webpack配置代理处理跨域问题
  • NumPy中生成和堆叠数组、生成切片的特殊对象:np.r_ np.c_ np.s_
  • 欧盟《人工智能法案》