接上篇文章,对部分命令的参数进行详解
一、查看文件内容的特殊方法
相信最基本的cat、more和less你已经很熟悉了,如果有特殊的要求呢:
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 的参数说明
-A:所有的 process 均显示出来,与 -e 具有同样的效用; |
-a :不与 terminal 有关的所有 process ; |
-u :有效使用者 (effective user) 相关的 process ; |
x :通常与 a 这个参数一起使用,可列出较完整信息。 |
输出格式规划: |
l :较长、较详细的将该 PID的的信息列出; |
j :工作的格式 (jobs format) |
-f :做一个更为完整的输出。 |
特别说明: |
由于 ps 能够支持的 OS类型相当的多,所以他的参数多的离谱! |
而且有没有加上 - 差很多!详细的用法应该要参考 man ps 喔 |
例一:列出目前所有的正在内存当中的程序
# ps aux
USERPID%CPU%MEMVSZRSSTTYSTATSTARTTIMECOMMAND |
root 58810.00.352121204pts/0S10:220:00su |
root 58820.00.353961524pts/0S10:220:00bash |
root 6142 0.0 0.2 4488 916 pts/0 R+ 11:45 0:00 ps aux |
PID :该 process 的号码。
• %CPU:该 process 使用掉的 CPU资源百分比; |
• %MEM:该 process 所占用的物理内存百分比; |
• VSZ:该 process 使用掉的虚拟内存量 (Kbytes) |
• RSS:该 process 占用的固定的内存量 (Kbytes) |
• TTY:该 process 是在那个终端机上面运作,若与终端机无关,则显示 ?,另外, tty1-tty6 是本机上面的登入者程序,若为 pts/0等等的,则表示为由网络连接进主机的程序。 |
• STAT:该程序目前的状态,主要的状态有: |
o R:该程序目前正在运作,或者是可被运作; |
o S:该程序目前正在睡眠当中 (可说是 idle 状态啦!),但可被某些讯号 (signal) 唤醒。 |
o T:该程序目前正在侦测或者是停止了; |
o Z:该程序应该已经终止,但是其父程序却无法正常的终止他,造成 zombie (疆尸) 程序的状态 |
• START:该 process 被触发启动的时间; |
• TIME:该 process 实际使用 CPU运作的时间。 |
• COMMAND:该程序的实际指令为何? |
#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 信号不能被捕捉、封锁或者忽略,但是,其它的信号可以。所以这是你的终极武器。
发表回复