这次主要说一下进程方面的管理

 
先说一下图形模式与文字模式的切换方式
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 :停止一个工作(这是默认值)
 
 
 
 
这几个命令还是经常会用到的,参数多看看,多用用
 
 
 
成功!!!!!!!