常用Linux系统Debug命令
Linux调试工具

Linux调试⼯具1. 使⽤printf调试#ifdef DEBUGPrintf(“valriable x has value = %d\n”, x)#endif然后在编译选项中加⼊-DDEBUG更复杂的调试应⽤如:#define BASIC_DEBUG 1#define EXTRA_DEBUG 2#define SUPER_DEBUG 4#if (DEBUG &EXTRA_DEBUG)printf …#endif在这种情况下如果设置编译器标志为-DDEBUG=5,将启⽤BASIC_DEBUG和SUPER_DEBUG。
标志-DDEBUG=0将禁⽤所有的调试信息,也可以在程序中添加如下语句:#ifndef DEBUG#define DEBUG 0#endif2.使⽤gdb调试Gcc编译的时候要加上-g选项,让编译器在程序中添加额外的调试信息。
如果正式发布,这些调试信息可以使⽤strip命令删除。
Gdb:Backtrace栈跟踪3. 程序静态分析⼯具splintsplint功能:常识性测试并产⽣⼀些警告信息。
它可以检测未经赋值的变量使⽤,函数的参数未使⽤等异常情况。
4. 程序执⾏性能分析⼯具prof/gprof显⽰执⾏所花费的时间具体都⽤在什么操作上。
5. 内存调试ElectricFence函数库和valgrind可以⽤来检查动态内存分配的⼀些问题,包括内存泄漏。
Linux下的调试⼯具随着XP的流⾏,⼈们越来越注重软件的前期设计、后期的实现,以及贯穿于其中的测试⼯作,经过这个过程出来的⾃然是⾼质量的软件。
甚⾄有⼈声称XP会淘汰调试器!这当然是有⼀定道理的,然⽽就⽬前的现实来看,这还是⼀种理想。
在⽇常⼯作中,调试⼯具还是必不可少的。
在Linux下,调试⼯具并⾮只有gdb,还有很多其它调试⼯具,它们都各有所长,侧重⽅⾯也有所不同。
本⽂介绍⼏种笔者常⽤的调试⼯具:1. mtrace在linux下开发应⽤程序,⽤C/C++语⾔的居多。
debug命令大全

Debug启动 Debug,它是可用于测试和调试 MS-DOS 可执行文件的程序。
Debug [[drive:][path] filename [parameters]]参数[drive:][path] filename指定要测试的可执行文件的位置和名称。
parameters指定要测试的可执行文件所需要的任何命令行信息。
++说明使用 Debug 命令但不指定要测试的文件如果使用没有位置和文件名的 Debug 命令,然后键入所有的 Debug 命令以响应 Debug 提示符,连字符 (-)。
Debug 命令以下是 Debug 命令列表:? 显示 Debug 命令列表。
a 汇编 8086/8087/8088 记忆码。
c 比较内存的两个部分。
d 显示部分内存的内容。
e 从指定地址开始,将数据输入到内存。
f 使用指定值填充一段内存。
g 运行在内存中的可执行文件。
h 执行十六进制运算。
i 显示来自特定端口的 1 字节值。
l 将文件或磁盘扇区内容加载到内存。
m 复制内存块中的内容/n 为 l 或 w 命令指定文件,或者指定正在测试的文件的参数。
o 向输出端口发送 1 个字节的值。
p 执行循环、重复的字符串指令、软件中断或子例程。
q 停止 Debug 会话。
r 显示或改变一个或多个寄存器。
s 在部分内存中搜索一个或多个字节值的模式。
t 执行一条指令,然后显示所有寄存器的内容、所有标志的状态和 Debug 下一步要执行的指令的解码形式。
u 反汇编字节并显示相应的原语句。
w 将被测试文件写入磁盘。
xa 分配扩展内存。
xd 释放扩展内存。
xm 映射扩展内存页。
xs 显示扩展内存的状态。
分隔命令参数所有 Debug 命令都接受参数,除了 q 命令之外。
可以用逗号或空格分隔参数,但是只有在两个十六进制值之间才需要这些分隔符。
因此,以下命令等价:dcs:100 110d cs:100 110d,cs:100,110指定有效地址项Debug 命令中的 address 参数指定内存位置。
Linuxdmidecode命令

