基本介绍¶
什么是 Shell?
Shell 被称为“命令接口”或“命令解释器”。它为用户提供了一个系统级别的接口程序,用于向 Linux 内核发送请求来运行程序。
在介绍操作系统时,我们提到过这样一句话:
拦截“对外部设备的访问”。软件很少能直接访问硬件(除非是出于特定需求的显卡)。
最底层是 Linux 内核管理的硬件设备。当人们通过 SSH 远程连接到服务器并输入各种命令时,Linux 内核并不认识这些单词或字母。众所周知,计算机可以识别 0 和 1 等机器语言。为了完成人机语言的转换,操作系统中引入了一个类似于现实生活中“翻译官”的双向翻译官,即 Shell。
它的工作原理如下:
A国人 <<--->> Shell <<--->> B国人
从用户角度来看,Shell 是一个用户与计算机交互的界面,现代操作系统的交互界面主要包括:
- 命令行交互界面。例如,RockyLinux 和 Debian 等操作系统作为服务器角色。
- 图形交互界面。例如,用于家庭和办公环境的 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