设为首页收藏本站
查看: 1869|回复: 0

[脚本语言] 5.2 shell的父子关系

[复制链接]
  • TA的每日心情
    无聊
    2024-1-15 21:13
  • 签到天数: 907 天

    [LV.10]以坛为家III

    发表于 2023-5-13 22:43:10 | 显示全部楼层 |阅读模式
    用于登录某个虚拟控制器终端或在GUI中运行终端仿真器时所启动的默认的交互shell,是一个父shell。
    在CLI提示符后输入/bin/bash命令或其他等效的bash命令时,会创建一个新的shell程序,这个shell程序被称为子shell(child shell)。子shell也拥有CLI提示符,同样会等待命令输入。
    当输入bash、生成子shell的时候,是看不到任何相关信息的,因此需要另一条命令帮助理清这一切。

    第一次使用ps -f的时候,显示出了两个进程。其中一个进程的ID是2994(第二列),运行的是bash shell程序(最有一列)。另一个进程(进程ID17024)对应的是命令ps -f。
    输入命令bash之后,一个子shell就出现了,第二个ps -f是在子shell中执行的。可以从显示结果中看到有两个bash shell程序在运行,第一个bash shell程序,也就是父shell进程,其原始进程ID是2994.第二个bash shell程序,即子shell进程,其PID是17254指明了这个父shell进程就是该子shell的父进程
    在生成子shell进程时,只有部分父进程的环境被复制到子shell环境中。这会对包括变量在内的一些东西造成影响。
    子shell(child shell,也叫subshell)可以从父shell中创建,也可以从另一个子shell中创建。

    在上面的例子中,bash命令被输入了三次。这实际上创建了三个子shell。ps --forest命令展示了这些子shell间的嵌套结构。
    ps -f命令也能够表现子shell的嵌套关系,因为它能够通过PPID列显示出谁是谁的父进程。

    bash shell程序可使用命令行参数修改shell启动方式

    可以输入man shell获得关于bash命令的更多帮助信息,了解更多的命令行参数。bash --help命令也会提供一些额外的帮助
    可以利用exit命令退出子shell
    exit命令不仅能退出shell,还能用来登出当前的虚拟控制台或终端仿真器软件,只需要在父shell中输入exit,就能够退出CLI

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?注册

    x
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    红盟社区--红客联盟 

    Processed in 0.059255 second(s), 22 queries.

    站点统计| 举报| Archiver| 手机版| 黑屋 |   

    备案号:冀ICP备20006029号-1 Powered by HUC © 2001-2021 Comsenz Inc.

    手机扫我进入移动触屏客户端

    关注我们可获取更多热点资讯

    Honor accompaniments. theme macfee

    快速回复 返回顶部 返回列表