Linux shell编程 13 ---- 子Shell与进程处理

    Linux是一种用户控制的多作业操作系统,系统允许多个系统用户同时提交作业,而一个系统用户又可能用多个Shell登录,每个系统用户可以用一个Shell提交多个作业

 

 1 子Shell

    1 父子Shell是相对的,它描述了两个Shell进程的fork关系,父Shell指在控制终端或窗口给出提示符的进程,子Shell是由父Shell创建的进程,在Linux中,只有一个函数可以创建子进程,那就是fork函数

    

    2 圆括号结构能够强制将其中的命令运行在子Shell中,它的基本格式为

       (command1 command2 command....n)

       上述结构表示圆括号内的n条命令在子Shell中运行

  

    3 子Shell能够从父Shell继承得来的属性如下

       1 当前工作目录

       2 环境变量

       3 标准输入,标准输出和标准错误输出

       4 忽略的信号

       5 除了环境变量和.bashrc文件中定义变量之外的Shell变量

       6 未被忽略的信号处理

 2 进程处理

    1 进程和作业是有区别的,一个正在执行的进程称为作业,一个作业可以包含多个进程。用户提交作业到操作系统,作业的完成可能依赖于启动多个进程。因此简单的说,作业是用户层面的概念,而进程是操作系统层面的概念

    

    2 进程是针对整个Linux系统而言的,作业是针对Shell而言的。作业有两种运行方式,前台运行和后台运行

    

    3 前台运行的作业指能够控制当前终端或窗口,且能接收用户的输入;而后台的运行的作业则不在当前激活的终端或窗口中运行,是在用户看不见的情况下运行的

 

    4 Shell中内置命令fg能够把后台的作业放到前台运行,如果没有带参数的fg命令就是将最近提交的那个后台作业放置到前台运行

    5 指定作业的方法及其意义

          参数                 意义

           %n            n为后台作业的作业号

           %string     命令以string字符串开始的后台作业

           %?string   命令包含string字符串的后台作业

           %+或%%  最近提交的后台作业

           %-             最近第二个提交的后台作业

    6 Shell内置的命令jobs是用于显示所有后台运行的作业

    

 3 信号
    1 向进程发送信号大多通过"Crtl"键加上一些功能键来实现的

    

    2 Ctrl组合键,信号类型及其意义

        组合键               信号类型                                                意义

        Ctrl+C        INT信号,即interupt信号                   停止当前运行的作业

        Ctrl+Z        TSTP信号,即terminal stop信号        使当前运行的作业暂时停止(转入阻塞态)

        Ctrl+\         QUIT信号                                           Ctrl+C的强化版本,当Ctrl+C无法停止作业时,使用此组合键

        Ctrl+Y        TSTP信号,即terminal stop信号       当进程从终端读取输入数据时,暂时停止该进程

时间: 2024-10-22 04:47:07

Linux shell编程 13 ---- 子Shell与进程处理的相关文章

Shell编程学习:Shell子程序结构和函数

函数可以简化代码,实现脚本代码重用.一次定义可以多次调用.结构化编程,增强可读性,可以将功能定义为多个函数,然后保存在一个文件中,然后在~/bashrc或者在命令行使用source(.)调用这个文件.加快运行速度 1.定义函数的方法(传统风格) function name{ } C语言风格: name(){ } 推荐使用C语言风格,兼容性好,可以在csh/tsch中使用 函数中return和exit的区别,return退出执行,返回到主程序函数之后继续执行 exit直接退出当前脚本. shell

Linux shell编程 5 ---- 利用shell脚本遍历某个目录下的所有文件

 1 我们都知道shell脚本能够做很多的事,今天刚好一个队友要我写个脚本求某个目录下所有java文件的行数总和  2 ok,为了方便,我把这个目录放到了当前的家目录下,路径为/home/chenguolin/src  3 我在家目录下建了一个s.sh的脚本,代码如下,等等来分析代码的意思 #!/bin/bash function ergodic(){ for file in ` ls $1 ` do if [ -d $1"/"$file ] then ergodic $1"

shell编程学习:shell基础和文件

