Linux笔记 Day08---(ps命令、top命令、ulimit命令、mkdir命令、more命令、文件系统层级结构FHS)

一、ps命令

ps 命令是最常用的监控进程的命令,通过此命令可以查看系统中所有运行进程的详细信息

用法: ps [选项]

选项:

  • -A:所有的进程均显示出来,与 -e 具有同样的效用;
  • -a: 只显示现行终端机下的所有进程,包括其他用户的进程;
  • a:显示一个终端的所有进程,除会话引线外;
  • -u:以用户为主的进程状态 (也可不加-)
  • x:显示没有控制终端的进程;
  • -e:显示所有进程

输出格式选项:

  • l :较长、较详细的将该PID 的的信息列出(也可不加-)
  • j :工作的格式 (jobs format)
  • -f :做一个更为完整的输出。

可以看到,ps 命令有些与众不同,它的部分选项不能加入"-",比如命令"ps aux",其中"aux"是选项,但是前面不能带“-”

执行 “man ps” 命令,则会发现 ps 命令的帮助为了适应不同的类 UNIX 系统,可用格式非常多,不方便记忆。所以,建议大家记忆几个固定选项即可。比如:

  • ps aux 可以查看系统中所有的进程;
  • ps -le 可以查看系统中所有的进程,而且还能看到进程的父进程的 PID 和进程优先级;
  • ps -l 只能看到当前 Shell 产生的进程;

其实有这三个命令就足够了

【例 1】

ps aux 查看系统中所有的进程

[dxk@admin ~]$ ps -aux
#查看系统中的所有进程
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.2  0.3 128000  6660 ?        Ss   09:16   0:03 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root          2  0.0  0.0      0     0 ?        S    09:16   0:00 [kthreadd]
root          3  0.1  0.0      0     0 ?        S    09:16   0:02 [kworker/0:0]
root          4  0.0  0.0      0     0 ?        S<   09:16   0:00 [kworker/0:0H]
root          5  0.0  0.0      0     0 ?        S    09:16   0:00 [kworker/u256:0]
root          6  0.0  0.0      0     0 ?        S    09:16   0:00 [ksoftirqd/0]
…省略部分输出…

说明以上输出信息中各列的具体含义:

表头 含义
USER 该进程是由哪个用户产生的
PID 进程的ID
%CPU 该进程占用CPU资源的百分比,占用的百分比越高,进程越耗费资源
%MEM 该进程占用物理内存的百分比,占用的百分比越高,进程越耗费资源
VSZ 该进程占用虚拟内存的大小,默认单位为KB
RSS 该进程占用实际物理内存的大小 ,默认单位为KB
TTY 该进程是在哪个终端上运行的。其中tty1~tty7代表本地控制台终端(tty7是图形化终端),pts0—pts255代表伪终端,一般是远程连接的终端
STAT 进程状态。-Z:僵尸进程;-S:该进程处于睡眠状态,可被唤醒;-D:不可被唤醒的睡眠状态;-R:该进程正在运行…
START 该进程启动的时间
TIME 该进程占用CPU的运算时间,而不是系统时间
COMMAND 产生此进程的的命令名

【例 2】

ps -le 命令也能看到系统中所有的进程。由于 “-l” 选项的作用,所以 ps -le命令能够看到更加详细的信息,比如父进程的 PID、优先级等。但是这两个命令的基本作用是一致的

[dxk@admin ~]$ ps -le
F S   UID    PID   PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
4 S     0      1      0  0  80   0 - 32000 ep_pol ?        00:00:03 systemd
1 S     0      2      0  0  80   0 -     0 kthrea ?        00:00:00 kthreadd
1 S     0      3      2  0  80   0 -     0 worker ?        00:00:03 kworker/0:0
1 S     0      4      2  0  60 -20 -     0 worker ?        00:00:00 kworker/0:0H
1 S     0      5      2  0  80   0 -     0 worker ?        00:00:00 kworker/u256:0
……省略部分输出信息……

说明以上输出信息中各列的具体含义:

表头 含义
F 进程标志,说明进程的权限,常见的标志有两个。1:进程可以被复制,但不能执行 4:进程使用超级用户权限
S 进程状态,和ps aux命令输出内容中的STAT一致
UID 运行此进程的用户ID
PID 进程的ID
PPID 父进程的ID
C 该进程的CPU使用率,单位是百分比
PRI 进程的优先级,数值越小该进程的优先级越高,越早被CPU执行
NI Nice值, 可通过修改其值调整进程的优先级
ADDR 该进程在内存的哪个位置
SZ 该进程占用的内存大小
WCHAN 该进程是否在运行。“-”代表在运行
TTY 该进程在哪个终端上个运行
TIME 该进程占用CPU的时间,不是系统时间
CMD 产生此进程的命令名

【例 3】如果不想看到所有的进程,只想查看一下当前shell产生了哪些进程,那只需使用 “ps -l” 命令就足够了

[dxk@admin ~]$ ps -l
F S   UID    PID   PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
0 S  1000   1640   1639  0  80   0 - 28917 do_wai pts/1    00:00:00 bash
0 R  1000   1735   1640  0  80   0 - 38337 -      pts/1    00:00:00 ps

可以看到,是在 pts/1 伪终端登录,且只产生了两个进程:一个是登录之后生成的 Shell,也就是 bash;另一个是正在执行的 ps 命令

僵尸进程的产生一般是由于进程非正常停止或程序编写错误,导致子进程先于父进程结束,而父进程又没有正确地回收子进程,从而造成子进程一直存在于内存当中,这就是僵尸进程。僵尸进程会对主机的稳定性产生影响,所以,在产生僵尸进程后,一定要对产生僵尸进程的软件进行优化,避免一直产生僵尸进程;对于已经产生的僵尸进程,可以在查找出来之后强制中止

关于top命令和ps命令进程状态输出:

含义
D 不可中断,进程处于Uninterruptable sleep状态 (usually IO)
R 正在运行,或在队列中的进程,进程处于RUNNING状态
S 处于休眠状态,进程处于interruptable sleep状态
T 停止或被追踪,进程处于STOPPED状态
Z 僵尸进程,进程处于ZOMBIE状态
W 进入内存交换(从内核2.6开始无效)
X 死掉的进程
< 高优先级
N 低优先级
L 有些页被锁进内存
s 包含子进程
+ 位于后台的进程组;
l 多线程,克隆线程 multi-threaded (using CLONE_THREAD, like NPTL pthreads do)

二、top命令

实时监控系统处理器状态的命令 top

ps 命令可以一次性给出当前系统中进程状态,但使用此方式得到的信息缺乏时效性,并且,如果管理员需要实时监控进程运行情况,就必须不停地执行 ps 命令,这显然是缺乏效率的。

为此,Linux 提供了 top 命令。top 命令可以动态地持续监听进程地运行状态,与此同时,该命令还提供了一个交互界面,用户可以根据需要,人性化地定制自己的输出,进而更清楚地了进程的运行状态。

通过top命令查看系统的CPU、内存、运行时间、交换分区、执行的线程等信息。通过top命令可以有效的发现系统的缺陷出在哪里。是内存不够、CPU处理能力不够、IO读写过高…

用法: top [选项]

选项:

  • -d 秒数:指定 top 命令每隔几秒更新。默认是 3 秒;
  • -b:使用批处理模式输出。一般和"-n"选项合用,用于把 top 命令重定向到文件中;
  • -n 次数:指定 top 命令执行的次数。一般和"-"选项合用;
  • -p 进程PID:仅查看指定 ID 的进程;
  • -s:使 top 命令在安全模式中运行,避免在交互模式中出现错误;
  • -u 用户名:只监听某个用户的进程;
  • -o [+/-] fieldname:以表头的某个选项排序,+代表所有进程根据该选项从大到小排序(+是默认的),-代表从小到大排序)

在 top 命令的显示窗口中,还可以使用如下按键,进行交互操作:

  • ? 或 h:显示交互模式的帮助;
  • P:按照 CPU 的使用率排序,默认就是此选项;
  • M:按照内存的使用率排序;
  • N:按照 PID 排序;
  • T:按照 CPU 的累积运算时间排序,也就是按照 TIME+ 项排序;
  • k:按照 PID 给予某个进程一个信号。一般用于中止某个进程,信号 9 是强制中止的信号;
  • r:按照 PID 给某个进程重设优先级(Nice)值;
  • q:退出 top 命令;

我们看看 top 命令的执行结果,如下:

top - 10:29:47 up  <
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值