Linux中的tail,ps命令

接上篇文章,对部分命令的参数进行详解

一、查看文件内容的特殊方法

相信最基本的catmoreless你已经很熟悉了,如果有特殊的要求呢:
1. 如果你只想看文件的前5行,可以使用head命令,如:
head -5 /etc/passwd
2. 如果你想查看文件的后10行,可以使用tail命令,如:
tail -2 /etc/passwd 或
tail -n 2 /etc/passwd
tail -f /var/log/messages
参数-f使tail不停地去读最新的内容,这样有实时监视的效果
用Ctrl+c来终止!
3. 查看文件中间一段,你可以使用sed命令,如:
sed -n ‘5,10p’ /etc/passwd
这样你就可以只查看文件的第5行到第10行。

语法格式:
tail [ -f ] [ -c Number | -n Number | -m Number | -b Number | -k Number ] [ File ]
或者
tail [ -r ] [ -n Number ] [ File ]
使用说明:
tail 命令从指定点开始将 File 参数指定的文件写到标准输出。如果没有指定文件,则会使用标准输入。 Number 变量指定将多少单元写入标准输出。 Number 变量的值可以是正的或负的整数。如果值的前面有 +(加号),从文件开头指定的单元数开始将文件写到标准输出。如果值的前面有 -(减号),则从文件末尾指定的单元数开始将文件写到标准输出。如果值前面没有 +(加号)或 -(减号),那么从文件末尾指定的单元号开始读取文件。
主要参数:

-b Number 从 Number 变量表示的 512 字节块位置开始读取指定文件。 
-c Number 从 Number 变量表示的字节位置开始读取指定文件。 
-f 如果输入文件是常规文件或如果 File 参数指定 FIFO(先进先出),那么 tail 
命令不会在复制了输入文件的最后的指定单元后终止,而是继续从输入文件读取和复
制额外的单元(当这些单元可用时)。如果没有指定 File 参数,并且标准输入是管道
则会忽略 -f 标志。tail -f 命令可用于监视另一个进程正在写入的文件的增长。 
-k Number 从 Number 变量表示的 1KB 块位置开始读取指定文件。 
-m Number 从 Number 变量表示的多字节字符位置开始读取指定文件。使用该标志提供
在单字节和双字节字符代码集环境中的一致结果。 
-n Number 从首行或末行位置来读取指定文件,位置由 Number 变量的符号(+ 或 - 或无)
表示,并通过行号 Number 进行位移。 
-r 从文件末尾以逆序方式显示输出。
-r 标志的缺省值是以逆序方式显示整个文件。
如果文件大于 20,480 字节,那么-r标志只显示最后的 20,480 字节。 
-r 标志只有与 -n 标志一起时才有效。否则,就会将其忽略

二、进程查看

PS是LINUX下最常用的也是非常强大的进程查看命令。使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、

进程有没有僵死、哪些进程占用了过多的资源等等。

ps 是显示瞬间进程的状态,并不动态连续;

如果想对进程运行时间监控,应该用 top 工具;

kill 用于杀死进程

———————————-

ps 的参数说明

1
-
1
A
1
:所有的 process 均显示出来,与 -e 具有同样的效用;
1
-a :不与 terminal 有关的所有 process ;
-e :显示所有进程
1
-u :有效使用者 (effective user) 相关的 process ;
1
x :通常与 a 这个参数一起使用,可列出较完整信息。

 

1
输出格式规划:
1
l :较长、较详细的将该
1
PID
1
的的信息列出;
1
j :工作的格式 (jobs format)
1
-f :做一个更为完整的输出。
1
特别说明:
1
由于 ps 能够支持的
1
OS
1
类型相当的多,所以他的参数多的离谱!
1
而且有没有加上 - 差很多!详细的用法应该要参考<strong><span style="color: #ff0000;"> man ps</span></strong> 喔

例一:列出目前所有的正在内存当中的程序

# ps aux

1
USER
1
PID
1
%
1
CPU
1
%
1
MEM
1
VSZ
1
RSS
1
TTY
1
STAT
1
START
1
TIME
1
COMMAND
1
root
1
5881
1
0
1
.
1
0
1
0
1
.
1
3
1
5212
1
1204
1
pts/
1
0
1
S
1
10
1
:
1
22
1
0
1
:
1
00
1
su
1
root
1
5882
1
0
1
.
1
0
1
0
1
.
1
3
1
5396
1
1524
1
pts/
1
0
1
S
1
10
1
:
1
22
1
0
1
:
1
00
1
bash
1
root
1
6142
1
0
1
.
1
0
1
0
1
.
1
2
1
4488
1
916
1
pts/
1
0
1
R
1
+
1
11
1
:
1
45
1
0
1
:
1
00
1
ps aux
1
PID
1
:该 process 的号码。

 

1
• %
1
CPU
1
:该 process 使用掉的
1
CPU
1
资源百分比;
1
• %
1
MEM
1
:该 process 所占用的物理内存百分比;
1
1
VSZ
1
:该 process 使用掉的虚拟内存量 (Kbytes)
1
1
RSS
1
:该 process 占用的固定的内存量 (Kbytes)
1
1
TTY
1
:该 process 是在那个终端机上面运作,若与终端机无关,则显示 ?,另外, tty1-tty6 是本机上面的登入者程序,若为 pts/
1
0
1
等等的,则表示为由网络连接进主机的程序。
1
1
STAT
1
:该程序目前的状态,主要的状态有:
1
o
1
R
1
:该程序目前正在运作,或者是可被运作;
1
o
1
S
1
:该程序目前正在睡眠当中 (可说是 idle 状态啦!),但可被某些讯号 (signal) 唤醒。
1
o
1
T
1
:该程序目前正在侦测或者是停止了;
1
o
1
Z
1
:该程序应该已经终止,但是其父程序却无法正常的终止他,造成 zombie (疆尸) 程序的状态
1
1
START
1
:该 process 被触发启动的时间;
1
1
TIME
1
:该 process 实际使用
1
CPU
1
运作的时间。
1
1
COMMAND
1
:该程序的实际指令为何?

#ps -lA     显示出所有的程序

# ps aux | egrep ‘(cron|syslog)’   找出与 cron 与 syslog 这两个服务有关的 PID 号码

 

最常用的方法是ps -aux,然后再利用一个管道符号导向到grep去查找特定的进程,然后再对特定的进程进行操作。

———————————–

kill 终止进程

有十几种控制进程的方法,下面是一些常用的方法:

kill -STOP [pid]
发送SIGSTOP (17,19,23)停止一个进程,而并不消灭这个进程。

kill -CONT [pid]
发送SIGCONT (19,18,25)重新开始一个停止的进程。

kill -KILL [pid]
发送SIGKILL (9)强迫进程立即停止,并且不实施清理操作。

kill -9 -1
终止你拥有的全部进程。

SIGKILL 和 SIGSTOP 信号不能被捕捉、封锁或者忽略,但是,其它的信号可以。所以这是你的终极武器。

 

 

 

 

Tagged as: