ps

ps (process status) 命令用于显示当前进程的状态,类似于 windows 的任务管理器

查找指定进程

1
2
$ ps -ef | grep  key
cs 4565 4533 0 21:14 pts/2 00:00:00 /opt/ELK/elasticsearch-7.17.1/modules/x-pack-ml/platform/linux-x86_64/bin/controller

key 运行进程的关键字 (如:ps -ef | grep tomcat)

UID 启动进程的用户名

PID 进程pid

PPID

C

STIME 开始启动时间

TTY 终端号

TIME 运行时间

CMD 启动进程的命令

-o 格式输出

1
❯ ps -eo pid,lstart,etime,user,cmd | grep mysql

查找进程使用情况

1
2
3
4
ps -aux | grep Typora
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
cs 7458 1.2 0.8 4913400 139224 ? Sl 15:11 0:08 /usr/share/typora/Typora /home/cs/go/ps.md

  • USER: 行程拥有者
  • PID: pid
  • %CPU: 占用的 CPU 使用率
  • %MEM: 占用的记忆体使用率
  • VSZ: 占用的虚拟记忆体大小
  • RSS: 占用的记忆体大小
  • TTY: 终端的次要装置号码 (minor device number of tty)
  • STAT: 该行程的状态:
    • D: 无法中断的休眠状态 (通常 IO 的进程)
    • R: 正在执行中
    • S: 静止状态
    • T: 暂停执行
    • Z: 不存在但暂时无法消除
    • W: 没有足够的记忆体分页可分配
    • <: 高优先序的行程
    • N: 低优先序的行程
    • L: 有记忆体分页分配并锁在记忆体内 (实时系统或捱A I/O)
  • START: 行程开始时间
  • TIME: 执行的时间
  • COMMAND:所执行的指令

内存

1
2
3
4
5
$ ps -aux | sort -k4nr | head -3
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
cs 2119 4.8 1.6 1183553740 265420 ? Sl 14:02 4:06 /opt/google/chrome/chrome -- ...
cs 1660 5.1 1.5 34393500 254380 ? SLl 13:59 4:30 /opt/google/chrome/chrome --...
cs 1753 1.0 1.4 1179343396 242272 ? Sl 13:59 0:57 /opt/google/chrome/chrome --...

a all所有

u userid,该进程用户id

x 所有程序,不已终端区分

sort 排序

k 代表从第几列开始

4n 4列(%MEM)开始

r 反向(reverse) ,默认从小到大

head 头几列(-3 ,显示前3列)

1
❯ ps -eo pid,cmd,%mem,rss,vsize | grep chrome

进程的PID、cmd、内存使用百分比、RSS和VSIZE。

1
2
3
4
❯ ps -eo pid,cmd,%mem,rss,vsize | grep chrome | awk '{sum+=$3} END {print sum}'

#awk 累加内存使用百分比并计数进程数量,最后计算平均值。
❯ ps -eo pid,cmd,%mem,rss,vsize | grep chrome | awk '{sum+=$3; count++} END {print sum/count}'

cpu

1
$ ps -aux | sort -k3nr | head -3

lsof

查看端口占用

1
2
3
4
5
6
7
❯ sudo lsof -i:80
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
nginx 779 root 15u IPv4 23975 0t0 TCP *:http (LISTEN)
nginx 780 nobody 15u IPv4 23975 0t0 TCP *:http (LISTEN)
❯ sudo lsof -i:3305
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
mysqld 2160 mysql 52u IPv6 29109 0t0 TCP *:3305 (LISTEN)

netstat

查看所有端口和PID号

1
2
❯ sudo netstat -tanlp | grep -I  2160
tcp6 0 0 :::3305 :::* LISTEN 2160/mysqld

-a或–all:显示所有连线中的Socket;

-t或–tcp:显示TCP传输协议的连线状况;
-u或–udp:显示UDP传输协议的连线状况;

-n : 拒绝显示别名,能显示数字的全部转化为数字

-l或–listening:显示监控中的服务器的Socket;

-p或–programs:显示正在使用Socket的程序识别码和程序名称;

pv (Pipe Viewer)

显示数据处理的进度条

download https://www.ivarch.com/programs/pv.shtml

1
2
3
4
5
❯ ./configure --prefix=/opt/tools/pv

❯ make -j6

❯ make install

复制文件会有进度

pv ~/Downloads/CentOS-7-x86_64-Minimal-1511.iso > ~/Desktop/CentOS-7-x86_64-Minimal-1511.iso

压缩文件展示进度信息

pv /media/himanshu/1AC2-A8E3/fnf.mkv | gzip > ./Desktop/fnf.log.gz

-d, –watchfd PID[:FD] 监视进程PID,打开的文件FD
pv -d $(ps -ef | grep -v grep | grep “<脚本或命令的关键字>” | awk ‘{print $2}’) && <这里执行发通知脚本或者命令,脚本或命令需要提前调试好>

❯ echo "现在开始使用pv(Pipe Viewer),把字符一个个匀速在命令行中显示出来" | pv -qL 10

mysql导入数据

``❯ pv /home/cs/other/workspace/ruoyi/RuoYi-Cloud-master/sql/ry_config_20231204.sql | mysql -u root -P 3305 -p`

18.8KiB 0:00:00 [ 198MiB/s] [=========================================================================>] 100%
Enter password:

❯ pv /home/cs/other/workspace/ruoyi/RuoYi-Cloud-master/sql/ry_20231130.sql | mysql -u root -P 3305 -p ry-config

55.0KiB 0:00:00 [ 409MiB/s] [=========================================================================>] 100%
Enter password:

点击打赏
文章目录
  1. 1. 查找指定进程
  2. 2. 查找进程使用情况
    1. 2.1. 内存
    2. 2.2. cpu
    3. 2.3. lsof
    4. 2.4. netstat
    5. 2.5. pv (Pipe Viewer)
载入天数...载入时分秒... ,