一、检测程序
1、探查进程
(1)ps命令只会显示运行在当前控制台下的属于当前用户的进程。
例:
例子中显示了程序的进程ID(Process ID,PID)、它们运行在哪个终端(TTY)以及进程已用的CPU时间。
(2)Linux系统中使用GNU ps命令支持3种不同类型的命令行参数:
Unix风格的参数,前面加单破折线;
BSD风格的参数,前面不加破这线;
GNU风格的长参数,前面加双破折线;
(3)用-ef查看系统上运行的所有进程,-e参数指定显示所有运行在系统上的进程;-f参数则扩展了输出。
UID:启动这些进程的用户
PID:进程的进程ID
PPID:父进程的进程号
C:进程生命周期中的CPU利用率
STIME:进程启动时的系统时间
TTY:进程启动时的终端设备
TIME:运行进程需要的累计CPU时间
CMD:启动的程序名称
(4)采用-l参数,会产生一个长格式输出
F:内核分配给进程的系统标记
S:进程的状态(O代表正在运行;S代表在休眠;R代表可运行,正等待运行;Z代表僵化,进程已结束但父进程已不存在;T代表停止)。
PRI:进程的优先级(越大的数字代表越低的优先级)。
NI:谦让度值用来参与决定优先级。
ADDR:进程的内存地址。
SZ:假如进程被换出,所需交换空间的大致大小。
WCHAN:进程休眠的内核函数的地址。
2、实时探测进程
ps命令只能显示某个特定时间点的信息,而top命令是实时显示的。
命令行:top
第一部分显示的是系统的概况:第一行显示了当前时间、系统运行的时间、登录的用户数以及系统的平均负载。
平均负载有3个值:最近1分钟的、最近5分钟的和最近15分钟的平均负载。值越大说明系统的负载越高。由于进程短期的突发性活动,出现最近1分钟的高负载也很常见,但如果近15分钟内的平均负载都很高,就说明系统可能有问题。
第二行显示了进程概要信息------top命令的输出中将进程叫做任务(task):有多少进程处在运行、休眠、停止或是僵化状态(僵化状态是指进程完成了,但父进程没有响应)。
第三行显示了CPU的概要信息。top根据进程的属主(用户还是系统)和进程的状态(运行、空闲还是等待)将CPU利用率分成几类输出。
第四、五行说明了系统内存的状态。第四行说的是物理内存:总共有多少内存,当前用了多少,还有多少空闲。第五行说的是同样的信息,不过是针对系统交换空间的状态而言的。
最后一部分显示了当前运行中的进程的详细列表,有些列和ps命令的输出类似。
PR:进程的优先级
NI:进程的谦让度值
VIRT:进程占用的虚拟内存总量
RES:进程占用的物理内存总量
SHR:进程和其他进程共享的内存总量
%CPU:进程使用的CPU时间比例
%MEM:进程使用的内存占可用内存的比例
TIME+:自进程启动到目前为止的CPU时间总量
COMMAND:进程所对应的命令行名称,也就是启动的程序名
3、结束进程
在Linux中,进程之间通过信号来通信。进程信号如下表:
(1)kill命令
kill命令可通过进程ID(PID)给进程发信号。要发送进程信号,你必须是进程的属主或登录为root用户。
命令行:kill PID号
eg:kill 3940
如果要强制终止,-s参数支持指定其他信号(用信号名或信号值)。
eg:kill -s HUP 3940
(2)killall命令
支持通过进程名而不是PID来结束进程。也支持通配符,这在系统因负载过大而变得很慢时很有用。
eg:killall http*
例子中的命令结束了所有以http开头的进程。
二、监测磁盘空间
1、挂载存储媒体
Linux文件系统将所有的磁盘都并入一个虚拟目录下。在使用新的存储媒体之前,需要把它放到虚拟目录下。这项工作称为挂载(mounting)。
(1)mount命令
默认情况下,mount命令会输出当前系统上挂载的设备列表。
mount命令提供四部分信息:媒体的设备文件名、媒体挂载到虚拟目录的挂载点、文件系统类型、已挂载媒体的访问状态。
mount命令的参数如下图:
手动挂载媒体设备的基本命令:mount -t 类型 设备 目录
eg:mount -t vfat /dev/sdb1 /media/disk
媒体设备挂载到了虚拟目录后,root用户就有了对该设备的所有访问权限,而其他用户的访问则会被限制。可以通过目录权限指定用户对设备的访问权限。
(2)umount命令
从Linux系统上移除一个可移动设备时,不能直接从系统上移除,而应该先卸载。如果有任何程序正在使用设备上的文件,系统就不会允许你卸载它。
命令行:umount [directory|device]
eg:umount /home/rich/mnt
2、使用df命令
可以很方便地查看所有已挂载磁盘的使用情况。
命令输出:设备的设备文件位置、能容纳多少个1024字节大小的块、已用多少个1024字节大小的块、还有多少1024字节大小的块可用、已用空间所占的比例、设备挂载到了哪个挂载点上。
参数-h,把输出中的磁盘空间按照用户易读的形式显示,通常用M代替兆字节,用G替代吉字节。
3、使用du命令
(1)可以显示某个特定目录(默认情况下是当前情况)的磁盘使用情况,可快速判断系统上某个目录下是不是有超大文件。
左边的数值是每个文件或目录占用的磁盘块数。
(2)du命令的几个命令行参数
-c:显示所有已列出文件总的大小
-h:按用户易读的格式输出大小,即用K替代千字节,用M替代兆字节,用G替代吉字节
-s:显示每个输出参数的总计。
三、处理数据文件
1、排序数据
(1)默认情况下,sort命令按照会话指定的默认语言的排序规则对文本文件中的数据行排序,会把数字当做字符来执行标准的字符排序,产出的输出可能不是自己想要的,如下图:
(2)使用-n参数,会告诉sort命令把数字识别成数字而不是字符,并且按值排序,如下图:
(3)Linux的日志文件经常会在每行的起始位置有一个时间戳,用来表明事件是什么时候发生的
(4)参数-M,按月排序,用-M参数,sort命令就能识别三字符的月份名,并相应地排序。(没运行出想要的结果,暂定)
(5)sort参数如下图:
2、搜索数据
(1)命令行:grep [options] pattern [file]
例1:
例2:
(2)反向搜索(输出不匹配该模式的行),可加-v参数
(3)显示匹配模式的行所在的行号,可用-n参数
(4)只要知道有多少行含有匹配的模式,可用-c参数
(5)要指定多个匹配模式,可用-e参数来指定每个模式
(6)在grep搜索中使用正则表达式
例:搜索包含1或者2的匹配
3、压缩数据
(1)命令行:gzip 文件名
(2)用通配符来一次性批量压缩文件
4、归档数据
命令格式:tar function [options] object1 object2 ...
function参数定义了tar命令该做什么,如下图:tar命令的功能
每个功能可用选项来针对tar归档文件定义一个特定行为,下图列出了这些选项中能和tar命令一起使用的常见选项。
这些选项经常合并到一起使用。
eg:创建一个名为test.tar的归档文件,含有test和test2目录内容。
列出tar文件test.tar的内容(但并不提取文件):
从tar文件test.tar中提取内容:(如果tar文件是从一个目录结构创建的,那整个目录结构都会在当前目录下重新创建)