进程管理中常用的linux命令

1. netstat 命令用于显示各种网络相关信息
  参数设置 :-a (all)显示所有选项,netstat默认不显示LISTEN相关
        -t (tcp)仅显示tcp相关选项
        -u (udp)仅显示udp相关选项
        -n 拒绝显示别名,能显示数字的全部转化成数字。
        -l 仅列出有在 Listen (监听) 的服務状态

        -p 显示建立相关链接的程序名(macOS中表示协议 -p protocol)
        -r 显示路由信息,路由表
        -e 显示扩展信息,例如uid等
        -s 按各个协议进行统计
        -c 每隔一个固定时间,执行该netstat命令。

  根据进程名称查询程序运行的端口:netstat -apn | grep redis
  根据进程运行端口号查询进程:netstat -an | grep '6379'
  这两个命令需要使用sudo 才能查询所有进程,否则只能查询用户权限下的进程
2. ps ps是Process Status的缩写
  常用参数: -A :所有的进程均显示出来,与 -e 具有同样的效用;
        -a : 显示现行终端机下的所有进程,包括其他用户的进程;
        -u :以用户为主的进程状态 ;
        x :通常与 a 这个参数一起使用,可列出较完整信息。
        l :较长、较详细的将该 PID 的的信息列出;
        j :工作的格式 (jobs format)
        -f :做一个更为完整的输出。
  根据进程名称查询进程的运行状态:ps -aux | grep redis (普通用户即可)
  查询结果每列的含义
  # F 代表这个程序的旗标 (flag), 4 代表使用者为 superuser; 
  # S 代表这个程序的状态 (STAT);
  #UID 代表执行者身份
  # PID 进程的ID号!底下的 PPID 则父进程的ID;
  # C CPU 使用的资源百分比
  PRI指进程的执行优先权(Priority的简写),其值越小越早被执行;
  # NI 这个进程的nice值,其表示进程可被执行的优先级的修正数值。
  # ADDR 这个是内核函数,指出该程序在内存的那个部分。如果是个执行
  # 的程序,一般就是『 - 』
  # SZ 使用掉的内存大小;
  # WCHAN 目前这个程序是否正在运作当中,若为 - 表示正在运作;
  # TTY 登入者的终端机位置啰;
  # TIME 使用掉的 CPU 时间。
  # CMD 所下达的指令名称
3.lsof lsof命令是一个列出当前系统打开文件的工具,需要sudo 权限
  参数:
    -a 列出打开文件存在的进程
    -c<进程名> 列出指定进程所打开的文件
    -g 列出GID号进程详情
    -d<文件号> 列出占用该文件号的进程
    +d<目录> 列出目录下被打开的文件
    +D<目录> 递归列出目录下被打开的文件
    -n<目录> 列出使用NFS的文件
    -i<条件> 列出符合条件的进程。(4、6、协议、:端口、 @ip )
    -p<进程号> 列出指定进程号所打开的文件
    -u 列出UID号进程详情
    -h 显示帮助信息
    -v 显示版本信息
  每列含义:
    COMMAND:进程的名称
    PID:进程标识符
    USER:进程所有者
    FD:文件描述符,应用程序通过文件描述符识别该文件,如cwd、txt等。
    TYPE:文件类型,如:DIR、REG等。
    DEVICE:指定磁盘的名称
    SIZE:文件的大小
    NODE:索引节点(文件在磁盘上的标识)
    NAME:打开文件的确切名称
  查看哪些程序占用端口号 lsof -i:6379

猜你喜欢

转载自www.cnblogs.com/donghaonan/p/10397559.html