1shell就是用户和内核进行交互操作的一种接口, 2shell可以运行的命令包括linux命令,内置命令,实用程序,用户程序,shell脚本 3shell元字符: 4.获取命令帮助:man,info.--help 5.文件类型有普通文件(-),目录(d),符号链接文件(l),字符设备文件(c),块设备文件(b),套接字(s),命名管道(p),块设备文件就是计算机外围设备文件,让用户可以操作设备的时候和操作普通文件一样. 6,常用文件和目录操作命令: ls ,ls -al,ls -R递归列出所有

Shell编程指南_linux shell

基础知识 shell执行方式   sh xx.sh (文件须有r权限)  ||  ./xx.sh (文件须有x权限) 注:sh xx.sh方式比较安全 文件名后缀 .sh shell内容开头 #!/bin/bash || #!/bin/sh || #!/bin/csh || #!/bin/ksh 注:#!/bin/bash 使用比较多 退出  exit 0 变量赋值与使用 不需要定义即可直接使用  注:变量赋值时=号两端不能有空格 以$变量名或${变量名}访问变量内容 流程控制 判断  注:确保

跟老男孩学Linux运维:Shell编程实战.

Linux/Unix技术丛书 跟老男孩学Linux运维: Shell编程实战 老男孩 著 图书在版编目(CIP)数据 跟老男孩学Linux运维:Shell编程实战 / 老男孩著. -北京:机械工业出版社,2017.1 (Linux/Unix技术丛书) ISBN 978-7-111-55607-7 I. 跟- II. 老- III. Linux操作系统 IV. TP316.85 中国版本图书馆CIP数据核字(2016)第313248号 跟老男孩学Linux运维:Shell编程实战 出版发行:机械工

跟老男孩学Linux运维:Shell编程实战导读

前言 为什么要写这本书 目前全球正处于互联网+的时代,越来越多的传统企业都在通过互联网提供产品和服务,比如,互联网+教育.互联网+金融.互联网+电商.互联网+出租车.互联网+保险等,可以看到,几乎所有的产品.服务都能在网上找到.而支撑互联网的幕后英雄其实就是Linux(包括移动互联网在内),掌握Linux运维技术已经成为每一个IT技术人员的必备技能! 互联网+的时代下企业的网站流量呈爆炸式增长,如果你是运维人员,很可能要面对几十台.几百台.上千台甚至上万台的服务器设备,而对于企业来说,如何提高I

Linux系统中bash shell编程的10个基础问题讲解_linux shell

第1问:为何叫做shell?在介绍 shell 是什么东西之前,不妨让我们重新审视使用者与电脑的关系.我们知道电脑的运作不能离开硬件,但使用者却无法直接对硬件作驱动,硬件的驱动只能透过一个称为"操作系统(Operating System)"的软件来控管,事实上,我们每天所谈的linux,严格来说只是一个操作系统,我们称之为"核心(kernel)".然而,从使用者的角度来说,使用者也没办法直接操作kernel,而是透过kernel的"外壳"程序,也

跟老男孩学Linux运维:Shell编程实战1.2 学好Shell编程所需的基础知识

1.2 学好Shell编程所需的基础知识 本节首先来探讨一下在学习Shell编程之前需要掌握的基础知识,需要说明的是,并不是必须具备这些基础知识才可以学习Shell编程,而是,如果具备了这些基础知识,那么就可以把Shell编程学得更好,领悟得更深.如果只是想简单地了解Shell脚本语言,那么就无须掌握太多的系统基础知识,只需要会一些简单的命令行操作即可. 学好Shell编程并通过Shell脚本轻松地实现自动化管理企业生产系统的必备基础如下: 1)能够熟练使用vim编辑器,熟悉SSH终端及".vi

Shell编程基础篇-上

1.1 前言 1.1.1 为什么学Shell Shell脚本语言是实现Linux/UNIX系统管理及自动化运维所必备的重要工具, Linux/UNIX系统的底层及基础应用软件的核心大都涉及Shell脚本的内容.每一个合格 的Linux系统管理员或运维工程师,都需要能够熟练地编写Shell脚本语言,并能够阅 读系统及各类软件附带的Shell脚本内容.只有这样才能提升运维人员的工作效率,适 应曰益复杂的工作环境,减少不必要的重复工作,从而为个人的职场发展奠定较好的基础 1.1.2 什么是shell