查询和管理进程(1)
        在linux系统中:触发任何一个事件,系统都会定义为一个进程,并且给这个进程一个ID号,称为PID,同时根据启动这个进程的用户与相关属性关系,给这个PID一组有效权限设置,从此以后,这个PID能在系统上进行的动作就与PID的权限有关了。
       那么如何产生进程ID呢?“执行一个程序或命令”,就可以触发一个事件而获取PID。
进程除了有PID以外还有其它组成部分,有代码段(用来存放程序的执行代码,该代码是二进制文件)、变量(存储执行程序中的变量)、库文件、被操作的文件内容。由以上我们可以看出进程其实就是给程序一块可以执行的土壤。
          子进程和父进程
    我们以一个用户登录系统时,会获得一个进程号即PID,当我们登录系统后,会获取一个bash的Shell,然后我们用它去执这个bash提供的借口去执行另一个命令,例如 ls或/user/bin等,那些另外执行的命令也会被触发成为PID,那个PID就是子进程而在bash环境下执行的就是父进程。
          作业管理
    作业管理是在bash环境下使用的,也就是说,当我们登录系统获取bash shell之后,在单一终端界面下,同时管理多个作业。这里需要注意的是:管理作业时,其实每个作业都是当前bash的子程序,即彼此之间是有关联的。我们无法由作业管理的方式有tty1的环境去管理tty2的bash。
          前台与后台
    前台:您可以控制的作业成为前台作业(foreground)
     后台:在内存可以自行运行的作业,您无法直接控制它,除非以bg/fg等命令将该作业调出来。
          作业管理的相关命令
  & :在命令后面加上&符号,可以将命令放到后台运行。
           例如  ls &   需要注意的是后台作业不会输出到界面  它会把操作结果以邮件的方式发送到发起这个命令的用户的邮箱里,我们可以通过mail命令去查看它。
  ctrl+z :将当前作业放到后台暂停。例如 但我们在用Vim编辑一文件时,发现有一需要在编辑器中用的文件不知道放在了那里,此时我们是否需要退出编辑器呢?不需要!我们只要按ctrl+z即可。这样就可以将编辑放到后台中等待了 。
            jobs【-lrs】:观察当前后台作业状态
                    -l : 除了列出作业号外,同时列出PID
                    -r :仅列出后台正在运行的作业
                     -s :仅列出后台正在暂停的作业
注释:加上-l参数,在输出信息中,如果在命令的在作业的序列号前有+ — 号时 +表示默认的作业
           fg : 将后台作业拿到前台
     fg %jobnumber
         %jobnumber 作业的号码。注意%可有可无,不加%jobnumber表示取出默认的作业。
  bg : 让作业在后台运行
      用法和fg一样。注释:在后台停止运行的作业启动后使用jobs命令查看会发现改作业后会出现&符号。
          kill : 管理后台作业
    -l :列出当前kill能够使用的信号。
     signal :表示后面的作业什么指示用man 7 singal 可知。 例如 kill -SIGTERM %1
      -1 :重新读取一次参数的设置文件
      -2 :
      -9 :立即强制删除一个作业
      -15 :以正常的程序方式终止一项作业。注意与-9的区别。
 与之相关的还有killall pkill.
              ps : 列出系统中的进程信息。
      o : 只显示选定字段 例如 ps axo pid
      a : 显示与终端相关的进程
      u :显示由哪个用户发起的进程,后跟用户名
      x :与a相反
注释:以上选项均不加 - 。ax组合使显示系统的所有进程信息。
      pgrep 
       pidof
       nice 修改进程的优先级  
                如nice -n 5 commond     5为修改后的优先级别,且该情况用于命令启动前,如果是在命令启动后则 使用
       renice   如renice 5  -p PID
                                            变量
   set  查看所有变量
   env或printenv  查看全局变量
  echo $VARIABLE 查看某一个变量
   本地变量的声明  VARIABLE=VALUE
    环境变量的声明  export  VARIABLE=VALUE  或  declare -x VARIABLE