Linuxdmidecode命令当我们需要获取机器硬件信息时,可使⽤linux系统⾃带的dmidecode⼯具进⾏查询。
dmidecode ⽤于获取服务器的硬件信息,通常是在不打开计算机机箱的情况下使⽤该命令来查找硬件详细信息这个命令可以查看内存的⼏乎所有信息,包括频率⼤⼩等等,另外这个命令强⼤到⼏乎可以查任何硬件信息包括设备型号、bios 、cpu、主板、处理器、内存、缓存详细信息等等都例举出来,对于⼤部分普通服务器⽤户来说,我们选择VPS、服务器产品的时候⽐较关⼼的是产品的费⽤、服务器的速度以及稳定性,更有就是服务商家的服务(尤其不能跑路)。
随着我们使⽤服务器时间的推移,以及会看到各个不同的商家产品的时候,就会需要有所对⽐,严谨的⽤户会更为的关注产品的硬件配置信息。
因为在主机⾏业中,配置的差距关乎到产品的成本和费⽤,⾄少我们要弄明⽩不能被⼈忽悠。
[root@localhost ~]$ yum install -y dmidecode常见⽤法如下:[root@localhost ~]$ dmidecode # 打印所有硬件信息[root@localhost ~]$ dmidecode -q # 打印所有硬件信息,⽐较简洁[root@localhost ~]$ dmidecode | grep'Product Name' # 以过滤的⽅式来查看指定的硬件信息[root@localhost ~]$ dmidecode -t bios # 查看BIOS相关的硬件信息[root@localhost ~]$ dmidecode -t system # 查看系统相关的硬件信息[root@localhost ~]$ dmidecode -t baseboard # 查看主板相关的硬件信息[root@localhost ~]$ dmidecode -t chassis # 查看机箱相关的硬件信息[root@localhost ~]$ dmidecode -t processor # 查看处理器相关的硬件信息[root@localhost ~]$ dmidecode -t memory # 查看内存相关的硬件信息查看系统相关的硬件信息dmidecode -t systemdmidecode -t system# dmidecode 2.12SMBIOS 2.5 present.Handle 0x0001, DMI type 1, 27 bytesSystem InformationManufacturer: System manufacturerProduct Name: System Product NameVersion: System VersionSerial Number: System Serial NumberUUID: 00797DF5-8DFE-D511-A89C-3085A9A895F8Wake-up Type: Power SwitchSKU Number: To Be Filled By O.E.M.Family: To Be Filled By O.E.M.Handle 0x0035, DMI type 15, 55 bytesSystem Event LogArea Length: 1008 bytesHeader Start Offset: 0x0810Data Start Offset: 0x0810Access Method: Memory-mapped physical 32-bit addressAccess Address: 0xFFFBC000Status: Valid, Not FullChange Token: 0x00000000Header Format: No HeaderSupported Log Type Descriptors: 11Descriptor 1: OEM-specificData Format 1: Multiple-event handleDescriptor 2: OEM-specificData Format 2: Multiple-event handleDescriptor 3: Single-bit ECC memory errorData Format 3: POST results bitmapDescriptor 4: Multi-bit ECC memory errorData Format 4: POST results bitmapDescriptor 5: Parity memory errorData Format 5: Multiple-eventDescriptor 6: I/O channel blockData Format 6: Multiple-eventDescriptor 7: POST errorData Format 7: POST results bitmapDescriptor 8: PCI parity errorData Format 8: Multiple-event handleDescriptor 9: PCI system errorData Format 9: Multiple-event handleDescriptor 10: System limit exceededData Format 10: Multiple-event system managementDescriptor 11: OEM-specificData Format 11: POST results bitmapHandle 0x0050, DMI type 32, 20 bytesSystem Boot InformationStatus: No errors detected查看服务器型号:dmidecode | grep 'Product Name' dmidecode |grep'Product Name'Product Name: System Product NameProduct Name: Z8NR-D12dmidecode | grep -i productProduct Name: System Product NameProduct Name: Z8NR-D12查看主板的序列号:dmidecode |grep 'Serial Number' dmidecode |grep'Serial Number'Serial Number: System Serial NumberSerial Number: 120902356500037Serial Number: Chassis Serial NumberSerial Number: To Be Filled By O.E.M.Serial Number: To Be Filled By O.E.M.Serial Number: D8CC0900Serial Number: SerNum01Serial Number: SerNum02Serial Number: SerNum03Serial Number: SerNum04Serial Number: SerNum05Serial Number: D8CC0900Serial Number: SerNum07Serial Number: SerNum08Serial Number: SerNum09Serial Number: SerNum10Serial Number: SerNum11查看系统序列号:dmidecode -s system-serial-number dmidecode -s system-serial-numberSystem Serial Number查看OEM信息:dmidecode -t 11dmidecode -t 11# dmidecode 2.12SMBIOS 2.5 present.Handle 0x0033, DMI type 11, 5 bytesOEM StringsString 1: To Be Filled By O.E.M.String 2: To Be Filled By O.E.M.String 3: To Be Filled By O.E.M.String 4: To Be Filled By O.E.M.查询内存条数:[root@mysql ~]# dmidecode -t 17 | grep"Size.*MB" | wc -l2第⼀、dmidecode查看主板信息dmidecode -t 2 = dmidecode -t baseboard[root@mysql ~]#dmidecode -t 2# dmidecode 2.12SMBIOS 2.5 present.Handle 0x0002, DMI type 2, 15 bytesBase Board InformationManufacturer: ASUSTeK Computer INC.Product Name: Z8NR-D12Version: Rev 1.xxGSerial Number: 120902356500037Asset Tag: To Be Filled By O.E.M.Features:Board is a hosting boardBoard is replaceableLocation In Chassis: To Be Filled By O.E.M.Chassis Handle: 0x0003Type: MotherboardContained Object Handles: 0第⼆、使⽤dmidecode查询内存(RAM)信息dmidecode -t 16⾸先,可以通过以下命令查询机器最⼤⽀持的内存总量[root@mysql ~]#dmidecode -t 16# dmidecode 2.12SMBIOS 2.5 present.Handle 0x0036, DMI type 16, 15 bytesPhysical Memory ArrayLocation: System Board Or MotherboardUse: System MemoryError Correction Type: Multi-bit ECCMaximum Capacity: 96 GBError Information Handle: Not ProvidedNumber Of Devices: 12这⾥可以查看到当前服务器允许扩容的最⼤内存⼤⼩,从以上输出可知,该机器理论上⽀持的最⼤内存为96G。
DEBUG的命令及功能

