这是可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行的命令 ips,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器
程序:
您的姓名
ips - 智能进程状态
概要
IPS [列选项] [选择选项] [排序选项] [其他选项] [宏名称]
商品描述
IPS 是一个类似ps的智能程序,显示获得的进程或线程状态
来自 / proc中 文件系统。 它具有跟踪主动、半主动和
瞬态过程容易。 它是极其可配置的,但仍然有效。 IPS
尝试通过仅收集尽可能多的信息来消耗尽可能少的运行时间
需要为指定的特定显示。
IPS 通常显示一次进程状态然后退出,但它也可以像一个
最佳 程序重复显示进程状态。 输出可以按行显示
线作为一个哑终端,通过 诅咒 使用游标寻址的库,
或显示在原始 X11 窗口中。 输出可以着色以突出显示行
兴趣。
可以逐列选择要显示的有关进程的信息
基础。 每列显示一条有关进程的信息。 一套
要显示的列,它们的顺序可能会改变。
可以根据一列或多列的值选择进程进行显示。 一些
选择标准是为了效率和方便而预先定义的,例如进程 ID
和用户名。 可以使用通用表达式定义其他选择标准
引用列值的任意组合。
进程显示的顺序是基于对一个或多个值的排序
列。 要排序的列集、排序列的顺序以及是否
每次排序是正常的还是颠倒的都可以改变。 基于的任意表达式
列的值也可用于排序。
可以根据任意表达式对流程线进行着色,以突出显示
感兴趣的过程。 前景色、背景色、下划线和粗体
可以设置输出。 标题行也可以着色。
IPS 读取初始化文件来定义宏,这使得指定有用的变得容易
配置选项的组合。 因此,许多不同的输出格式和短
可以使用对常见选项组合的削减。
选项 IPS 是减号后跟短词或短语。 多种选择
不能在一个减号后组合在一起(与许多其他情况不同)
实用程序)。 选项按照它们在命令行中给出的顺序进行处理。
允许出现冲突操作的选项组合。 这是
因为每个选项只是修改前一个选项留下的状态。 国家
处理完所有选项后剩下的就是实际执行的选项。
指定 柱 用于 OUTPUT
有许多信息栏可供选择显示。 每列
显示有关所显示进程的一项信息。 列集和
他们的顺序可以由用户指定。
每列都有一个定义的宽度,通常足以容纳尽可能宽的
该列的数据项。 此宽度只是默认值,可以根据需要进行更改。
列中显示的数据项左对齐、右对齐或居中
根据列的类型在列宽内。 在某些情况下,列宽
可能不足以显示完整的数据项,在这种情况下,该项目是
截断为列宽。 截断由右侧的竖线指示
柱子的边缘。 (通常需要截断的列是 命令 和
环境 列,显示完整的命令行或环境字符串
过程。)
这个 IPS 程序强制限制用于显示列的总宽度。 如果
选择了太多列进行显示,那么从右边开始的一列或多列是
直到剩余的列适合总宽度。 宽度限制是
通常由终端或窗口的宽度隐式设置。 但如果需要,宽度限制
可以由用户明确指定。 (这很方便,如果 IPS 程序的输出
例如,正在通过管道传输到另一个进程。)
如果最终显示的列没有延伸到总宽度限制,那么
列的宽度扩展为包括剩余的列。 这允许更多的数据
在需要截断之前要看到的项目。 (通常情况下, 命令 列是
最右边的列,以便利用这些额外的列。)
操作列的选项是 -col, -addcol, -雷姆科尔, -九月, -宽度, -colwidth,
-vert和 -列表列.
这个 -col 选项首先清除要显示的任何现有列名列表,然后设置
要按指定显示的新列名列表。 列显示在
选项中指定的顺序。 如果列表中有重复的列名,则
只有最后一次使用的列名才有效。
这个 -addcol 选项将指定的列添加到现有的列名列表中
显示。 新列按指定的顺序添加,默认情况下附加
在列表中先前存在的列之后。 如果任何列名已经在
现有列表,然后将它们从列表中删除,然后再重新添加到列表中。
一个参数可以是一个数字,在这种情况下,任何后面的列名都被插入到
从指定的列号开始的列表。 超出范围的列号是静默的
更改为最接近的合法值。 例如, IPS -addcol 2 的uid GID 999 CPU百分比
将用户 ID 列添加为第 2 列,将组 ID 列添加为第 3 列,并附加
所有其他列之后的百分比 cpu 列。
这个 -雷姆科尔 选项从列名列表中删除指定的列,不
关心列是否在列表中。
这个 -九月 选项指定显示中相邻列之间的间隔。 它有
一个参数,即每对列之间插入的空格数。 这
默认分隔为 2 个空格。
这个 -宽度 选项指定可用于显示列的总宽度。 它有
一个参数,即可用的列数。 如果没有给出这个选项并且
输出是 标准输出,那么宽度是从内核获得的,如果 标准输出 是一个
终端,否则设置为 80 列,如果 标准输出 不是终端。
这个 -colwidth 选项指定特定列的宽度。 它有一两个
论据。 第一个参数是要设置其宽度的列的名称。 这
第二个参数是所需的列宽度。 如果没有给出第二个参数,
然后将列宽设置为其默认值。
这个 -vert 选项将输出格式从默认的水平格式更改为垂直格式
一。 在垂直格式中,每个进程的状态是多行的,每个进程显示
value 使用完整的行。 每行的开头包含列标题和一个
冒号字符,除非 -无标题 选项被使用。 每个值都是左对齐的
行上的相同位置,并且可以使用剩余的可用输出宽度。 这
-九月 选项设置最宽的列标题和开头之间的空格数
的值。 如果正在显示多个进程,则以空行分隔
他们的状态行。
这个 -列表列 option 只是列出可用列的名称,然后退出。
还会显示列的标题和列的默认宽度。
选择 OF 过程 用于 显示屏玻璃制造
要显示的进程集可以由多个选项指定。 这些中的每一个
options 指定要满足的条件。 仅显示满足所有条件的流程
规定的条件。
指定要满足的条件的选项是 -pid, -用户, -组, -我的, -无根,
-没有自己, -积极的, -最佳和 -条件.
这个 -pid 选项后跟一个或多个进程 ID,并将显示限制为仅
指定的进程(如果存在)。 多次使用此选项会添加到列表中
要显示的进程 ID。
这个 -用户 选项后跟一个或多个用户名或用户 ID,并限制
显示给具有这些用户 ID 的进程(如果存在)。 多次使用此选项
添加到要显示的用户列表中。
这个 -组 选项后跟一个或多个组名或组 ID,并限制
显示给具有这些组 ID 的进程(如果存在)。 多次使用此选项
添加到要显示的组列表中。
这个 -程序 选项后跟一个或多个程序名称,并将显示限制为
具有这些程序名称的进程(如果存在)。 程序名称是
启动进程的可执行文件(如 程序 柱子)。 这是
并不总是与命令行参数中显示的名称相同。 使用这个选项
多次添加到要显示的程序列表中。
这个 -我的 选项仅选择具有我的用户 ID 的进程。
这个 -无根 选项禁用以 root 身份运行的进程的选择。
这个 -没有自己 选项删除 IPS 从显示过程。
这个 -积极的 选项仅显示正在运行或已运行的进程
最近。
这个 -最佳 选项将显示限制为指定数量的进程。 显示后
指定数量的进程,其他进程将被忽略。 如果没有给出参数
选项,那么终端或窗口的高度用于限制数量
显示的进程。
前面的选项只能选择匹配一小组可能的进程
状况。 这 -条件 option 是不同的,并且理解一般表达式。 这
表达式在选项后面的参数中指定。 (论证通常需要
引用以避免被拆分为多个参数或使其标记被解释为
贝壳。)
您可以选择符合条件的进程,该条件是列的任意组合
过程的值。 这是通过指定要为每个表达式求值的表达式来完成的
过程。 如果表达式的结果非零或非空,则过程为
被选中。 如果无法计算表达式(例如尝试除以零),
则不会产生错误,但不会选择该进程。
C 中的大多数表达式语法都可以应用于列值,例如
算术、比较、逻辑与和或、括号的使用、问号
运算符和一些内置函数。 数字和字符串常量可用于
表达式。 数字通常是十进制的,但如果以 0 开头,则是八进制的,并且
如果以前导 0x 开头,则为十六进制。 字符串包含在一对匹配的单个或
双引号。 通常,字符串值必须与字符串值进行比较,而数字
值与数值进行比较。 但在某些情况下,数值可以转换为
用于比较的字符串。
列值在表达式中由列名表示,如
-列表列 选项,其中允许唯一的缩写。 来自多列的值
可以在同一个表达式中使用,并且可以相互比较。 某列
值是数字,而其他列值是字符串。
使用列名获得的值通常是它的 基地 值,即
列的未格式化原始信息单元。 例如,对于运行时,这
是的数量 瞬间 进程使用的运行时间(即 100 秒)。 一个基地
value 可以是数字或字符串值,具体取决于列。
您可以将限定符应用于列名称以使用列的替代表示形式
价值。 限定符是跟在列名后面的一个词,用
时期。 允许的限定符是 基地, 显示和 测试.
使用 基地 限定符与单独使用列名(基数
值)。
使用 显示 限定符将列值作为字符串值返回,与
为列显示。 例如,对于运行时 显示 值包含冒号
和分隔小时、分钟和部分秒的句点。
使用 测试 限定符返回一个布尔值(1 表示 TRUE,0 表示 FALSE)指示
该列的某些有用方面是否属实。 此测试的含义各不相同
取决于列。 例如,对于显示父pid的列,测试
返回进程是否有父进程(即,不是 0 或 1)。
有几个函数可以在表达式中使用。 这些是 分钟, 最大, ABS,
strlen的, 匹配, CMP, STR和 my.
这个 分钟, 最大和 ABS 函数采用数字参数,并采用两个中的最小值
数字、两个数字中的最大值或一个数字的绝对值。
这个 strlen的 函数返回字符串参数的长度,或者如果给出一个数字,则
该数字的字符串表示的长度。
这个 CMP 函数比较两个参数并根据是否返回 -1、0 或 1
第一个参数小于、等于或大于第二个参数。 如果两者
参数是数字,然后对它们的值进行比较。 否则,
比较是作为字符串完成的,将数字参数转换为字符串值,如果
必需的。
这个 匹配 函数接受两个参数,它们可以是字符串或数值。 数字
值转换为相应的字符串值。 第一个参数是一个字符串
要测试的值。 第二个参数是要匹配的通配符模式。 这
通配符语法就像文件名匹配,所以 '?' 表示任何单个字符,'*' 表示
任何字符序列,并且 '[]' 匹配所包含字符的单个出现。
如果字符串匹配,该函数返回 1,否则返回 0。
这个 -str 函数将其参数转换为字符串值。
这个 my 函数接受一个参数,它是一个列名(可能是限定的)。 它
返回该列的值 IPS 工艺 本身。 例如, 我的(ttyname)
返回一个字符串,它是我的终端名称。 为了最大限度地发挥作用, 的uid, 用户,
GID和 组 列返回用户的真实组和用户 ID my 功能,甚至
如果 IPS 程序已经做成setuid。
表达式中可以使用大写名称,表达式是要扩展为的宏名称
子表达式。 这些宏名称在初始化文件中定义。 这
宏的扩展本身必须是一个完整的表达式,正确使用
括号和运算符。 宏名称被替换为评估结果
子表达式,因此可以是数字或字符串。 子表达式的定义
也可以包含也将被评估的宏名称。
排序 OF 显示 过程
显示进程的默认排序顺序是它们的进程 ID。 但名单
可以根据列值的任意组合对显示的进程进行排序。 这
要排序的列不必限于正在被排序的列集
显示。
第一个指定的排序列用于对进程进行排序。 如果两个或更多
进程对第一个排序列具有相同的值,然后按
第二个指定的排序列(如果指定)。 这个过程一直持续到
是指定的排序列,任何进程仍然需要排序。 如果有任何进程
使用完所有排序列后,仍然留下匹配的排序值,然后
进程 ID 用于最终排序。
对列进行排序可以是正常排序,也可以是反向排序。 在正常排序中,
具有较小值的进程将首先显示。 在反向排序中,处理
较大的值将首先显示。 根据列的类型比较值
用于排序。 一些列基于整数值排序,一些列基于整数值排序
字符串值。 即使显示的值是字符串,排序也可能基于
基础积分 基地 价值。 (这 开始时间 列是一个例子。)
这个 -种类, -重新排序, -sortexpr, -revsortexpr和 -nosort 选项用于指定
排序值。
这个 -种类 和 -重新排序 选项用于将列附加到排序列表,要么用于
正常排序或反向排序。 它们后面是要列的列表
添加用于排序。
这个 -sortexpr 和 -revsortexpr options 将任意表达式附加到排序列表,
用于正常排序或反向排序。 表达式可以由列组成
名称、数字、字符串和运算符,如 -条件 选项。 排序是在
表达式的结果,可能是数字或字符串值。
这个 -nosort 从排序列表中删除所有列,仅保留基于默认排序的
在进程 ID 上。
染色 OF “ OUTPUT
默认情况下,所有输出文本来自 IPS 显示在正常的前景和
输出方法的背景颜色(例如,对于 X11 输出,白底黑字)。
信息行、标题行和流程行可以通过以下方式单独着色
为它们指定前景色、背景色和属性。
颜色的规格通常由由三部分组成的字符串给出
由斜杠字符分隔。 这三部分分别是前景色名称、
背景颜色名称和属性字母。
如果只存在一个斜线,则只给出前景色和背景色名称,
没有属性。 如果不存在斜线,则仅给出前景色名称
没有背景名称或属性。
如果颜色名称为空或具有特殊值 默认,那么那个颜色是默认的
输出方法的颜色。
属性字母可以是 'b' 指示粗体(或明亮)文本,或者 'u' 至
指示带下划线的文本,或者两者兼而有之。
颜色规格示例如下: 红色, /蓝色, 黄绿色, 默认/默认, //你和
红色//bu. 这些设置了带有默认背景的红色前景,默认前景
蓝色背景,绿色前景,黄色背景,默认
前景和背景,带有下划线文本的默认前景和背景,
以及带有默认背景的红色前景,文本带有下划线并加粗。
可用的颜色取决于输出方法,以及
颜色。
对于 X11 输出,可以使用多种颜色并且可以显式命名或指定
使用哈希标记后的 3 或 6 个十六进制数字给出红色、绿色和蓝色
组件。
对于curses 和终端输出,最多可以使用256 种颜色(根据
终端的能力)。 颜色是从 0 到 255 的数值,其中
前8个是原色,接下来的8个是次色,最后20个左右
为灰度颜色,其他为任意颜色。 或者,名称
可以使用八种原色。
信息行可以使用颜色 -信息颜色 选项。 标题行可以是
使用颜色 -标题颜色 选项。
可以使用以下一种或多种用途对正在输出的流程行进行着色 -行颜色
选项。 此选项有两个参数。 第一个参数是颜色规范。
第二个参数是要为显示在
行,如 -条件 选项。 如果条件为真,则该行将在
指定颜色。
如果多个 -行颜色 使用选项并且多个条件匹配一行,然后颜色
最后一个匹配条件的 用于该行。
与任何条件不匹配的行 -行颜色 选项在
默认前景色和背景色。
指定 “ 显示屏玻璃制造 方法
来自的输出 IPS 可以使用几种不同的方法之一显示。 这 -一次,
-环, -诅咒和 -x11 选项用于指定哪些显示方法是
用过的。 默认选项是 -一次.
两者 -一次 和 -环 options 指定写入进程的显示方法
地位 标准输出 逐行不使用光标寻址序列。 这样的输出是
适用于使用标准输出的重定向保存到文件或在一个
管道。 两个选项之间的差异表明输出是否为
一次性快照或无限循环重复。 没有限制
可以写入的行数。 这 -明确 选项可以与其中任何一个一起使用
在每次显示之前编写标准 ANSI 清除屏幕转义序列的选项
进程状态。
这个 -诅咒 选项指定使用 诅咒(3) 库为
使用光标寻址序列有效更新屏幕。 该显示器使用
整个终端屏幕。 如果需要,可以调整屏幕大小。 的行数
信息受屏幕大小的限制,因此只有状态的子集可能
一次可见。 但是,显示可以自动或手动滚动,因此
那最终所有的状态都可以看到。 这 IPS 程序处于循环模式
这种显示方式。 可以通过键入以下命令终止程序 q or - EP 字符
进入终端。
这个 -x11 选项指定使用原始 X11 窗口的显示方法(即,没有
使用终端模拟器,例如 xterm的)。 如果需要,可以调整窗口大小。 这
信息的行数受窗口中行数的限制,因此只有
状态的子集可能一次可见。 但是,可以滚动显示
自动或手动,以便最终可以看到所有状态。 这 IPS
对于此显示方法,程序处于循环模式。 该程序可以通过以下方式终止
键入 q or - EP 字符进入窗口或通过使用
窗口管理器。
这个 -显示, -几何学, -字体, -前景和 -背景 选项可用于设置
显示名称、窗口几何形状、字体名称、前景色和背景色
X11 窗口。 如果未设置显示名称,则使用默认名称 显示屏玻璃制造
使用环境变量。 默认窗口几何图形为 150x50。 默认字体是
这些因素包括原料奶的可用性以及达到必要粉末质量水平所需的工艺。 固定 字体,这是一种等宽(即固定宽度)字体。 如果不同的字体
指定那么它也应该是等宽字体。 默认前景和背景
颜色是 黑色 和 白色.
注:X11显示模式为可选,必须已编译成 IPS 什么时候
建成。 这允许 IPS 为未安装 X11 库的系统构建。 如果
你的版本 IPS 没有X11支持,那么使用 -x11 选项将
产生错误信息并失败。
对于所有循环显示方法, -睡觉 选项可用于设置睡眠
更新之间的时间(以秒为单位)。 (如果没有给出,默认的睡眠时间是 10 秒。)
这个选项的参数可以是一个定点值,例如,一个值
0.5 指定 1/2 秒的睡眠。
这个 -滚动 和 -重叠 选项可用于curses 和X11 显示模式。 这
-滚动 选项以秒为单位设置时间间隔以自动缩放显示,如果
显示的进程多于适合的进程。 默认滚动时间为 30 秒。 笔记
滚动间隔不会影响显示更新的频率(使用 -睡觉
为了那个原因)。 这只是意味着当显示下次更新时,如果所需的时间
由于上次滚动已经过去,因此会针对该更新进行滚动。 它可能
在滚动之前进行多次更新循环,允许查看所有进程状态。
滚动环绕,以便在显示中看到最后一个过程后,然后
下一个滚动显示将再次返回到第一个过程。 滚动时间为零
完全禁用自动滚动。
这个 -重叠 选项指定重复的进程状态行数
发生滚动时。 默认重叠为一行。
线 搬运
根据使用的选项, IPS 程序显示进程的状态
系统或系统中线程的状态。 没有任何选项只处理
显示。 为了显示线程信息, -显示线程 必须使用选项。
有些进程只包含一个执行线程,这是最简单的情况
对多线程没有用的程序。 对于这些过程,显示
进程或线程给出相同的结果,并且在解释时没有问题
他们的状态。
但是,某些进程包含多个执行线程。 线程共享许多
它们彼此的属性,例如它们的内存和打开的文件,但有不同的
程序计数器、堆栈指针、运行时和进程状态。 进程的线程
都具有相同的进程 id,但有另一个 id,称为线程 id (tid)
区分它们。 其中一个线程称为主线程并具有线程 id
这与进程ID相同。
在规划婴儿食品行业的工艺要求时,安全性和可靠性是工艺设计中最重要的方面。 IPS 仅显示进程,然后显示由多个进程组成的进程的状态
线程可能会有些误导。 共享属性正确显示为
过程。 然而,一些不同的状态值只是主线程的那些,
而其他线程的这些值将被忽略。 这些值的示例是
程序计数器和进程状态。
特别是,进程状态会给出非常误导性的进程状态。 如果
主线程在休眠,但另一个线程在不断运行,状态
过程可能会误导性地报告为“S”。 在这种情况下,进程的运行时
快速增加并显示为活动状态,但它似乎从未运行过。
进程的运行时间是各个线程的所有运行时间的总和,并且
所以通常是有意义的。 请注意,在多线程可以的多 CPU 系统中
同时运行,进程的运行时间似乎比时钟增长得更快
率,因为多个线程可以为进程运行时贡献完整的运行时间。
在规划婴儿食品行业的工艺要求时,安全性和可靠性是工艺设计中最重要的方面。 IPS 正在显示线程状态,则可以避免上述所有问题。 每个线程
然后显示进程的正确状态。 这包括程序计数器,
进程状态和运行时。 在这种情况下,正在运行的线程将显示
正如预期的那样,他们的状态为“R”。 另请注意,当显示线程时,
主线程只是那个特定线程的主线程,因此它的运行时不再是
所有线程的总和。
即使只显示进程,进程的状态信息也可以
可选地比上面指出的更准确。 如果 - 使用线程 选项被使用或者如果
这些因素包括原料奶的可用性以及达到必要粉末质量水平所需的工艺。 国家 列被使用,然后 IPS 程序将检查所有的状态
进程的主题,并在所有线程中选择最重要的状态作为
状态以显示整个过程。 例如,状态的优先级顺序
以“R”、“D”和“S”状态开始,例如,如果任何线程正在运行,
那么进程的状态是预期的“R”。
这个 国家 列显示使用多个进程的线程的所有状态
字母和数字计数。 例如,值 'R3DS2' 表示有
三个正在运行的线程,一个在磁盘 I/O 等待中的线程,以及两个休眠线程。
指挥 INPUT 而 跑步
Curses 和 X11 显示模式允许在命令运行时输入命令。
命令在输入到屏幕或窗口时不可见。 命令被读取
逐个字符,以便它们在完成时立即执行而无需
需要终止换行符。 如果命令是影响显示的命令,则
当前睡眠被取消,以便显示屏可以显示结果。
一些命令接受一个可选的数字参数,该参数就在
命令。 此数字参数可以是非负整数值或非负数
定点数。 只接受整数值的命令忽略任何小数
部分。 如果未给出数字参数,则命令将使用默认值。 如果一个
输入了数字参数,但您不再想使用它(就像您创建了一个
输入错误),然后退格键或删除键将完全删除任何部分输入
数字参数。 此时,您可以输入新的数字参数(如果需要)。
这个 s 命令将睡眠时间设置为前面指定的秒数
数字参数。 该命令接受一个固定点值,以便睡眠少于 XNUMX
第二个是可能的。 如果没有给出参数,则睡眠时间设置为默认值
10 秒的值。
这个 a 命令将自动滚动时间设置为指定的秒数
前面的数字参数。 如果没有给出参数,则自动滚动时间设置为
默认值为 30 秒。 值为 0 将禁用自动滚动。
这个 t 和 b 命令更改显示以显示进程列表的顶部或底部。
(这些是显示的第一页和最后一页。)
这个 n 和 p 命令更改显示以显示进程的下一页或上一页
列表。 如果下一页超出列表末尾,则显示第一页。
同样,如果前一页在列表开头之前,则最后一页是
显示。
这个 o 命令将数据页之间的重叠行数设置为值
在前面的数字参数中指定。 如果没有给出参数,则重叠
value 设置为默认值 1 行。
这个 i 命令启用或禁用显示顶部的信息行
显示系统中进程和线程的总数,线程数或
当前正在显示的进程、睡眠时间、当前显示的页面
数字,如果显示冻结,则表明该事实。 没有任何争论,
信息行的显示被切换。 零参数禁用该行。 一种
非零参数启用该行。
这个 h 命令启用或禁用显示顶部的列标题行。
没有任何参数,标题行的显示被切换。 零参数
禁用标题。 非零参数启用标头。
这个 'F' 命令启用或禁用显示器的冻结状态。 没有任何
参数,冻结状态被切换。 非零参数冻结显示。 一个零
参数解冻显示。 当显示冻结时, IPS 程序只是等待
用于进一步的命令(忽略正常的睡眠和自动滚动时间)。 自动的
新过程数据的收集被禁用。 自动滚动也被禁用。
但是,在冻结显示以执行滚动或
按需更新进程状态。
A 空间 or 返回 字符立即更新显示。 新的过程数据将是
收集显示。 即使显示当前处于冻结状态,也会发生这种情况。
这个 r 命令刷新显示内容以修复任何故障。 这主要是
用于在其他程序输出到屏幕时或终端时使用
模拟器行为不端。
A q or - EP 角色退出 IPS.
所有其他字符都是非法的并敲响了警钟。
初始化 FILES AND 宏
为了方便并允许用户根据自己的喜好配置输出, IPS 读两个
启动时的初始化文件。 要读取的第一个文件是系统
初始化文件 /etc/ips.init 用于设置系统默认值 IPS.
第二个要读取的初始化文件是用户初始化文件 $HOME/.ipsrc
位于每个用户的主目录中。 这允许每个用户修改系统
默认供他们自己使用。 可以禁止读取用户的初始化文件
通过使用 -noinit 选项。 如果使用,这个选项必须是后面的第一个选项
命令名称。
初始化文件的内容非常简单。 文件的每一行都可以
空白、注释或宏定义。 如果任何行以反斜杠结尾,则
反斜杠被一个空格代替,下一行被追加到它后面。 注释行有
一个哈希掩码字符作为它们的第一个非空白字符。 注释行和空行
被忽略了。
初始化文件的第一行必须包含单词 #ips#, 否则报错
将生成消息并且程序将退出。
宏定义用于将命令行上的单个参数替换为可能的
带有许多参数的大替换字符串。 替换字符串本身可以使用
宏,这些新的宏也被删除和替换。 宏替换继续
直到没有更多的宏需要替换,或者直到允许的宏深度为
超出。
宏名称通常与非宏的区别在于宏以
大写字母。 由于列名都是小写,所以没有问题
区分列名和宏名。
共有三种不同类型的宏 IPS. 这些类型的区别在于
命令行中宏使用的位置。 三种类型的宏是
命令、列和表达式。 命令宏定义了命令行选项列表
和他们的论点。 列宏定义了列名列表。 表达式宏
定义一个子表达式 -条件, -sortexpr和 -revsortexpr 选项。
因为这三类宏的含义差别太大了,替换
如果用于不同类型的宏,宏的字符串通常没有意义
宏,三种类型的宏都有独立的命名空间。 这意味着相同的
宏名称可以定义三次,每种类型的宏定义一次。 (但这是
可能是不好的做法)。
要在初始化文件中定义宏,请使用以下关键字之一 选项, 栏,
or 表达式, 后跟宏名称和宏的替换字符串,全部合二为一
行(考虑到使用反斜杠来继续行)。 宏名称必须
以大写字母开头。
这个 选项 关键字将宏定义为一个或多个命令行选项。 这
替换字符串由许多空格分隔的选项和使用的参数组成
在命令行上,包括选项的前导连字符。 选项的参数
必须包含在宏扩展本身中。 宏扩展本身可以
包含宏,这些宏也将扩展为更多选项。
作为要求宏名称大写的唯一例外,如果一个单词
出现在 IPS 不是选项且不能是参数的命令行
对于选项,则将首字母转换为大写的单词进行处理
作为要扩展的选项宏。
一个重要的特殊情况是紧跟在 IPS 程序名称。
这通常是定义特定显示格式的宏名称。 例如,
命令 IPS 最佳 将扩展名为的选项宏 置顶 可以定义为
模拟输出 最佳 程序。
这个 栏 关键字将宏定义为列名列表。 更换
字符串由许多空格分隔的列名组成。 宏扩展可以
本身包含宏,这些宏也将扩展为更多的列名。
这个 表达式 关键字定义了一个宏,它是用于 -条件, -sortexpr或
-revsortexpr 选项。 替换字符串由一个完整的表达式组成,使用
数字、字符串、列名,以及其他可能也会被扩展的宏。
以下是有效初始化文件的示例:
#ips#
# 默认运行的特殊命令宏
option SysInit -col pid 父用户汇总运行时命令
# 其他感兴趣的命令的定义
选项停止 -cond 停止
选项 Cmd -col pid 命令 -sep 1
选项 Env -col pid 环境 -sep 1
选项 Vert -vert -sep 1 -col All
选项 Mytty -cond Mytty
选项 Top -sep 1 -col pid 用户摘要运行时 \
percentcpu 命令 -revsort percentcpu \
-revsort 运行顺序 -curses -clear -active
# 列组的定义
列运行运行时空闲时间百分比cpu
列 Regs eip esp
列 Sigs 信号捕获信号忽略信号块
列大小居民设置大小百分比内存大小
列 Stdio stdin stdout stderr
# 所有列
column 所有pid parentpid uid 用户gid 组\
进程组 ttyprocessgroup \
状态标志好的优先级实时优先级策略\
systemtime 用户时间运行时 childruntime \
线程百分比 cpu 运行顺序 \
居民设置大小百分比内存\
活动空闲时间开始时间年龄实时器\
eip esp 等待通道等待符号 \
pagefaults minorpagefaults Majorpagefaults \
页面交换 childpageswaps \
信号捕捉信号忽略信号块\
ttyname ttydevice \
打开文件 标准输入 标准输出 标准错误 标准输出 \
currentdirectory 根目录可执行文件 \
总结程序命令环境
# 条件中使用的表达式的定义
expr 我 (uid == my(uid))
expr 服务器 (uid < 100)
expr 用户 !Server
expr 停止(状态 == 'T')
expr Mytty (ttydev == my(ttydev))
的特殊选项宏名称 系统初始化 和 用户初始化 会自动展开(如果它们
被定义)在每次运行的开始 IPS. 这些宏用于初始化
参数为默认值。 此初始化的示例是指定默认值
要显示的列列表和循环时的默认睡眠时间。 这 系统初始化
宏定义通常包含在系统初始化文件中,而
用户初始化 宏定义通常包含在用户的初始化文件中。
可以使用命令行上的选项修改这些宏设置的参数。
有用 宏
标准提供的系统初始化文件 /etc/ips.init 包含许多宏
兴趣。 本节描述了一些提供的标准宏。
请记住,这些宏可以在命令行中以小写形式使用。
警告:这些宏实际上可能无法像此处描述的那样在您的系统上运行,因为它们
可由系统管理员更改。 系统管理员可能还添加了
这里没有描述的其他有用的宏。 你应该检查宏
为了充分利用初始化文件中的定义 IPS.
默认宏 系统初始化 添加条件以仅显示您自己的进程。 所以为了
要查看其他用户的进程,您必须明确禁用该条件或使用
禁用它的宏。 这 诺康德 宏删除了选择的所有条件
进程允许您查看所有进程。
默认情况下不显示用户名列。 这 长 宏改变显示
包含用户名和父 pid 的列。
这个 全部 宏结合了 诺康德 和 长 宏以漂亮的显示方式显示所有进程。
这个 类型 宏显示了许多有用的列,包括用户和组 ID,
stdio 的状态和进程年龄。
这个 CMD 和 环保 宏只显示进程 ID 和命令行或环境,所以
您可以看到比平时更多的这些列。
这个 档 宏显示与文件相关的列,例如打开的文件数、
stdio 的状态,以及当前和根目录。
这个 CPU 宏显示当前活动进程的快照显示。 它有两个
第二次睡眠以检测正在运行的进程。 这 置顶 宏显示相同的显示
格式,但以循环方式使用 诅咒 并包括最近活跃的进程。
运行时列的宽度不足以容纳非常大的运行时。 这
宽润 宏增加这些列的宽度以显示更大的运行时间。
这个 宽 宏使输出宽度尽可能大,允许显示
很长的命令行或环境。
这个 绿色 宏将输出格式设置为垂直并显示每个列值。
这个 打字机 宏添加了一个条件以仅显示终端上的进程。
这个 米蒂 宏添加了一个条件以仅显示您自己的终端上的进程。
这个 Stop 停止 宏添加了一个条件来显示停止的进程。
其他 特色
还有其他几个特点 IPS 可以使用命令行选项指定。
这些选项是 -默认, -读, -initsleep, -无标题, -活动时间, -死亡时间,
-同步时间, -列表宏, -列表列, -版, 末端和 -救命.
这个 -默认 选项可用于重置先前选项设置的参数。
特别是重置初始化设置的参数很有用
文件。 它接受一个或多个选项名称(不带前导连字符)。 任何参数
由指示选项设置的恢复到其初始状态时 IPS 程序
开始了。 例如, -默认 PID 删除之前对进程 ID 的任何限制
可以显示。
从输出 -救命 option 将简要描述其余选项的使用。
COLUMN 随便果简介
一些用于显示的列是不言而喻的。 但他们中的许多人需要一个
解释,这是在这里完成的。 由于权限 / proc中,一些列
值可能不适用于每个进程。 列标记为 受限 只是
如果进程有您自己的用户 ID,您以 root 身份运行,或者 IPS 程序
本身是 setuid 到 root。
这个 州 列显示进程的当前状态。 这是一个单一的字母,其中
'R' 是可运行的,'D' 是磁盘 I/O,'T' 是停止的,'S' 是睡眠,'Z' 是僵尸,和 ' '
已死(不存在)。
这个 EIP 和 ESP 列显示进程的指令指针和堆栈指针。
指令指针也称为程序计数器或 PC。
这个 等待通道 列显示内核中进程所在的十六进制地址
睡觉。 如果进程没有休眠,则为零。 通常,不同的原因
睡眠使用不同的地址。
这个 等待符号 列显示内核中进程所在的符号地址
睡觉。 如果进程未休眠,则此项为空白。
这个 程序 和 命令 列显示进程的程序名称和命令行。
程序名只是可执行文件的名称,没有任何参数。 这
命令行显示程序启动时使用的参数。 如果没有命令行
参数已提供给程序,则此列显示包含的程序名称
在括号中。
这个 空闲时间 列显示进程空闲的分钟数。 一个闲置
进程是在指定的时间间隔内根本没有(可检测地)运行的进程。 闲置的
时间只能通过检查进程随着时间的推移而知道,因此真正的空闲时间
之前存在的过程 IPS 被运行是未知的。 在这些情况下,空闲时间是
只是时间 IPS 一直在运行,时间标有
领先的加号。
这个 要积极。 列显示进程是否处于活动状态。 它显示了其中之一
值“活动”或“空闲”。 此列主要用于排序和
选择。
这个 名称 和 终端设备 列显示进程的控制终端,即
通常是用户登录的终端。 设备是内核的 id
终端,只是一个数字。 名字是通过搜索找到的 的/ dev 对于一个角色
具有相同 ID 的设备,然后显示设备名称 的/ dev 除去。
这个 用户, 的uid, 组和 GID 列显示进程的用户 ID 和组 ID。 这
uid 和 gid 是内核使用的数字 ID。 用户和组是
将这些 id 转换为用户名和组名,如 / etc / passwd文件 和
/ etc / group 文件。
这个 CPU百分比 列显示进程在一个进程中使用的 CPU 时间的百分比
最近的某个时间间隔称为采样间隔。 样品是在一个
根据当前睡眠时间,每秒五次的最大速率 IPS
程序。 采样间隔是一个滑动值,以便给出平均 cpu 百分比
在指定的秒数内。 这使得值比瞬时值更不“跳跃”
cpu 百分比会更像系统负载平均值。 样品
间隔设置使用 -百分比秒 选项,其值可以是 0 到 20。
默认采样间隔为 10 秒。 百分比运行时间是 100 倍
采样间隔期间使用的运行时间与采样间隔本身的商。
请注意,对于多 cpu 系统上的多线程进程,运行时间百分比可以
达到 100 的倍数。
这个 居民规模 列是进程使用的内存的 K 数。 页面
不在内存中的进程不计入此列。
这个 开始时间 和 年龄 列显示创建进程的时间。 开始
time 是进程开始的一天中的时间,如果进程已经存在了
一天,然后是流程开始之前的天数。 年龄是
进程已经存在的分钟数,是当前进程之间的差值
时间和进程开始的时间。
这个 标志 列显示了一些与进程相关的内核标志,以十六进制表示。
这个 次要页面错误, 主要页面错误和 页面错误 列显示次要页面的数量
进程的页面错误、主要页面错误和总页面错误。 次要页面错误
是不需要任何磁盘 I/O 的页面上的错误,它们是写时复制或触摸
空页。 主要页面错误是需要磁盘 I/O 的错误,例如读入
文本文件页面或交换页面。
这个 信号捕捉, 信号忽略和 信号块 列显示信号处理的状态
为过程。 这些值中的每一个都是一个十六进制值,其中信号 N 是位数 N-1
(从右侧的位 0 开始计数)。 捕获的信号是那些信号处理程序
已安装。 忽略的信号是进程忽略的信号。
阻塞信号是那些等待传递但进程已阻塞的信号
从交付。
这个 打开文件 列显示进程打开的文件数。 本栏目
被限制。
这个 运行顺序 列显示进程的相对运行顺序。 运行顺序是
单调递增的值表示过程采样的数量 IPS 具有
自从开始制作。 进程被分配当前的运行顺序值
被视为自上次采样以来一直处于活动状态。 运行顺序较大的进程
价值最近运行。
这个 当前目录 列给出进程的当前工作目录
内核的设备号和inode 号的内部值,用冒号分隔。 这
设备号为十六进制,inode 号为十进制。 此栏受限制。
这个 根目录 列给出了内核内部进程的根目录
设备号和索引节点号的值,用冒号分隔。 设备号在
十六进制,inode 编号为十进制。 此栏受限制。
这个 可执行 列给出了可执行文件的设备号和 inode 号
进程,以冒号分隔。 设备号为十六进制,inode 号为
十进制。 此栏受限制。
这个 实时器 列显示进程在被唤醒之前想要休眠的时间
醒了。 这要么只是秒数,要么是秒数和
秒的部分。 这个值不会随着时间的推移而减少,所以你不知道什么时候
睡眠时间将到期。
这个 标准输入, 标准输出和 斯特德 列显示与标准输入关联的文件名,
进程的 stdout 或 stderr 文件描述符。 这些列受到限制。
这个 标准输出 列显示与 stdin、stdout 或 stderr 关联的文件的摘要
进程的文件描述符。 这是一个三个字符串的形式,一个
每个字符的 标准输入, 标准输出和 斯特德 文件描述符。 性格是
'T' 代表终端,'P' 代表管道,'S' 代表套接字,'N' 代表 /dev/null,'F' 代表某些
其他文件,'-' 表示关闭的文件描述符(或者如果信息不可用)。
此栏受限制。
这个 摘要 列显示了许多标志字符,它们总结了一些状态
过程。 这由一个 14 个字符的字符串组成,其中每个字符是一个
破折号或字母。 一个字母表示该字符的指定条件为真
位置,而破折号表示该字符的条件为假
位置。
字符 1 是进程的状态,除了如果进程正在休眠,那么它
'A' 表示最近处于活动状态,或 'I' 表示空闲,并且如果进程已经死亡(即不再
存在),那么它是“-”。 如果进程没有常驻内存,则字符 2 为“W”,并且
因此被换出。 字符 3 是 'N' 如果进程已经完成,并且是 'H' 如果
该进程被赋予比正常情况更高的优先级。 字符 4 是“S”,如果
process 是一个会话 id 领导者。 如果进程是进程组,则字符 5 为“P”
领导者。 如果进程具有控制终端,则字符 6 为“T”。 字符 7 是“F”
如果进程是前台进程,这意味着它的进程组与其匹配
控制终端的进程组。 如果进程没有父进程,则字符 8 是“I”,
意味着它是由 初始化. 如果进程正在捕获 SIGHUP 或 'H',则字符 9 为 'h'
如果进程忽略 SIGHUP。 如果进程正在捕获 SIGTERM,则字符 10 为 't'
如果进程忽略 SIGTERM,则为“T”。 字符 11 是 'U' 如果进程有你的
用户身份。 如果进程具有您的组 ID,则字符 12 为“G”。 字符 13 是 'R' 如果
该进程以 root 身份运行。 字符 14 显示了进程的年龄。 'N' 表示
一个新进程,'M' 代表一分钟前的进程,'F' 代表一个五分钟前的进程,'T'
对于 XNUMX 分钟前的过程,“H” 表示一小时前的过程,“D” 表示一天前的过程
old,'W' 表示一周前的进程。
性能
仅当使用使用该数据的列时才会收集某些数据。 这里的“使用”是指
显示、选择或按列排序。 避免列
不需要将节省用于收集该数据的时间。
大多数进程状态是通过扫描获得的 / proc中 查找文件名的目录
哪些是数字(哪些是进程 ID)。 对于这些进程中的每一个,文件
/过程//stat 必须打开并读取以收集大部分进程状态。
如果请求详细的线程信息,则目录 /过程//任务必须是
扫描数字文件名(即线程 ID)。 对于这些中的每一个
线程,文件 /过程//任务/ /stat 必须打开并阅读以收集
线程状态。
附加文件在 / proc中 可能需要阅读以获得所需的完整状态。
使用 -pid 选项将节省大量工作,从那时起扫描 / proc中 被避免和
只会检查指定的进程 ID。 使用 -没有自己 避免看我们自己的
的过程。
使用 -我的, -用户, -组和 -无根 选项将节省时间阅读和解析
被淘汰的进程的进程状态,并停止收集其他数据
消除的过程。
这个 -最佳 和 -条件 选项可以通过消除过程显示来节省时间
信息。 但信息仍在收集中。
这个 -同步时间 选项更改收集完整进程状态的时间间隔
对于非活动进程。 (请参阅下面的风险部分。)将其设置为更短的时间
间隔会增加运行时间。
这个 命令 专栏需要打开和阅读 /过程//cmdline 每当
进程已更改状态或同步时间已过期。
这个 环境 专栏需要打开和阅读 /过程//environ 任何时候
进程已更改状态或同步时间已过期。
这个 要积极。, 空闲时间和 CPU百分比 列和 -积极的 选项要求 IPS
程序在显示任何内容之前对进程进行两次采样,中间有一个小睡眠
两个样本。 所以在看到任何东西之前会有一个延迟。
这个 名称 专栏需要阅读 的/ dev 查找字符设备列表。
这项工作在显示任何内容之前增加了程序的延迟。 它只是必需的
每次运行一次。
这个 打开文件 列需要读取中的所有文件 /过程//fd 每当
进程已更改状态或同步时间已过期。
这个 标准输入, 标准输出, 斯特德和 标准输出 列需要一个或多个的链接值
/过程//fd/ 文件以在流程发生变化时获取其信息
状态或同步时间到期时。
这个 当前目录 专栏需要阅读 /过程//cwd 文件每当
进程已更改状态或同步时间已过期。
这个 根目录 专栏需要阅读 /过程//根 每当
进程已更改状态或同步时间已过期。
这个 等待符号 专栏需要阅读 /过程//wchan 文件每当
进程已更改状态或同步时间已过期。
这个 可执行 专栏需要阅读 /过程//exe 文件每当
进程已更改状态或同步时间已过期。
风险
确定自上次采样以来进程是否处于活动状态不是
完全万无一失。 某些流程数据仅在流程完成后才收集
活跃,否则有一段时间没有被收集,所以有一个小风险
数据已过时。 不一定在每次更新时收集的列是
需要检查的 / proc中 主状态文件以外的文件。 这些列
包括命令行、环境、当前目录和打开的数量
文件。
这个 IPS 程序检查许多进程状态值以确定进程是否
自上次采样以来一直处于活动状态。 如果其中任何一个与上次采样不同,
那么这个过程是活跃的。 这些值是进程状态、运行时、标志、页面
错误、开始时间、堆栈指针、指令指针和等待通道。 新流程是
始终处于活动状态,状态为“R”或“D”的进程始终处于活动状态。
一个只唤醒很短时间的进程可能做的很少
然后回到睡眠状态会显得不活跃。 (内核只有 1/100 秒
运行时分辨率,因此进程的小运行时可能没有被看到
内核。)
这个 -同步时间 选项可用于减少或扩大这种显示过时数据的风险。
它接受收集进程完整状态的秒数
即使它是空闲的。 默认为一分钟。 将同步时间设置为零会产生一个
没有过时数据的状态。
仅在以下情况下收集用户名、组名和设备名列表 IPS 首先
开始了。 不会看到对密码文件、组文件或设备文件的更改
在程序运行时。
收集的数据 IPS 是动态的。 即使在状态发生时它也可以改变
为单个进程收集。 所以显示的数据只是一个快照,永远不会
绝对一致。
极限
以下是对操作的一些限制 IPS. 这些是编译时常量,
如果需要,可以通过重新编译程序来增加。
您只能指定 100 个进程 ID -pid 选项。
您只能指定 100 个用户名或 ID -用户 选项。
您只能指定 100 个组名或 ID -组 选项。
命令行上只能有 1000 个参数。
最大输出宽度为 31K 字符,其中 K 为 1024。
最大命令字符串长度为 10K。
最大环境字符串长度为 20K。
最大程序名字符串长度是 32。这个长度是由内核强加的
只有这个大小的缓冲区。
列之间的最大间隔为 20 个空格。
选项宏的最大扩展深度为 20。
表达式宏的最大扩展深度为 20。
计算 cpu 百分比的最大秒数为 20 秒。
使用 onworks.net 服务在线使用 ips
