ps-top

ps

top

nice

free

screen

程序与进程

程序是静态的(文件),进程是动态的(运行的程序)

 

进程和线程:

一个程序至少有一个进程,一个进程至少有一个线程。

进程之间内存是独立的

线程之间内存共享。高并发好一些  安全性差一些。

 

查看进程树:

pstree  树形结构显示系统进程信息

[root@server63 ~]# pstree

init-+-NetworkManager

     |-abrtd

     |-acpid

     |-atd

     |-auditd---{auditd}

     |-automount---4*[{automount}]

-p 显示进程号

[root@server63 ~]# pstree-p |more

init(1)-+-NetworkManager(1321)

        |-abrtd(1618)

        |-acpid(1412)

        |-atd(1637)

        |-auditd(1227)---{auditd}(1228)

        |-automount(1489)-+-{automount}(1490)

        |                 |-{automount}(1491)

        |                 |-{automount}(1494)

        |                 `-{automount}(1497)

 

 

显示目录树形结构  tree

[root@server63 ~]# rpm-ivh /mnt/Packages/tree-1.5.3-2.el6.x86_64.rpm

warning:/mnt/Packages/tree-1.5.3-2.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, keyID c105b9de: NOKEY

Preparing...                                                   ########################################### [100%]

 

[root@server63 ~]# tree/boot

/boot

├── config-2.6.32-431.el6.x86_64

├── efi

   └── EFI

       └── redhat

           └── grub.efi

├── grub

   ├──device.map

   ├──e2fs_stage1_5

   ├──fat_stage1_5

   ├──ffs_stage1_5

   ├── grub.conf

   ├──iso9660_stage1_5

   ├──jfs_stage1_5

   ├── menu.lst-> ./grub.conf

 

 

列出目前所有正在内存当中的进程

ps

1ps a显示现行终端机下的所有程序,包括其他用户的程序。
2
ps-A   显示所有程序。
3
psc    列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示。
4
ps -e  此参数的效果和指定"A"参数相同。
5
pse   列出程序时,显示每个程序所使用的环境变量。
6
psf    ASCII字符显示树状结构,表达程序间的相互关系。
7
ps-H    显示树状结构,表示程序间的相互关系。
8
ps-N   显示所有的程序,除了执行ps指令终端机下的程序之外。
9
pss     采用程序信号的格式显示程序状况。
10
psS     列出程序时,包括已中断的子程序资料。
11
ps -t <终端机编号>  指定终端机编号,并列出属于该终端机的程序的状况。
12
ps u以用户为主的格式来显示程序状况。
13
ps x显示所有程序,不以终端机来区分。

 

manps

       ps - report a snapshot of the currentprocesses. 报告当前进程的快照

 

[root@server63~]# ps -aux

Warning:bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ

USER        PID %CPU %MEM    VSZ  RSS TTY      STAT START   TIME COMMAND

root          1 0.0  0.1  19356 1536 ?        Ss   11:08  0:01 /sbin/init

root          2 0.0  0.0      0    0 ?        S    11:08  0:00 [kthreadd]

 

USER   运行此进程的用户名

PID     process的号码

%CPU   process使用cpu资源的百分比

%MEM  process所占用的物理内存百分比

VSZ           process使用掉的虚拟内存量(kbytes

RSS           process占用的固定的内存量 kbytes

TTY            process是在哪个终端机上面运作。若与终端机无关,则显示“?”。另外tty1-tty6是本机上面的登入者程序,若为pts/0等等的 则表示为网络连接进主机的程序。

STAT                   该程序目前的状态,linux进程有5种基本状态:

  R:(正在运行或在运行队列中等待)

 S:该程序目前正在睡眠当中,但可能被某些讯号(signal)唤醒。

 T:该进程目前暂停了

 

例: vim a.txt 按下 ctrl+z  (将进程转到后台,并使之挂起)

ctrl-c是发送 SIGINT信号,终止一个进程

ctrl-z是发送SIGSTOP信号,挂起一个进程

ps-aux | grep vim

[root@server63~]# ps -aux | grep vim

Warning:bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ

root       3460 0.2  0.3 143660  3340 pts/1   T    14:41  0:00 vim a.txt

root       3462 0.0  0.0 103252   824 pts/1   S+   14:42   0:00 grep vim

 

Z :该程序应该已经终止,但是其父程序却无法正常的终止它。造成zombie(僵尸)程序的状态

不可中断状态  了解

 

         < 高优先级的

         N低优先级的

         L有内存分页但是带锁

         s包含子进程

         l多线程

         +前台程序()

 

START process 被触发启动的时间

TIMEprocess 实际使用CPU运作的时间

COMMAND:该程序的实际指令

 

了解 : ps -ef

 

ps -aux 是用BSD的格式来显示进程。

ps -ef 是用标准的格式显示进程

 

 

top   动态查看进程

统计信息区前五行是系统整体的统计信息

1 第一行是任务队列信息

uptime命令的执行结果

[root@server65~]# uptime

 14:30:44 up 1:13,  2 users,  load average: 0.05, 0.01, 0.00

 

14:30:44                         当前时间

up  1:13                         系统运行时间,格式为时:分

2users                           当前登录用户数

loadaverage: 0.05, 0.01, 0.00    系统负载,即任务队列的平均长度。三个数值分别为1分                                    钟、5分钟、15分钟前到现在的平均值。

                           

 

一般来说,每个CPU内核当前活动进程数不大于3,则系统运行良好。如果主机时四核cpu的话,那么只要uptime最后输出的一串字符数值小于4*3=12 即表示系统负载不是很严重

 

2 第二、三行为进程和CPU信息

[root@server65~]# top

top- 15:10:10 up  1:52,  2 users, load average: 0.00, 0.00, 0.00

Tasks: 136total,   1 running, 136 sleeping,   0 stopped,  0 zombie

Cpu0  : 0.0%us,  0.3%sy,  0.0%ni, 99.7%id,  0.0%wa, 0.0%hi,  0.0%si,  0.0%

Mem:   1004412k total,   324160k used,   680252k free,    40040k buffers

Swap:   204792k total,        0k used,   204792k free,   151096k cached

 

当有多个CPU时,这些内容可能会超过两行。内容如下

Tasks:136 total           进程总数

1running                  正在运行的进程数

136 sleeping              睡眠的进程数

0stopped                  停止的进程数

0zombie                   僵尸进程数

 

Cpu(s):  0.0%us           系统用户进程使用CPU百分比。不包括调高优先级的进程。CPU% 是                           由每个核的CPU占用率之和算出来的。如果你是4CPU1 cpu使用                           率为100% 2 cpu使用率为100% ,则会出现cpu高于100%的象 最                           终为200%        

0.3%sy                    内核中进程占用cpu百分比           

0.0%ni                    用户进程空间内改变过优先级的进程占用的cpu百分比

99.7%id                   空闲cpu百分比

 

第四五行 为内存信息

Mem:   1004412k total      物理内存总量

324160kused                使用的物理内存总量

680252kfree                空闲的内存总量

40040kbuffers              用做内核缓存的内存量 free -k 一个意思

Swap:   204792k total      交换分区总量

0kused                     使用的交换分区总量

204792kfree                空闲交换分区总量

151096kcached             缓冲的交换分区总量。内存中的内容被换出到交换区,而后又被还                           如到内存,但使用过的交换区尚未被覆盖,该数值即为这些内容已                           存在于内存中的交换区大小。相应的内存再次被换出时可不必再对                           交换区写入。


 

 

进程信息

PID                                进程id

USER                               进程所有者的用户名

NI                                 nice值(进程优先级)。负值表示高优先级,正值小时低优先级

RES                                实际使用内存大小

                                   进程状态

                                   D=不可中断的睡眠状态

S                                  R=运行       T=跟踪/停止       Z=僵尸进程

 

%CPU                               上次更新到现在的CPU时间占用百分比

%MEM                               进程使用的物理内存百分比

TIME+                              进程使用的CPU时间总计,单位1/100

COMMAND                            命令名/命令行

 

top 快捷键

q 退出

按内存排序

P   cpu 排序

默认3s刷新一次  按空格立即刷新

<> 上下翻页

 

控制(关闭)进程

kill       向进程发送信号(停止进程)

1 HUP      重新加载配置文件。类似重启

2  INT     ctrl+c 一样   一般用于通知前台进程组终止进程

9  KILL    强行终端

19 STOP     ctrl +Z 一样

[root@server63 ~]# ps -aux | grep top

Warning: bad syntax, perhaps a bogus '-'? See/usr/share/doc/procps-3.2.8/FAQ

root      2530  0.5 0.1  15036  1216 tty1    S+   09:36   0:00 top

root      2555  0.0  0.0 103252  820 pts/0    S+   09:37  0:00 grep top

[root@server63 ~]# kill -9 2530

[root@server63 ~]# ps -aux | grep top          pgerp -l  httpd

Warning: bad syntax, perhaps a bogus '-'? See/usr/share/doc/procps-3.2.8/FAQ

root      2559  0.0  0.0 103252  820 pts/0    S+   09:38  0:00 grep top

 

[root@server63 ~]# ps aux | grep httpd    多进程时

root      2609  0.0 0.3 184284  3832 ?        Ss  09:42   0:00 /usr/sbin/httpd

apache    2612  0.0  0.2 184284 2436 ?        S    09:42  0:00 /usr/sbin/httpd

apache    2613  0.0  0.2 184284 2436 ?        S    09:42  0:00 /usr/sbin/httpd

apache    2614  0.0  0.2 184284 2436 ?        S    09:42  0:00 /usr/sbin/httpd

apache    2615  0.0  0.2 184284 2436 ?        S    09:42  0:00 /usr/sbin/httpd

 

[root@server63 ~]# pkill httpd     killall  httpd

[root@server63 ~]# ps -aux | grep httpd

Warning: bad syntax, perhaps a bogus '-'? See/usr/share/doc/procps-3.2.8/FAQ

pkill killall 通过程序名字 直接杀死所有进程

或者 杀掉父进程  kill 2609

 

优先级控制

nice    -20 ~19  越小优先级越高   普通用户 0 - 19

作用: 以什么优先级运行进程。 默认优先级是0

 

# vim a.txt 出现

Found a swap file by name".a.txt.swp"

    rm -rf   .a.txt.swp      kill 进程是不管用的

 

[root@server63 ~]# vim a.txt      top NI 0

nice -n -5 vim a.txt

 

[root@server63 ~]# ps -aux | grep vim

Warning: bad syntax, perhaps a bogus '-'? See/usr/share/doc/procps-3.2.8/FAQ

root      3177  0.0 0.3 143660  3336 pts/1    T<  10:29   0:00 vim a.txt

root      3184  0.0  0.0 103252  820 pts/1    S+   10:29  0:00 grep vim

 

[root@server63 ~]# top -p 3177 

   PIDUSER      PR  NI  VIRT RES  SHR S %CPU %MEM    TIME+

  3177root      15  -5  140m 3336 2188 T  0.0 0.3   0:00.03

 

 

renice #修改正在运行的进程的优先级

renice -n 5 PID   修改进程优先级

 

nice -n -5 vim a.txt

[root@server63 ~]# ps -aux | grep vim

Warning: bad syntax, perhaps a bogus '-'? See/usr/share/doc/procps-3.2.8/FAQ

root      3230 0.5  0.3 143660  3336 pts/1   T<   10:37   0:00 vim a.txt

root      3232  0.0  0.0 103252  820 pts/1    S+   10:37  0:00 grep vim

 

[root@server63 ~]# top -p 3230    

  PIDUSER      PR  NI VIRT  RES  SHR S %CPU %MEM    TIME+

  3230root      25   -5  140m 3336 2188 T  0.0 0.3   0:00.03

[root@server63 ~]# renice -n 5 3230

3230: old priority -5, new priority 5

 

[root@server63 ~]# top -p 3230

  PIDUSER      PR  NI VIRT  RES  SHR S %CPU %MEM    TIME+

  3230root      25   5 140m 3336 2188 T  0.0  0.3  0:00.03

 

 

了解

前后台进程切换

jobs  列出所有后台进程

[root@server63 ~]# vim a.txt &

[1] 3282

[root@server63 ~]# jobs

[1]+  Stopped                 vim a.txt  #[1] 后台进程 序列号

 

fg 后台程序改到前台

用法 fg 后台进程 id

fg  1

 

 

查看内存

free /proc

 

free 查看系统内存量

-m MB 显示

 

 

buffers  #缓存从磁盘读出来的内容

cached  #缓存需要写入磁盘的内容

 

例:

[root@server63 ~]# free -m

            total       used       free    shared    buffers     cached

Mem:          980        649        331          0         61        393

-/+ buffers/cache:        194        785

Swap:         199          0        199

 

运行

[root@server63 ~]# find /     #在另一终端查看buffers增加速度

 

[root@server63 ~]# dd if=/dev/zero of=a.txtbs=10M count=10  在另一终端查看cache的增加速度

 

[root@server63 ~]# free

            total       used       free    shared    buffers     cached

Mem:      1004412     664844     339568          0     63012     402448

-/+ buffers/cache:     199384    805028

Swap:      204792          0     204792

 

[root@server63 ~]# free

            total       used       free    shared    buffers     cached

Mem:      1004412      A          B        0         C         D

-/+ buffers/cache:          X         Y

Swap:      204792          0     204792

 

X=A-C-D

Y=B+C+D

 

 

screen 实战后台实时执行命令备份命令

[root@server63 ~]# rpm -ivh/mnt/Packages/screen-4.0.3-16.el6.x86_64.rpm

warning:/mnt/Packages/screen-4.0.3-16.el6.x86_64.rpm: Header V3 RSA/SHA1 Signature, keyID c105b9de: NOKEY

Preparing...                                                    ###########################################[100%]

  1:screen                                                    ########################################### [100%]

 

1 直接在命令行键入screen命令

[root@server63 ~]# screen

 

暂时中断会话

screen窗口键入 ctrl+a+d  screen 会给出 detached(分离)提示

直接关闭当前pts 

 

[root@server63 ~]# screen -ls    #列出分离的会话

There is a screen on:

       5448pxs-0.xuegod63     (Detached)

1 Socket in /var/run/screen/S-root.

 

[root@server63 ~]# screen -r 4086   #重新连接会话


你可能感兴趣的:(安全性,程序,信息)