DEBUG的命令及功能1. A(assemble):将指令转换成机器码并存储到内存中。
-A100:在内存地址100处开始输入指令。
2. D(dump):显示内存中的内容。
-D100200:显示内存地址从100到200的内容。
3. E(enter):修改内存中的数据。
-E1004000:在内存地址100处将数据修改为40。
4. G(go):执行程序。
-G100:从内存地址100处开始执行程序。
6. Q(quit):退出DEBUG。
-Q:退出DEBUG程序。
7. R(registers):显示和修改CPU寄存器的值。
-R:显示所有寄存器及其值。
-RAX1234:将AX寄存器的值修改为12348. T(trace):单步跟踪程序的执行。
-T:执行下一条指令并停止。
9. P(proceed):继续执行程序直至下一个断点或程序结束。
-P:继续执行程序。
10. U(unassemble):将机器码转换成指令。
-U100120:从内存地址100处开始将机器码转换成指令。
11. B(breakpoint):设置断点。
-B100:在内存地址100处设置断点。
12. S (search):在内存中指定的内容。
- S 100 200 "Hello": 在内存地址100到200之间字符串"Hello"。
13. L(load):加载程序到内存中。
-L100:从内存地址100处加载程序。
14. W(write):将内存中的数据写入文件。
- W 100 200 file.txt: 将内存地址100到200的数据写入到文件file.txt。
15. M(move):将内存中的数据移动到指定的地址。
-M100200300:将内存地址100到200的数据移动到地址300处。
16. X (execute):执行子程序。
-X100:从内存地址100处执行子程序。
17. H(help):显示DEBUG命令的帮助信息。
DEBUG主要命令

