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
原文地址:https://www.cnblogs.com/dongdone/p/5724962.html