Linux常用命令记录

本文介绍了Linux中查看端口使用、查找占用端口的进程以及利用netstat、ps、kill和top等命令进行系统监控和进程管理的方法。重点讲解了netstat参数、批量删除进程、显示进程状态以及top命令展示的CPU使用率各项指标。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. lsof -i:port

    查看端口使用情况

    port为所要查看的端口号
    举例:

    #lsof -i:9092
    COMMAND  PID USER   FD   TYPE   DEVICE SIZE/OFF NODE NAME
    java    6871 root  157u  IPv4 13325529      0t0  TCP *:XmlIpcRegSvc (LISTEN)
    

    可以看到端口9092被java进程占用

  2. netstat -tunlp

    查看端口号的进程情况

    #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:24854           0.0.0.0:*               LISTEN      6871/java           
    tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      3281/sshd           
    tcp        0      0 0.0.0.0:9092            0.0.0.0:*               LISTEN      6871/java           
    tcp        0      0 0.0.0.0:2181            0.0.0.0:*               LISTEN      31224/java          
    tcp        0      0 0.0.0.0:25989           0.0.0.0:*               LISTEN      31224/java          
    tcp        0      0 0.0.0.0:9001            0.0.0.0:*               LISTEN      26143/java          
    tcp6       0      0 :::4430                 :::*                    LISTEN      321/docker-proxy    
    tcp6       0      0 :::8080                 :::*                    LISTEN      32764/docker-proxy  
    tcp6       0      0 :::10050                :::*                    LISTEN      11219/zabbix_agentd 
    tcp6       0      0 :::7654                 :::*                    LISTEN      5395/dockerd        
    tcp6       0      0 :::2375                 :::*                    LISTEN      5395/dockerd        
    udp        0      0 0.0.0.0:3511            0.0.0.0:*                           749/dhclient        
    udp        0      0 0.0.0.0:68              0.0.0.0:*                           749/dhclient        
    udp        0      0 172.17.0.1:123          0.0.0.0:*                           21742/ntpd          
    udp        0      0 10.163.202.9:123        0.0.0.0:*                           21742/ntpd          
    udp        0      0 127.0.0.1:123           0.0.0.0:*                           21742/ntpd          
    udp        0      0 0.0.0.0:123             0.0.0.0:*                           21742/ntpd          
    udp6       0      0 :::39042                :::*                                749/dhclient        
    udp6       0      0 :::123                  :::*                                21742/ntpd 
    

    此命令可以与grep命令联合使用,获取特定端口号的进程情况

    #netstat -tunlp | grep 9001
    tcp        0      0 0.0.0.0:9001            0.0.0.0:*               LISTEN      26143/java
    

    PS:关于netstat的几个参数需要特意说明一下

    -t(TCP)   仅显示TCP相关选项
    -u(UDP)   仅显示UDP相关选项
    -n        拒绝显示别名,能显示数字的全部转化成数字
    -l        仅列出在Listen(监听)的服务状态
    -p        显示建立相关链接
    
  3. grep
    grep家族共有三个:grepegrepfgrep
    常用格式:grep [参数选项] '模式(或正则表达式)' [文件]

    常用的参数选项
      -E :开启扩展(Extend)的正则表达式。
      -i :忽略大小写(ignore case)。
      -v :反过来(invert),只打印没有匹配的,而匹配的反而不打印。
      -n :显示行号
      -w :被匹配的文本只能是单词,而不能是单词中的某一部分,如文本中有liker,而我搜寻的只是like,就可以使用-w选项来避免匹配liker
      -c :显示总共有多少行被匹配到了,而不是显示被匹配到的内容,注意如果同时使用-cv选项是显示有多少行没有被匹配到。
      -o :只显示被模式匹配到的字符串。
      --color :将匹配到的内容以颜色高亮显示。
      -A  n:显示匹配到的字符串所在的行及其后n行,after
      -B  n:显示匹配到的字符串所在的行及其前n行,before
      -C  n:显示匹配到的字符串所在的行及其前后各n行,context
    
  4. 批量删除/kill 进程

    ps aux | grep xxx | grep -v grep | awk '{print $2}' | xargs kill -9
    
  5. rm删除文件和文件夹

    rm -r folder
    rm -f folder
    

    -r 向下递归,不管有多少级目录,一并删除
    -f 直接强行删除,不作任何提示的意思

  6. ps显示当前进程状态

    ps [options] [--help]
    

    主要的参数说明:

    -A 列出所有的行程
    -w 显示加宽可以显示较多的资讯
    -au 显示较详细的资讯
    -aux 显示所有包含其他使用者的行程
    au(x) 输出格式 :
    USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
    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:所执行的指令
    

    ps指令可以与grep指令联合使用,个人常用的为ps -aux|grep [param],查询特定进程名称或程序的进程状态。同样的可以使用ps -ef|grep [param]
    例如

    #ps -aux|grep "java"
    root     12155  0.0  0.0 112664   968 pts/0    S+   10:44   0:00 grep --color=auto java
    
    #ps -ef|grep "java"
    root     12132  5808  0 10:43 pts/0    00:00:00 grep --color=auto java
    
  7. top显示当前系统的状态

    [root]# top
    top - 14:30:51 up 427 days, 54 min,  2 users,  load average: 9.29, 5.62, 3.29
    Tasks: 559 total,   9 running, 550 sleeping,   0 stopped,   0 zombie
    Cpu(s): 38.0%us,  1.8%sy,  0.0%ni, 59.6%id,  0.2%wa,  0.0%hi,  0.2%si,  0.0%st
    Mem:  65855372k total, 57378944k used,  8476428k free,   216676k buffers
    Swap: 33554428k total,  2416084k used, 31138344k free, 39122352k cached
    PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 
    

    如上所示,top命令可以看到总体的系统运行状态和cpu的使用率 。
    %us:表示用户空间程序的cpu使用率(没有通过nice调度)
    %sy:表示系统空间的cpu使用率,主要是内核程序。
    %ni:表示用户空间且通过nice调度过的程序的cpu使用率。
    %id:空闲cpu
    %wa:cpu运行时在等待io的时间
    %hi:cpu处理硬中断的数量
    %si:cpu处理软中断的数量
    %st:被虚拟机偷走的cpu

  8. lscpu显示当前系统的cpu情况

    [root]# lscpu
    Architecture:          x86_64
    CPU op-mode(s):        32-bit, 64-bit
    Byte Order:            Little Endian
    CPU(s):                24
    On-line CPU(s) list:   0-23
    Thread(s) per core:    2
    Core(s) per socket:    6
    Socket(s):             2
    NUMA node(s):          2
    Vendor ID:             GenuineIntel
    CPU family:            6
    Model:                 63
    Model name:            Intel(R) Xeon(R) CPU E5-2620 v3 @ 2.40GHz
    Stepping:              2
    CPU MHz:               2399.848
    BogoMIPS:              4799.31
    Virtualization:        VT-x
    L1d cache:             32K
    L1i cache:             32K
    L2 cache:              256K
    L3 cache:              15360K
    NUMA node0 CPU(s):     0,2,4,6,8,10,12,14,16,18,20,22
    NUMA node1 CPU(s):     1,3,5,7,9,11,13,15,17,19,21,23
    

个人学习记录使用,持续更新ing…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值