DEBUG主要命令DEBUG是为汇编语言设计的一种调试工具,它通过单步、设置断点等方式为汇编语言程序员提供了非常有效的调试手段。
1.DEBUG程序的调用在DOS的提示符下,可键入命令:C:>DEBUG [d:][path][文件名][参数1][参数2]其中文件名是被调试文件的名字,它必须是可执行文件(EXE),两个参数是运行被调试文件所需要的命令参数,在DEBUG程序调入后,出现提示符“-”,此时,可键入所需的DEBUG命令。
2.DEBUG的主要命令⑴显示内存单元内容的命令D,格式为:-D [地址] 或-D [范围]例如,显示指定范围内存单元内容的方法为:-D 100 1FF18E4:0100 47 06 04 02 38 01 47 06 -06 02 00 02 47 06 08 02 G...8.G.....G...18E4:0110 02 02 3B 04 02 68 02 00 -4D 20 50 51 56 57 8B 37 ..;..h..M PQVW.7 其中左边为十六进制表示形式,右边为ASCII码表示形式,“.”表示不可显示字符。
这里没有指定段地址,D命令自动显示DS段的内容。
⑵修改内存单元内容的命令E,它有两种格式1)用给定内容代替指定范围的单元内容,格式为:-E 地址内容表例如:-E DS:100 F358595A8D,即用F3,58,59,5A,8D五个字节代替内存单元DS:100到DS:104的内容。
2)逐个单元相继地修改,格式为:-E 地址例如:-E DS:10018E4:0100 89.78此命令是将0100单元内容89改为78。
78是程序员从键盘输入的。
程序员在修改完一个单元后,可按“空格”键继续修改下一单元内容,直至按“回车”键结束该命令。
⑶检查和修改寄存器内容的命令R,它有三种方式1)显示CPU内部所有寄存器内容和标志寄存器中的各标志位状态-R该命令可显示AX,BX,CX,DX,SP,BP,SI,DI,DS,ES,SS,CS,IP及标志寄存器内容。
DEBUG命令的功能及使用

DEBUG命令的功能及使用功能:1.单步执行:DEBUG命令可以逐条执行程序的指令,并在每个指令被执行后停止程序的执行。
这使得开发人员能够逐步查看程序的执行过程,以便找到潜在的错误和问题。
2.查看和修改内存:DEBUG命令允许开发人员查看程序运行时的内存状态,并且提供了一些命令来读取和修改内存中的数据。
这对于调试内存泄漏、内存溢出和指针问题非常有用。
3.断点:DEBUG命令可以在程序的特定位置设置断点,一旦程序执行到这个位置,就会自动停止执行。
这使得开发人员可以在关键点查看程序的状态,以便分析问题。
4.寄存器查看和修改:DEBUG命令允许开发人员查看和修改程序运行时的寄存器值。
这对于理解程序如何处理数据以及跟踪特定变量的值非常有用。
5. 注册表和文件系统访问:DEBUG命令可以访问Windows注册表和文件系统,以检查和修改系统的配置和状态。
这对于调试与注册表和文件系统相关的问题非常有用。
使用:1.运行DEBUG命令:在命令行窗口中输入"DEBUG"命令,然后按下回车键即可运行DEBUG命令。
DEBUG命令会显示一个提示符,表示它已经准备好接受命令。
2.设置断点:使用"t"命令可以在程序中设置断点。
例如,要在程序的第10行设置一个断点,可以输入"t10"命令。
3.单步执行:使用"p"命令可以逐步执行程序的指令。
每次执行一条指令后,DEBUG命令会显示当前指令的汇编代码和程序计数器的值,并等待用户输入下一个命令。
4.查看内存:使用"d"命令可以查看指定内存地址的内容。
例如,输入"d1000"命令可以查看地址为1000的内存单元的内容。
5.修改内存:使用"e"命令可以修改指定内存地址的内容。
例如,输入"e100090"命令可以将地址为1000的内存单元的内容修改为90。
DEBUG各命令详细说明(很详细)

