• linux常用命令--ps、netstat、find


     一、ps

    1.1ps命令简介

    Linux中的ps命令是Process Status的缩写。ps命令用来列出系统中当前运行的那些进程。ps命令列出的是当前那些进程的快照,就是执行ps命令的那个时刻的那些进程,如果想要动态的显示进程信息,就可以使用top命令。
    要对进程进行监测和控制,首先必须要了解当前进程的情况,也就是需要查看当前进程,而 ps 命令就是最基本同时也是非常强大的进程查看命令。使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等。总之大部分信息都是可以通过执行该命令得到的。
    ps 为我们提供了进程的一次性的查看,它所提供的查看结果并不动态连续的;如果想对进程时间监控,应该用 top 工具。
    kill 命令用于杀死进程。

    1.2linux上进程有5种状态 

    1. 运行(正在运行或在运行队列中等待)
    2. 中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号)
    3. 不可中断(收到信号不唤醒和不可运行, 进程必须等待直到有中断发生)
    4. 僵死(进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放)
    5. 停止(进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行)

    1.3ps工具标识进程的5种状态码
    D 不可中断 uninterruptible sleep (usually IO)
    R 运行 runnable (on run queue)
    S 中断 sleeping
    T 停止 traced or stopped
    Z 僵死 a defunct (”zombie”) process

    1.4ps -ef

    显示所有进程信息,连同命令行

    (my_python_env)[root@hadoop26 ~]# ps -ef | head -5
    UID        PID  PPID  C STIME TTY          TIME CMD
    root         1     0  1 19:19 ?        00:00:03 /sbin/init
    root         2     0  0 19:19 ?        00:00:00 [kthreadd]
    root         3     2  0 19:19 ?        00:00:00 [migration/0]
    root         4     2  0 19:19 ?        00:00:00 [ksoftirqd/0]

    1.5ps -aux

    列出目前所有的正在内存当中的程序

    (my_python_env)[root@hadoop26 ~]# ps -aux | head -5
    USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
    root         1  1.0  0.0  19340  1448 ?        Ss   19:19   0:03 /sbin/init
    root         2  0.0  0.0      0     0 ?        S    19:19   0:00 [kthreadd]
    root         3  0.0  0.0      0     0 ?        S    19:19   0:00 [migration/0]
    root         4  0.0  0.0      0     0 ?        S    19:19   0:00 [ksoftirqd/0]

    1.6对字段的解释

    USER:该 process 属于那个使用者账号的
    PID :该 process 的号码
    %CPU:该 process 使用掉的 CPU 资源百分比
    %MEM:该 process 所占用的物理内存百分比
    VSZ :该 process 使用掉的虚拟内存量 (Kbytes)
    RSS :该 process 占用的固定的内存量 (Kbytes)
    TTY :该 process 是在那个终端机上面运作,若与终端机无关,则显示 ?,另外, tty1-tty6 是本机上面的登入者程序,若为 pts/0 等等的,则表示为由网络连接进主机的程序。
    STAT:该程序目前的状态,主要的状态有
    R :该程序目前正在运作,或者是可被运作
    S :该程序目前正在睡眠当中 (可说是 idle 状态),但可被某些讯号 (signal) 唤醒。
    T :该程序目前正在侦测或者是停止了
    Z :该程序应该已经终止,但是其父程序却无法正常的终止他,造成 zombie (疆尸) 程序的状态
    START:该 process 被触发启动的时间
    TIME :该 process 实际使用 CPU 运作的时间
    COMMAND:该程序的实际指令
    

    二、netstat

    2.1netstat功能介绍

    netstat命令用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。netstat是在内核中访问网络及相关信息的程序,它能提供TCP连接,TCP和UDP监听,进程内存管理的相关报告。
    如果你的计算机有时候接收到的数据报导致出错数据或故障,你不必感到奇怪,TCP/IP可以容许这些类型的错误,并能够自动重发数据报。但如果累计的出错情况数目占到所接收的IP数据报相当大的百分比,或者它的数目正迅速增加,那么你就应该使用netstat查一查为什么会出现这些情况了。

    2.2使用netstat找出程序运行的端口

    (my_python_env)[root@hadoop26 ~]# netstat -anp | grep ssh
    tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      1893/sshd           
    tcp        0      0 :::22                       :::*                        LISTEN      1893/sshd 

    参数介绍

    a:显示所有连线中的socket

    n:直接使用ip地址,而不通过域名服务器

    p:显示正在使用socket的程序识别码和程序名称

    三、find

    3.1命令介绍

    find命令用于在文件树中查找文件,并作出相应处理

    3.2语法格式

    find PATHNAME –OPTION [-print –exec -ok]
    参数解释:
    PATHNAME:就是find命令作用的目录
    -print:把查询的结果打印到标准输出
    -exec:把查询的结果执行相应的命令
    -ok:也是把查询到的结果执行相应的命令,但是在执行命令之前会询问是否执行
    

    3.3-name选项

    -name是根据文件名来做查找

    (my_python_env)[root@hadoop26 ~]# find ~ -name test
    /root/miniconda2/lib/python2.7/site-packages/wheel/test
    /root/miniconda2/envs/my_python_env/lib/python2.7/site-packages/tornado/test
    /root/miniconda2/envs/my_python_env/lib/python2.7/site-packages/wheel/test
    /root/miniconda2/envs/my_python_env/lib/python2.7/site-packages/luigi/static/visualiser/js/test
    /root/miniconda2/pkgs/wheel-0.29.0-py27_0/lib/python2.7/site-packages/wheel/test
    /root/test

    -name选项支持正则

    查找大写字母开头的文件

    (my_python_env)[root@hadoop26 ~]# find ~ -name '[A-Z]*' | head -5
    /root/fcitx-3.4.2-bin/README
    /root/metastore_db/README_DO_NOT_TOUCH_FILES.txt
    /root/metastore_db/log/README_DO_NOT_TOUCH_FILES.txt
    /root/metastore_db/seg0/README_DO_NOT_TOUCH_FILES.txt
    /root/doc/org/wltea/analyzer/cfg/DefaultConfig.html

    3.4-o选项

    连接多个查询条件,或者的意思

    (my_python_env)[root@hadoop26 ~]# find ~ -name 'a*' -o -name 'b*' | head -5
    /root/fcitx-3.4.2-bin/usr/bin
    /root/testshell/a.sh
    /root/doc/org/wltea/analyzer
    /root/doc/allclasses-noframe.html
    /root/doc/allclasses-frame.html
  • 相关阅读:
    博客园特效页脚保存
    go channel
    goland 注册
    mac安装go环境
    go 结构体与方法
    gin教程
    hihocoder234周 计算不包含黑点的矩形个数
    参考文献的正确姿势
    vscode用法
    使用extract-text-webpack-plugin提取css文件
  • 原文地址:https://www.cnblogs.com/dongdone/p/5724962.html
Copyright © 2020-2023  润新知