操作系统第一次实验报告——剖析ps命令

0 个人信息

  • 张樱姿
  • 201821121038
  • 计算1812

1 实验目的

  • 熟练Linux命令行操作。

2 实验内容

  • 使用man查询命令使用手册
  • 基本命令使用

3 实验环境

  • 操作系统:deepin15.9.2
  • 平台:双操作系统

4 实验报告

  • 剖析ps命令

  man命令是Linux下的帮助指令,通过man指令可以查看Linux中的指令帮助、配置文件帮助和编程帮助等信息。

  首先利用man命令先查询下ps的手册。

man ps
NAME
       ps - report a snapshot of the current processes.

SYNOPSIS
       ps [options]
EXAMPLES
    # 使用标准语法查看系统上的每个进程 To see every process on the system using standard syntax:
ps -e ps -ef ps -eF ps -ely
    # 使用BSD语法查看系统上的每个进程 To see every process on the system using BSD syntax:
ps ax ps axu
    # 打印进程树 To print a process tree:
ps -ejH ps axjf
    # 获取有关线程的信息 To get
info about threads: ps -eLf ps axms
    # 获取安全信息 To get security
info: ps -eo euser,ruser,suser,fuser,f,comm,label ps axZ ps -eM
    # 以用户格式查看以root形式(real & effective ID)运行的每个进程 To see every process running as root (real
& effective ID) in user format: ps -U root -u root u
    # 以用户格式查看每个进程 To see every process with a user
-defined format: ps -eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm ps axo stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm ps -Ao pid,tt,user,fname,tmout,f,wchan
    # 仅打印系统记录的进程PID Print only the process IDs of syslogd:
ps -C syslogd -o pid=
    # 仅打印PID为42的进程名 Print only the name of PID
42: ps -q 42 -o comm=
  • 尝试ps命令

  使用标准语法查看系统上的每个进程

  ②使用BSD语法查看系统上的每个进程

   ③打印进程树④获取有关线程的信息  

 ⑤获取安全信息

 ⑥以用户格式查看以root形式(real & effective ID)运行的每个进程

 ⑦以用户格式查看每个进程 

 ⑧ 仅打印系统记录的进程PID

 无输出

⑨仅打印PID为42的进程名

 

  • 解释ps命令中的常用参数

a:显示现行终端机下的所有程序,包括其他用户的程序。
c:列出程序时,显示每个程序真正的指令名称,而不包含路径,选项或常驻服务的标示。
e:列出程序时,显示每个程序所使用的环境变量。
f:用ASCII字符显示树状结构,表达程序间的相互关系。
g:显示现行终端机下的所有程序,包括群组领导者的程序。
h:不显示标题列。
u:以用户为主的格式来显示程序状况。
x:显示所有程序,不以终端机来区分。
r:只列出现行终端机正在执行中的程序。
v:采用虚拟内存的格式显示程序状况
-a:显示所有终端机下执行的程序,除了阶段作业领导者之外。
-c:显示CLS和PRI栏位。
-d:显示所有程序,但不包括阶段作业领导者的程序。
-e:显示所有程序。
-f:显示UID,PPIP,C与STIME栏位。
-H:显示树状结构,表示程序间的相互关系。
-u<用户识别码>:列出属于该用户的程序的状况,也可使用用户名称来指定。
-j:采用工作控制的格式显示程序状况
-l或l:采用详细的格式来显示程序状况。
-N:显示所有的程序,除了执行ps指令终端机下的程序之外。

  • 解释执行ps -au()x后返回结果中每个字段的含义

  ps -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:所执行的指令

5 Reference