DEBUG各命令详细说明(很详细)2.启动DEBUG在命令窗口中启动DEBUG,启动命令一般为:DEBUG [文件名] [参数表]。
其中:文件名指定被调试的文件,其包括名和后缀,参数表是被调试文件运行时所需要的参数。
被调试的文件可以是系统中的任何文件,但通常它们的后缀为.EXE或.COM。
当DEBUG启动成功后,将显示连接符“-”,这时,可输入各种DEBUG命令。
DEBUG中所有命令及其含义如DEBUG各命令功能说明表所示。
关于使用命令的几点说明:在提示符“-”下才能输入命令,在按“回车”键后,该命令才开始执行命令是单个字母,命令和参数的大小写可混合输入可用F1、 F2、F3、Ins、Del、左移键、右移键等编辑键来编辑本行命令当命令出现语法错误时,将在出错位置显示“^ Error”可用Ctrl+C或Ctrl+Break来终止当前命令的执行,还可用Ctrl+S或Ctrl+Num Lock来暂停屏幕显示(当连续不断地显示信息时)以下通过实现十九个示例来熟悉DEBUG的命令集和基本的汇编指令。
R命令的使用R命令作用:观看和修改寄存器的值。
在提示符“-”下输入以下命令:R。
DEBUG将会显示出当前所有寄存器和标志位的状态。
接下来再输入命令RCX。
在提示符“:”后输入100。
该命令的作用是将寄存器CX的值设置为100(注意:DEBUG使用的是十六进制,这里的100相当于十进制的256。
)最后再执行R命令,观看修改后的寄存器值。
H命令的使用H命令作用:计算两个十六进制数的和与差。
在提示符“–”下输入以下命令:H 10 1。
观看命令执行结果。
运行结果的前一个数是计算出来的和,后一个数是计算出来的差。
计算结果均用十六进制形式表示。
D命令的使用D命令作用:显示内存区域的内容。
在提示符“–”下连续执行命令R、D、D。
观看命令执行结果。
前面已经介绍过了,命令R的作用是显示当前寄存器的值。
而命令D的作用是显示内存区域的内容,最左边是内存的起始地址,中间以十六进制的形式显示内存值,最右边是以ASCII码的形式显示内存值。
linux outputdebugstring用法

