终端与shell的关系

终端

  1. 终端是用户与计算机系统进行输入输出的命令行界面
    1.1 早期的终端是物理终端(如电传打字机),用来直接与计算机系统交互
    1.2 现在终端是软件终端(也叫终端仿真器,因为真正的终端其实是物理终端),它通过接收键盘输入与计算机系统进行交互
  2. 它本质就是个应用程序,当我们打开终端时就是运行这个程序

shell

  1. shell是一个命令解释器,本质也是一个应用程序,它为用户提供一个命令行接口来与操作系统交互
  2. shell会从终端的接收输入,然后根据环境变量寻找程序执行,并把执行结果返回给终端。
  3. 用户通过shell来调用Linux内核;
    在这里插入图片描述

终端与shell的关系:终端为Shell提供工作环境

  1. 当你运行一个终端时,操作系统会为该终端启动一个新的进程(因为终端就是一个应用程序,运行一个应用程序要用一个进程);终端进程随后会再开个子进程运行一个shell命令解释器。
  2. Shell进程在终端进程环境中运行
    1. 意味着Shell进程是终端进程的直接子进程,Shell继承着终端进程的环境变量、目录状态和权限设置等。这确保了用户在Shell中执行任何命令都是在终端提供的环境中运行的。
  3. 终端和shell的输入输出重定向:设置shell的标准输入(stdin)、标准输出(stdout)和标准错误(stderr)与终端本身关联
    1. 终端进程控制着与用户的直接交互(键盘输入和屏幕输出),而终端的输入(标准输入stdin)会重定向给shell进程的标准输入,也就是用户在终端中输入的命令会传递给shell。
      1. 也包括信号输入处理:例如当用户在终端输入通过特定组合键Ctrl+C时,终端会向shell发送一个中断信号(SIGINT),Shell则会终止当前正在执行的命令。
    2. Shell进程处理这些输入,执行相应的命令,然后把输出 重定向到终端显示(终端的标准输出和标准错误),供用户看

总结:
所以终端并不等于shell,终端只是运行了shell应用程序,而shell会接收 用户输入到终端的指令 并执行相应的程序,最终返回结果 给终端进行显示。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值