跳至内容

基本介绍

什么是 Shell?

Shell 被称为“命令接口”或“命令解释器”。它为用户提供了一个系统级别的接口程序,用于向 Linux 内核发送请求来运行程序。

在介绍操作系统时,我们提到过这样一句话:

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

Shell01

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

它的工作原理如下:

A国人 <<--->> Shell <<--->> B国人

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

  • 命令行交互界面。例如,RockyLinuxDebian 等操作系统作为服务器角色。
  • 图形交互界面。例如,用于家庭和办公环境的 Windows 11 操作系统。
  • 命令行和图形混合交互界面。例如,mint、带有图形环境的 Ubuntu、带有 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