什么是Bash?什么是shell?

什么是Bash?什么是shell?
图:shell中的一种bash的变种dash

1.1什么是Bash?

Bash是GNU操作系统的shell程序或命令语言解释器,名称是“ Bourne-Again SHell”,是对当前Unix shell的直接作者斯蒂芬·伯恩(Stephen Bourne)的双关语sh(又称 Bourne SH,以下简称sh),sh出现在Unix 的第七版贝尔实验室研究版中。

Bash在很大程度上与sh兼容,与ksh(Korn shell)和csh(C shell)兼容并合并了有用的功能。它旨在成为IEEE POSIX 规范(IEEE标准1003.1)的IEEE POSIX外壳和工具部分的一致实现。它提供了交互式和编程使用方面的功能改进。

虽然GNU操作系统提供了其他shell,包括csh,但Bash是默认的shell。像其他GNU软件一样,Bash具有很好的可移植性。当前,它几乎可以在Unix的每个版本以及其他一些操作系统上运行-MS-DOS,OS / 2和Windows平台存在独立支持的端口。

1.2什么是shell?

从根本上说,shell只是执行命令的宏处理器。术语宏处理器是指将文本和符号扩展以创建更大的表达式的功能。

Unix shell既是命令解释器又是编程语言。作为命令解释器,shell为丰富的GNU实用程序集提供了用户界面。作为编程语言功能允许组合这些实用程序。包含命令的文件可以创建,也可以成为命令本身。这些新命令的状态与目录中的系统命令相同,例如/bin,允许用户或组建立自定义环境以自动化其常见任务。

shell可以交互使用或非交互使用。在交互模式下,它们接受键盘输入的输入。当以非交互方式执行时,shell执行从文件读取的命令。

Shell允许同步和异步执行GNU命令。在接受更多输入之前,shell等待同步命令完成。异步命令继续与外壳程序并行执行,同时读取和执行其他命令。所述重定向构建体允许这些命令的输入和输出的精细控制。而且,外壳程序允许控制命令环境的内容。

Shell还提供了一小组内置命令(内建命令),这些命令实现了通过单独的实用程序无法获得或不方便获得的功能。例如cdbreakcontinue,和 exec不能执行外壳的,因为它们直接操纵shell本身。historygetoptskill,或pwd 内建命令,除其他外,可以在单独的事业中实现,但它们作为内建命令使用起来更加方便。后续各节将介绍所有的shell内建函数。

尽管执行命令是必不可少的,但是大多数Shell的功能(和复杂性)都归功于它们的嵌入式编程语言。像任何高级语言一样,外壳程序提供变量,流控制构造,引用和函数。

Shell提供了专门为交互使用而设计的功能,而不是扩展编程语言。这些交互式功能包括作业控制,命令行编辑,命令历史记录和别名。

1.3注意点:

shell与shell脚本语言不要混淆。

作为外壳程序或命令语言解释器,shell为丰富的GNU实用程序集提供了用户界面。

作为编程语言,类似于php,java语言。

原创文章,作者:huoxiaoqiang,如若转载,请注明出处:https://www.huoxiaoqiang.com/experience/ose/1060.html

(0)
上一篇 2020年2月18日 18:12
下一篇 2020年2月18日 19:58

相关推荐

  • Linux系统su和sudo命令的区别

    su:当前用户申请切换到root用户,需输入root密码,直到手动明确退出登录。有些Linux发行版,例如ubuntu,默认没有设置root用户的密码,所以需要我们先使用sudo passwd root设置root用户密码。su的缺点就是必须要先告知普通用户root的密码,这是很不安全的。 sudo:当前用户暂时申请r…

    操作系统经验 2021年7月11日
    01850
  • update-grub和grub-mkconfig的区别

    update-grub和grub-mkconfig的作用都是一样的。 update-grub是Debian系Linux操作系统专用的,其他Linux操作系统不一定可以使用。 grub-mkconfig是Linux操作系统都通用的命令。

    操作系统经验 2021年2月27日
    01.3K0
  • 如何查看当前系统的默认shell?

    当前linux系统可用的shell都记录在/etc/shells文件中。 cat /etc/shells当前linux系统可用的shell: 系统支持的shell有那么多,sh,bash,rbash,dash,等,如何知道当前系统的默认shell? 可见默认shell为bash。几乎所有linux发行版本的默认shel…

    操作系统经验 2020年7月18日
    01.3K0

发表评论

登录后才能评论