目录
进程管理
程序与进程:
程序是静态的(文件),进程是动态的(运行的程序)。
进程和线程:
一个程序至少有一个进程,一个进程至少有一个线程.
进程之间内存是独立
线程之前内存共享 ,高并发好一些 。 安全性差一些。
pstree
作用: 查看进程树
用法: pstree [-p]
显示进程号 -p1
pstree -p | more # | more 是将结果分页显示,参考 more 命令
tree
作用: 显示目录树形结构
用法: tree 目录名
1
2
3
4
5
6
7
8
9╰─$ tree /home/sam/back | more
/home/sam/back
├── 1_soft
│ ├── QIpmsg_32_121019.tar.gz
│ ├── vmware11
│ │ ├── key
│ │ └── VMware-Workstation-Full-11.0.0-2305329.x86_64.bundle
│ └── xp.iso
└── text
ps
- 作用: 列出目前所有的正在内存当中的进程
 - 用法: ps -aux # BSD的格式来显示进程 
ps -ef # 是用标准的格式显示进程 
1  | $ ps -aux  | 
| 名称 | 含义 | 
|---|---|
| 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 :该程序目前暂停了  Z :该程序应该已经终止,但是其父程序却无法正常的终止他,造成 zombie (疆尸) 程序的状态 D :不可中断状态.  < : 高优先级的 N : 低优先级的 s : 包含子进程 l : 多线程 + : 前台程序 | 
| START | 该 process 被触发启动的时间 | 
| TIME | 该 process 实际使用 CPU运作的时间 | 
| COMMAND | 该程序的实际指令 | 
注:
- 正常先关闭子进程,再关闭父进程;一旦父进程先关闭而子进程没关闭,则子进程变成 zombie (疆尸) 状态
 ctrl-c是发送 SIGINT 信号,终止一个进程,ctrl-z是发送 SIGSTOP信号,挂起一个进程
free
- 作用 :查看系统内存量
 - 用法 : free ;  free [-m] #单位为M
buffers: #缓存从磁盘读出的内容cached: #缓存需要写入磁盘的内容1
2
3
4
5
6
7
8
9
10
11
12╭─sam@sam ~
╰─$ free
total used free shared buffers cached
Mem: 8080868 5240964 2839904 375964 1144 2930824
-/+ buffers/cache: 2308996 5771872
Swap: 4193276 0 4193276
╭─sam@sam ~
╰─$ free -m
total used free shared buffers cached
Mem: 7891 5109 2782 367 1 2862
-/+ buffers/cache: 2245 5645
Swap: 4094 0 4094 
top
- 作用: 动态查看进程,统计信息区前五行是系统整体的统计信息。
 - 用法: top ; top [-p] 进程号
默认3s刷新一次空格:立即刷新。q:退出M:按内存排序P: 按CPU排序<>: 翻页 
1  | ╭─sam@sam ~  | 
说明:
- 前五行,系统整体的统计信息
 
| 行数 | 内容 | 含义 | 
|---|---|---|
| 第一行 | top - 15:44:29 up 6:17, 5 users, load average: 0.28, 0.26, 0.31 | 第一行是任务队列信息 15:44:29 up  6:17 : 当前时间  系统运行时间,格式为时:分 5 users,: 当前登录用户数 load average: 0.28, 0.26, 0.31: 系统负载,即任务队列的平均长度。 三个数值分别为  1分钟、5分钟、15分钟前到现在的平均值。 | 
| 第二行 | Tasks: 271 total, 1 running, 270 sleeping, 0 stopped, 0 zombie | 第二行为进程信息  271 total : 进程总数 1 running :正在运行的进程数 270 sleeping : 睡眠的进程数 0 stopped : 停止的进程数 0 zombie : 僵尸进程数 | 
| 第三行 | %Cpu(s): 1.0 us, 0.9 sy, 0.0 ni, 98.1 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st | 第三行为CPU的信息  1.0% us : 系统用户进程使用CPU百分比。 不包括调高优先级的进程。 CPU%是由每个核的CPU占用律之和算出来的。如果你是4核CPU,核1,CPU使用率为100%,核2,CPU使用率为100%。 则会出会CPU 高于100%的现象,最终为200% 0.9% sy : 内核中的进程占用CPU百分比 0.0% ni : 用户进程空间内改变过优先级的进程占用CPU百分比 98.1% id : 空闲CPU百分比 | 
| 第四行 | KiB Mem: 8080868 total, 5044804 used, 3036064 free, 1144 buffers | 物理内存信息(KB) 8080868 total : 物理内存总量  5044804 used : 使用的物理内存总量  3036064 free : 空闲内存总量  2920332 buff/cache : 用作内核缓存的内存量。 | 
| 第五行 | KiB Swap: 4193276 total, 0 used, 4193276 free. 2920332 cached Mem | 交换区信息(KB) 4193276 total : 交换区总量  0k used : 使用的交换区总量  4193276 free : 空闲交换区总量  2920332 avail Mem : 总的可利用内存是多少 | 
- 具体进程信息
 
| 列名 | 含义 | 
|---|---|
| PID | 进程id | 
| USER | 进程所有者的用户名 | 
| NI | 进程优先级。 nice值。负值表示高优先级,正值表示低优先级 | 
| RES | 实际使用内存大小。 | 
| S | 进程状态。 D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程  | 
| %CPU | 上次更新到现在的CPU时间占用百分比 | 
| %MEM | 进程使用的物理内存百分比 | 
| TIME+ | 进程使用的CPU时间总计,单位1/100秒 | 
| COMMAND | 命令名/命令行 | 
kill
- 作用 : 控制(关闭)进程
 - 用法 : kill  给进程发送信号(停止进程) ; kill -9 pid; killall 服务名; pkill 服务名
常用信号:1HUP 重新加载配置文件。类似重启。2INT 和ctrl+c一样 一般用于通知前台进程组终止进程9KILL 强行中断19STOP 和ctrl+z一样 
nice renice
- 作用 : nice 控制以什么优先级运行进程 。默认优先级是0;nice值 -20 ~ 19 越小优先级越高 普通用户0-19
renice #修改正在运行的进程的优先级 - 用法 : nice -n 优先级数字 进程号
 
前后台进程切换
jobs
列出所有后台进程
创建后台指令
- nohup
 - &
1
nohup <command> [argument…] &
 
fg
用法: fg 后期进程序列号
1  | [root@localhost ~]# fg 1  | 
screen
虽然nohup很容易使用,但还是比较“简陋”的,对于简单的命令能够应付过来,对于复杂的需要人机交互的任务就麻烦了。screen 可以恢复当时状态。
安装
rpm或yum方式
1  | [root@localhost ~]# yum -y install screen  | 
使用
启动screen
1
[root@localhost ~]# screen
执行业务操作
例如:1
[root@localhost ~]# vim 1.sh
保存状态
按ctrl+a+d,出现[detached]恢复
查看 -ls ; 恢复 -r id号1
2
3
4
5
6
7
8
9╭─sam@sam ~
╰─$ screen -ls
There is a screen on:
13033.pts-3.sam (Detached)
1 Socket in /run/uscreens/S-sam.
╭─sam@sam ~
╰─$ screen -r 13033