linux常见命令

本文详细介绍了Linux系统中用于查看进程打开文件的lsof命令,以及套接字统计工具ss,进程管理命令kill、killall和pkill的区别和用法。同时涵盖了ps、awk和sed等工具在监控和处理进程和线程方面的应用。
摘要由CSDN通过智能技术生成

查看进程打开的文件lsof

lsof,全称List Open Files,是一个在Linux系统中查看被进程打开文件信息的命令。它可以列出包括普通文件、目录、特殊的块文件、管道、socket套接字、设备、Unix域套接字等在内的所有被进程打开的文件的信息。

在linux系统中,所有程序都可以被看做是文件。

lsof命令的常用选项包括:

  • -a:表示显示所有的文件类型;
  • -u:后面可以跟用户名,表示查看该用户打开的文件;
  • -p:后面可以跟进程号,表示查看该进程打开的文件;
  • -n:表示不解析服务名,以数字形式的端口号显示;
  • -i:后面可以跟网络接口名,表示查看该网络接口的状态;
  • -t:后面可以跟文件类型,表示只显示该类型的文件。

查看被掐用户打开的文件sudo lsof -u root -a

除了lsop命令外,还可以使用top监控命令查看进程。

套接字统计ss

ss是Socket Statistics的缩写。套接字一般和网络相关,该命令又称为网络统计工具。用于显示系统中的网络连接、套接字统计信息等。它可以显示TCP和UDP协议的连接状态、本地和远程地址、端口号等信息。

常用的ss命令选项包括:

  • -t:仅显示TCP连接;
  • -u:仅显示UDP连接;
  • -a:显示所有连接(包括监听套接字);
  • -n:不解析服务名称,直接显示数字形式的端口号;
  • -l:仅显示监听套接字;
  • -p:显示进程标识符和程序名称,需要root权限。

终止进程kill

kill命令可以重新加载或终止进程。

kill -[信息编号] 进程pid| 程序编号

常用命令:

  • 1 (HUP):重新加载进程。
  • 9 (KILL):杀死一个进程。
  • 15 (TERM):正常停止一个进程。

Killall 、Kill 、Pkill三个命令之间的区别

  • kill (send a signal to a process)是向进程发送信号的命令

对于前台进程通过Ctrl+C或者Ctrl+\发送kill命令。
对于后台程序需要先知道进程pid才可以项进程发送kill命令,使用 ps、top 等命令获得进程的 PID

-l 信号,若果不加信号的编号参数,则使用“-l”参数会列出全部的信号名称
-a 当处理当前进程时,不限制命令名和进程号的对应关系
-p 指定kill 命令只打印相关进程的进程号,而不发送任何信号
-s 指定发送信号
-u 指定用户

  • killall (kill processes by name)用于杀死进程

killall [参数] [进程名]

killall 会杀死指定名字的所有进程

-Z 只杀死拥有scontext 的进程
-e 要求匹配进程名称
-I 忽略小写
-g 杀死进程组而不是进程
-i 交互模式,杀死进程前先询问用户
-l 列出所有的已知信号名称
-q 不输出警告信息
-s 发送指定的信号
-v 报告信号是否成功发送
-w 等待进程死亡
–help 显示帮助信息
–version 显示版本显示

  • pkill

pkill [选项] [进程名]

pkill命令和 killall 命令的用法相同,都是通过进程名杀死一类进程,pkill 还有一个更重要的功能用来踢出用户登录。

-o 仅向找到的最小(起始)进程号发送信号 -n 仅向找到的最大(结束)进程号发送信号
-P 指定父进程号发送信号
-g 指定进程组
-t 指定开启进程的终端

查看线程命令

ps -T -p <pid>

线程是运行于线程中的,因此查询线程需要先知道该线程运行在那个进程中,并通过pid查找。

在这里插入图片描述

awk打印处理

awk用于处理打印的二维表的数据,如下:

在这里插入图片描述

1、返回第一列
ps -ef|awk '{print $1}'

2、返回第一列和第x列
ps -ef|awk -v n=2 '{print $1,$(n+1)}'

3、返回带abc关键字的第一列(记不住就用grep去筛)
ps -ef|awk '/abc/{print $1}'

4、返回最后一列
ps -ef|awk '{print $NF}'

5、返回有多少列(以最后一行的列数为准)
ps -ef |awk 'END{print NF}'

6、返回有多少行
ps -ef |awk 'END{print NR}'
//当然大可不必这样,wc -l就好

sed获取指定行

1、返回第一行
ps -ef|sed -n 2p
//注意别1p,1p是个表头

2、返回第一行到第十行(带表头)
ps -ef|sed -n 1,10p

3、awk+sed返回某行某列
ps -ef|sed -n 2p|awk '{print $2}'

通过sed和awk获取某行某列。

  • 8
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xvwen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值