这次主要说一下进程方面的管理
先说一下图形模式与文字模式的切换方式
Linux 预设提供了六个文字接口终端
在GUI环境下 『Ctrl』+ 『Alt』+ 『F1』~ 『F6』功能键来变换不同接口终端
在文本环境下『Alt』+ 『F1』~ 『F6』功能键来变换不同接口终端
『Alt』+ 『F7』 :图形接口桌面
如果想要让屏幕中的工作在后台执行的时后,就使用&
不过,由于是后台执行的,所以该程序的输出并不会显现在屏幕上,
所以需要特别留意输出的信息的管线重导的问题 可以看到,前台什么也没有
当然,也可以使用[Ctrl]+z 来将目前正在进行当中的工作丢到后台!
那么摆在后台执行有何好处呢?!最大的好处就是不怕被『Ctrl+c』
这个中断指令来中断了!
刚刚我们提到的& 与vi 在后台执行,那么你怎么知道目前你所进行的后台的工作有哪些呢?
很简单,就是使用jobs 就可以观察到 后台有几个任务
那么如何来了解jobs 的后台(bg)与前台(fg)的管控呢?
这个bg 是将后台当中的程序由stopped 变成Running,仍然在后台
至于fg 则是将后台中的指令移到屏幕上来动作,也就是说放在前台
那你怎么知道你的后台当中有多少的工作(jobs)在进行呢?
就是执行jobs 来看看后台程序的代号!然后以bg %number 来将资料在后台中执行,
而fg %number 则是将代号为number 的程序移动到屏幕前面动作!
有些程序可以直接放到后台,这样还不会多占用一个终端控制台
比如说是备份了,运行一些编译的东西了什么的,不用我们去管,都是自动操作的
ps(process status)
ps是用来报告程序执行状况的指令,您可以搭配kill指令随时中断,删除不必要的程序
-a 显示所有终端机下执行的程序,除了阶段作业领导者之外。
a 显示现行终端机下的所有程序,包括其他用户的程序。
-A 显示所有程序。
-c 显示CLS和PRI栏位。
c 列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示。
-C<指令名称> 指定执行指令的名称,并列出该指令的程序的状况。
-d 显示所有程序,但不包括阶段作业领导者的程序。
-e 此参数的效果和指定"A"参数相同。
e 列出程序时,显示每个程序所使用的环境变量。
-f 显示UID,PPIP,C与STIME栏位。
f 用ASCII字符显示树状结构,表达程序间的相互关系。
-g<群组名称> 此参数的效果和指定"-G"参数相同,当亦能使用阶段作业领导者的名称来指定。
g 显示现行终端机下的所有程序,包括群组领导者的程序。
-G<群组识别码> 列出属于该群组的程序的状况,也可使用群组名称来指定。
h 不显示标题列。
-H 显示树状结构,表示程序间的相互关系。
-j或j 采用工作控制的格式显示程序状况。
-l或l 采用详细的格式来显示程序状况。
L 列出栏位的相关信息。
-m或m 显示所有的执行绪。
n 以数字来表示USER和WCHAN栏位。
-N 显示所有的程序,除了执行ps指令终端机下的程序之外。
-p<程序识别码> 指定程序识别码,并列出该程序的状况。
p<程序识别码> 此参数的效果和指定"-p"参数相同,只在列表格式方面稍有差异。
r 只列出现行终端机正在执行中的程序。
-s<阶段作业> 指定阶段作业的程序识别码,并列出隶属该阶段作业的程序的状况。
s 采用程序信号的格式显示程序状况。
S 列出程序时,包括已中断的子程序资料。
-t<终端机编号> 指定终端机编号,并列出属于该终端机的程序的状况。
t<终端机编号> 此参数的效果和指定"-t"参数相同,只在列表格式方面稍有差异。
-T 显示现行终端机下的所有程序。
-u<用户识别码> 此参数的效果和指定"-U"参数相同。
u 以用户为主的格式来显示程序状况。
-U<用户识别码> 列出属于该用户的程序的状况,也可使用用户名称来指定。
U<用户名称> 列出属于该用户的程序的状况。
v 采用虚拟内存的格式显示程序状况。
-V或V 显示版本信息。
-w或w 采用宽阔的格式来显示程序状况。
x 显示所有程序,不以终端机来区分。
X 采用旧式的Linux i386登陆格式显示程序状况。
-y 配合参数"-l"使用时,不显示F(flag)栏位,并以RSS栏位取代ADDR栏位 。
-<程序识别码> 此参数的效果和指定"p"参数相同。
--cols<每列字符数> 设置每列的最大字符数。
--columns<每列字符数> 此参数的效果和指定"--cols"参数相同。
--cumulative 此参数的效果和指定"S"参数相同。
--deselect 此参数的效果和指定"-N"参数相同。
--forest 此参数的效果和指定"f"参数相同。
--headers 重复显示标题列。
--help 在线帮助。
--info 显示排错信息。
--lines<显示列数> 设置显示画面的列数。
--no-headers 此参数的效果和指定"h"参数相同,只在列表格式方面稍有差异。
--group<群组名称> 此参数的效果和指定"-G"参数相同。
--Group<群组识别码> 此参数的效果和指定"-G"参数相同。
--pid<程序识别码> 此参数的效果和指定"-p"参数相同。
--rows<显示列数> 此参数的效果和指定"--lines"参数相同。
--sid<阶段作业> 此参数的效果和指定"-s"参数相同。
--tty<终端机编号> 此参数的效果和指定"-t"参数相同。
--user<用户名称> 此参数的效果和指定"-U"参数相同。
--User<用户识别码> 此参数的效果和指定"-U"参数相同。
--version 此参数的效果和指定"-V"参数相同。
--widty<每列字符数> 此参数的效果和指定"-cols"参数相同。
参数很多,不再细说
ps -aux 这个参数来列出所有的信息以提供自己检查程序的问题
USER:说明该程序是属于哪一个人的;
PID: 该程序的代号;
%CPU:代表该程序使用了多少CPU 资源;
%MEM:代表该程序使用了多少的RAM ;
VSZ, RSS:占去的ram 的大小( bytes );
TTY: 是否为登入者执行的程序?若为tty1-tty6 则为本机登入者,若为pts/?? 则为远程登入者
执行的程序
STAT:该程序的状态,( R )为可执行的,( S )为该程序正在睡眠中,就是没有执行了,( T )正在侦测
或者是停止了,( Z )僵尸程序,就是zombie 死掉的程序啦!需要以kill 除去!
START:该程序开始的日期;
TIME:该程序跑了多久的时间?
COMMAND:该程序的内容!
pstree(process status tree) 以树状图显示程序
pstree指令用ASCII字符显示树状结构,清楚地表达程序间的相互关系 --父进程和子进程
如果不指定程序识别码或用户名称,则会把系统启动时的第一个程序视为基层,
并显示之后的所有程序。若指定用户名称,便会以隶属该用户的第一个程序当作基层,
然后显示该用户的所有程序。
-a 显示每个程序的完整指令,包含路径,参数或是常驻服务的标示。
-c 不使用精简标示法。
-G 使用VT100终端机的列绘图字符。
-h 列出树状图时,特别标明现在执行的程序。
-H<程序识别码> 此参数的效果和指定"-h"参数类似,但特别标明指定的程序。
-l 采用长列格式显示树状图。
-n 用程序识别码排序。预设是以程序名称来排序。
-p 显示程序识别码。
-u 显示用户名称。
-U 使用UTF-8列绘图字符
参数不再细说
如果想要直接杀掉后台工作中的项目,自然需要知道该程序的PID 才行
但是由于预设是将该程序停止而已,不见得一定可以将该工作清除干净,
因此需要送出一个讯号,告诉系统你就是要砍掉该程序!
这个时候就使用kill –9 有 强制终止的意思
-1 :重新读取一次参数设定档(类似reload )
-2 :使用者中断该工作,类似[Ctrl]+c 来中断一个工作
-9 :立刻杀掉一个工作,不论该工作是否为僵尸程序
-15 :停止一个工作(这是默认值)
这几个命令还是经常会用到的,参数多看看,多用用
成功!!!!!!!
本文出自 “单身贵族” 博客,请务必保留此出处http://blog.chinaunix.net/uid-10915175-id-3209103.html
附件下载:
进程管理.zip