跳至内容

基本介绍

什么是 Shell?

Shell 被称为命令接口命令解释器。它为用户提供一个系统级接口程序,供用户向 Linux 内核发送请求以运行程序。

在介绍操作系统时,我们提到了以下句子

拦截对外围设备的访问。软件很少能直接访问硬件(除了出于特定需求的显卡)。

Shell01

底层是受 Linux 内核管理的硬件设备。当人们通过 SSH 远程连接到服务器并输入各种命令时,Linux 内核无法识别这些词语或字母。众所周知,计算机可以识别 0 和 1 等机器语言。为了完成人和机器语言的转换,操作系统引入了类似现实生活中双向翻译员的角色,即 Shell。

它的工作原理如下

来自 A 国的人 <<--->> Shell <<--->> 来自 B 国的人

从用户的角度来看,Shell 是一个人机交互界面,现代操作系统的交互界面主要包括

  • 命令行交互界面。例如,像RockyLinuxDebian这样的操作系统充当服务器角色。
  • 图形交互界面。例如,用于家庭和办公环境的Windows 11操作系统。
  • 命令行和图形混合交互界面。例如,带有图形环境的mintUbuntu,带有 PowerShell 的Windows Server等。

Shell 分类

  • Bourne Shell - 这个系列包括但不限于
    • sh (Bourne Shell, /usr/bin/sh)。它由 Stephen Bourne 于 1977 年在 Bell LABS 开发,并在 V7 UNIX 上使用
    • ksh (Korn Shell, /usr/bin/ksh)
    • Bash (GNU Bourne-Again Shell, /bin/bash) - 出生于 1987 年,它是 GNU 项目的产品。大多数 GNU/Linux 操作系统使用 bash 作为默认 shell
    • psh (POSIX Shell)
    • zsh (Z-shell)
  • C Shell - 这个系列包括但不限于
    • csh
    • tcsh
  • Power Shell

作者:田思力

贡献者:Ganna Zhyrnova