Linux Shell17 Mar 2025 | 6 分钟阅读 Shell 可以被定义为 Linux/GNU 或 Unix 等操作系统中的命令解释器。它是一个运行其他程序的程序。Shell 作为用户与 Unix/GNU Linux 系统的接口,为计算机的每个用户提供便利。因此,用户可以使用少量输入数据来执行各种工具/实用程序或命令。 Shell 完成运行程序后,会将结果通过屏幕发送给用户,屏幕是常见的输出设备。这就是它被称为“命令解释器”的原因。 Shell 不仅仅是一个命令解释器。此外,Shell 也是一种编程语言,具有完整的 编程语言 结构,例如函数、变量、循环、条件执行等等。 因此,GNU/Unix Linux Shell 比 Windows Shell 更强大。 广义上,Shell 分为两大类,如下所述: ![]() 图形 Shell这些 Shell 通过允许进行移动、关闭、调整大小和打开窗口以及在窗口之间切换焦点等操作,来指定基于图形用户界面 (GUI) 的程序的操作。Ubuntu OS 或 Windows OS 可以看作是一个很好的例子,它为用户提供了图形用户界面来与程序进行交互。许多用户不需要为所有操作输入任何命令。 命令行 Shell用户可以通过命令行界面访问各种 Shell。Windows 中的一个名为命令提示符的独特程序,或者 macOS/Linux 中的终端,用于输入人类可理解的命令,如“ls”、“cat”等,然后执行。结果随后在终端上显示给用户。 对于许多初学者来说,在命令行 Shell 上工作很复杂,因为很难记住多个命令。命令行 Shell 非常强大,它允许用户将命令存储在文件中并一起运行。这样,重复性操作就可以轻松自动化。通常,这些文件在 macOS/Linux 系统中称为 Shell 脚本,在 Windows 中称为批处理文件。 有几种类型的 Shell,讨论如下: ![]() Bash Shell在 bash Shell 中,bash 指的是 Bourne Again Shell。它是当今许多 Linux 发行版的默认 Shell。它是一个 sh 兼容的 Shell。它也可以安装在 Windows OS 上。它在 sh 的基础上提供了交互式和编程使用的实用改进,包括:
Csh/Tcsh ShellTcsh 是一个升级版的 C Shell。此 Shell 可用作 Shell 脚本命令处理器和交互式登录 Shell。
Ksh ShellKsh 是Korn shell 的缩写。它由David G. Korn 开发和设计。Ksh Shell 是一种高级、强大、完整的编程语言,它也是一种交互式命令语言,就像许多其他 GNU/Unix Linux Shell 一样。C Shell 的用法和语法与 C 编程语言非常相似。 Zsh ShellZsh Shell 被开发成具有交互性,并结合了其他 GNU/Unix Linux Shell(如 ksh、tcsh 和 bash)的多种方面。此外,POSIX Shell 标准规范是基于 Korn Shell 的。
所有这些 Shell 都执行类似的任务,但使用不同的命令并提供不同的内置函数。 鱼类Fish 的意思是“friendly interactive shell”(友好交互式 Shell)。它于 2005 年生产。Fish Shell 被开发成与其他 Shell 一样完全用户友好和交互。它包含一些优秀的特性,如下所述:
Shell 提示符它被称为命令提示符,由 Shell 发出。当提示符显示时,我们可以键入任何 命令。 下面是一个常见的日期命令示例,显示当前的时间和日期: 我们还可以使用 PS1(环境变量)来自定义我们的命令提示符。 Shell 脚本Shell 脚本的基本概念是命令列表。一个好的 Shell 脚本应包含以 # 符号开头的注释。 Shell 函数和脚本是解释执行的。这意味着它们不会被编译。 还有条件测试,例如值 Y 大于值 Z,循环允许我们处理大量数据,文件用于存储和读取数据,变量用于存储和读取数据,这些脚本可能包含函数。 Shell 通常是交互式的,这意味着它们接收用户的命令作为输入并执行它们。尽管如此,有时我们希望例行运行一组命令,因此,我们必须一直输入命令到终端。 Shell 脚本包含与其他编程语言类似的语法。如果您之前有 C/C++、Python 等编程语言的经验,那么开始使用它会非常容易。Shell 脚本结合了以下组件: 函数
Shell 脚本的必要性编写这些 Shell 脚本有几个原因:
Shell 脚本的优点
Shell 脚本的缺点
脚本示例假设我们创建一个 test.sh 脚本。在我们脚本中包含任何其他内容之前,我们需要通知系统脚本已启动。 注意:每个脚本都将有一个 .sh 扩展名。这可以通过 shebang 结构来实现。 例如 它向系统表明,后面的命令将由 Bourne Shell 运行。它被称为 shebang,因为符号 # 被称为 hash(哈希),符号 ! 被称为 bang(惊叹号)。 要创建包含这些命令的脚本,我们将 shebang 结构放在第一行,然后添加任何命令。 Shell 中的注释我们可以在脚本中包含如下注释: 使脚本可执行并保存上述内容。 现在,Shell 脚本已准备好运行。 执行后,我们将获得如下结果: 注意:要执行当前目录中的程序,我们可以使用 ./program_name。扩展 Shell 脚本Shell 脚本包含一些必需的结构,这些结构定义了 Shell 平台何时执行以及执行什么。大多数脚本比上述脚本更复杂。 毕竟,Shell 是一种真正的编程语言,它拥有完整的控制结构、变量等。尽管如此,无论脚本有多复杂,它仍然只是按顺序执行的命令列表。 以下脚本使用 read 命令通过键盘获取输入,并将其赋值给变量 PERSON,最后将其打印到 STDOUT。 下一主题Linux 含义 |
我们请求您订阅我们的新闻通讯以获取最新更新。