• 了解shell


    系统启动shell程序取决于用户id配置,通过 /etc/passwd  查看

     shell文件存放在 /bin/bash中(是一个可执行文件)

     由于系统默认为 bash shell,但也可以自己启动和退出shell

    •  /bin/bash    输入即可开启 bash shell
    • exit               输入即可退出 shell

    shell的父子关系;

    因为运行系统后  shell会运行,可以使用 ps-f 来查看进程

    一共有两个进程 ,一个为 -bash进程,一个为ps-f 指令的进程,输入bush 然后再输入 ps-f

    PID为进程号  PPID为父进程号 

    出现两个bash的解释:输入bash后生成一个子shell,图中可以看出第二行的bash的父进程为-bush

     

    多次输入bash   就会继承多次bash

    孤儿进程:一个父进程退出,而它的一个或多个子进程还在运行,那么这些子进程将成为孤儿进程。

    僵尸进程:一个进程使用fork创建子进程,如果子进程退出,而父进程没有调用wait或waitp获取子进程的状态信息,那么子进程的进程描符仍然保存在系统中,这种进程称为死进程。

    孤儿进程的处理方式:被init进程(进程号为1)所收养,并由init进程对它们完成状态收集工作。(不会使资源耗光)

    僵尸进程会占用系统资源,可能会使系统不会产生新进程。

     

    进程列表:

    进程列表是一种命令分组( command grouping )。另一种命令分组是将命令放入花括号中,
    并在命令列表尾部加上分号(;)。语法为 { command; } 。使用花括号进行命令分组并不会像进程列表那样创建出子shell

    例子:

       pwd ;ls ;cd /etc/passwd         (不会生成子shell)

    进程列表:(pwd ;ls ;cd /etc/passwd)(会生成子shell)

     查看是否存在子shell: echo $BASH_SUBSHELL

    • 0 为不含有子shell
    • 》=1 则含有子shell

    sleep 休眠(不能输入指令)

    sleep  x    (休眠x秒)

    后台模式:

    在命令后面加&:把命令置入后台模式,执行后会给出进程号

     jobs  查看后台作业休息

    jobs [选项] 

    -l显示出命令的PID

     

     将进程列表置入后台:

    协程:

    协程可以同时做两件事。它在后台生成一个子shell,并在这个子shell中执行命令。

    除了会创建子shell之外,协程基本上就是将命令置入后台模式。

    • coproc  命令
    • coproc  协程名称   {   命令; }    给协程修改名称

    修改名称格式:

    1. {   前后要有空格       名  {   命令
    2. 命令需要带  ;
    3. 需要有空格

    例如:coproc    my_coproc  {  sleep 500;  }

    shell的内建命令

    外部命令

    外部命令也称为文件系统命令,并不是 bash shell程序的一部分,外部命令存放在 /bin或/sbin文件中,执行外部命令,会生成一个子进程称为 衍生。

    当进程必须执行衍生操作时,它需要花费时间和精力来设置新子进程的环境。所以说,外部
    命令多少还是有代价的。

    内建命令

    内建命令不需要使用子进程来执行,已经和shell编译成了一 体,作为shell工具的组成部分存在。不需要借助外部程序文件来运行。

    type  查看是否内建

    type  -a    查看是否内建并显示文件位置

     

    alias命令

    是另一个shell的内建命令。命令别名允许你为常用的命令(及其参数)创建另一个名称

  • 相关阅读:
    【Python】queue模块Queue对象
    八股总结(六):Android基础:四大组件与UI控件
    七月论文审稿GPT第3.2版和第3.5版:通过paper-review数据集分别微调Mistral、gemma
    AWS S3
    分享一套GitHub上stars 10000+的Java面试题(含解析)
    c++学习从小白到高级工程师实战02:opencv的活学活用
    读书笔记《Spring Boot+Vue全栈开发实战》(下)
    ssm+vue+elementUI 医药进出口交易系统-#毕业设计
    TypeScripe笔记:any、unknown、never、void、null 和 undefined 及其比较
    Linux云服务环境安装-JDK篇
  • 原文地址:https://blog.csdn.net/qq_45303986/article/details/126702696