linux outputdebugstring用法一、引言OutputDebugString 是 Windows 操作系统中用于调试的一种方法,而在 Linux 系统中,虽然没有直接的 OutputDebugString 函数,但我们可以使用其他方法来实现类似的功能。
本文将介绍在Linux 系统中如何使用类似的机制来输出调试信息。
二、使用方法1. 使用 echo 命令输出调试信息:在终端中,可以使用 echo 命令将调试信息输出到终端。
例如,要输出字符串 "Debug information" 到终端,可以使用以下命令:`echo "Debug information"`。
2. 使用 printf 命令输出调试信息:printf 命令在 Linux 中常用于格式化输出。
与 echo 命令类似,可以使用 printf 命令输出调试信息。
例如,要输出字符串 "Debug information" 到终端,可以使用以下命令:`printf "Debug information"`。
3. 使用重定向符号输出调试信息:在 Linux 中,可以使用重定向符号(>、>>)将输出重定向到文件中。
通过将调试信息重定向到一个文件中,可以在需要时查看和分析调试信息。
例如,要将调试信息输出到一个名为 debug.log 的文件中,可以使用以下命令:`echo "Debug information" > debug.log`。
4. 使用终端的内置调试功能:在终端中,可以使用一些内置的调试功能,如使用 set 命令查看环境变量和配置文件,使用echo_after_prompt 参数控制是否在命令提示符下显示输出等。
这些功能可以帮助开发人员更好地理解终端的行为和配置。
三、注意事项1. 调试信息的格式和内容:在输出调试信息时,应确保信息的格式和内容清晰、易于理解。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
常用Linux系统Debug命令
常用Linux系统Debug命令
命令系统,是一种计算机代码控制系统。
常用Linux系统Debug 命令有哪些呢?下面是相关的知识,欢迎阅读。
1、查看TCP连接状态
netstat-nat|awk'{print$6}'|sort|uniq-c|sort-rn
netstat-
n|awk'/^tcp/{++S[$NF]};END{for(ainS)printa,S[a]}'
netstat-
n|awk'/^tcp/{++state[$NF]};END{for(keyinstate)printkey,"",s tate[key]}'
netstat-
n|awk'/^tcp/{++arr[$NF]};END{for(kinarr)printk,"",arr[k]}'
netstat-n|awk'/^tcp/{print$NF}'|sort|uniq-c|sort-rn
netstat-ant|awk'{print$NF}'|grep-v'[a-z]'|sort|uniq-c
netstat-nat|awk'{print$6}'|sort|uniq-c|sort-rn
netstat-
n|awk'/^tcp/{++S[$NF]};END{for(ainS)printa,S[a]}'
netstat-
n|awk'/^tcp/{++state[$NF]};END{for(keyinstate)printkey,"",s tate[key]}'
netstat-
n|awk'/^tcp/{++arr[$NF]};END{for(kinarr)printk,"",arr[k]}'
netstat-n|awk'/^tcp/{print$NF}'|sort|uniq-c|sort-rn
netstat-ant|awk'{print$NF}'|grep-v'[a-z]'|sort|uniq-c
2、查找请求80端口最多的20个IP连接
netstat-anlp|grep80|greptcp|awk'{print$5}'|awk-
F:'{print$1}'|sort|uniq-c|sort-nr|head-n20
netstat-
ant|awk'/:80/{split($5,ip,":");++A[ip[1]]}END{for(iinA)prin tA,i}'|sort-rn|head-n20
tcpdump-ieth0-tnndstport80-c1000|awk-
F"."'{print$1"."$2"."$3"."$4}'|sort|uniq-c|sort-nr|head-n20
3、查找较多time_wait连接
netstat-n|grepTIME_WAIT|awk'{print$5}'|sort|uniq-c|sort-rn|head-n20
4、找查较多的SYN连接
netstat-an|grepSYN|awk'{print$5}'|awk-
F:'{print$1}'|sort|uniq-c|sort-nr|more
5、根据端口列进程
netstat-ntlp|grep80|awk'{print$7}'|cut-d/-f1
6、获取Web访问前10位的ip地址
cataccess.log|awk'{print$1}'|sort|uniq-c|sort-nr|head-n10
cataccess.log|awk'{counts[$(11)]+=1};END{for(urlincounts )printcounts[url],url}'
7、访问次数最多的文件或页面,取前20
cataccess.log|awk'{print$11}'|sort|uniq-c|sort-nr|head-n20
8、列出传输最大的几个rar文件
cataccess.log|awk'{print$11}'|sort|uniq-c|sort-nr|head-n20
9、列出输出大于200000byte(约200kb)的rar文件以及对应文件发生次数
cataccess.log|awk'($10>200000&&$7~/.rar/){print$7}'|sort -n|uniq-c|sort-nr|head-n100
10、如果日志最后一列记录的是页面文件传输时间,则有列出到客户端最耗时的'页面
cataccess.log|awk'($7~/.php/){print$NF""$1""$4""$7}'|sor t-nr|head-n100
cataccess.log|awk'($7~/.php/){print$NF""$1""$4""$7}'|sor t-nr|head-n100
11、列出最最耗时的页面(超过60秒的)的以及对应页面发生次数
cataccess.log|awk'($NF>60&&$7~/.php/){print$7}'|sort-
n|uniq-c|sort-nr|head-n100
12、列出传输时间超过30秒的文件
cataccess.log|awk'($NF>30){print$7}'|sort-n|uniq-c|sort-nr|head-n20
13、统计网站流量(G)
cataccess.log|awk'{sum+=$10}END{printsum/1024/1024/1024} '
14、统计404的连接
awk'($9~/404/)'access.log|awk'{print$9,$7}'|sort
15、统计httpstatus
cataccess.log|awk'{counts[$(9)]+=1};END{for(codeincounts )printcode,counts[code]}'
cataccess.log|awk'{print$9}'|sort|uniq-c|sort-rn
16、查看是哪些爬虫在抓取内容
tcpdump-ieth0-l-s0-w-dstport80|strings|grep-iuser-
agent|grep-i-E'bot|crawler|slurp|spider'
17、查看数据库执行的sql语句
tcpdump-ieth0-s0-l-w-dstport3306|strings|egrep-
i'SELECT|UPDATE|DELETE|INSERT|SET|COMMIT|ROLLBACK|CREATE|DR OP|ALTER|CALL'
18、按域统计流量
zcatsquid_access.log.tar.gz|awk'{print$10,$7}'|awk'BEGIN {FS="[/]"}{trfc[$4]+=$1}END{for(domainintrfc){printf"%s%d", domain,trfc[domain]}}'
19、调试命令
strace-ppid
20、磁盘性能
iostat-x110。