Bash、sh 和 Shell都弄混了?

ops/2024/10/30 5:40:27/

在Linux和Unix系统中,BashshShell 都与命令行解释器相关,但它们各自的含义和作用略有不同。以下是它们之间的关系和区别:

Shell

Shell 是一个通用术语,指的是操作系统中负责解释和执行用户命令的程序。它是用户与操作系统核心(Kernel)之间的接口。用户通过Shell来执行命令、启动程序、管理文件等。Shell可以是图形化的,也可以是文本模式的。在Linux和Unix系统中,Shell通常指的是一种命令行接口(CLI),用户通过输入命令来操作系统。

Shell有多种实现,常见的包括:

  • sh(Bourne Shell)
  • bash(Bourne Again Shell)
  • csh(C Shell)
  • ksh(Korn Shell)
  • zsh 等

sh(Bourne Shell)

sh 是早期Unix系统中的一种Shell,全称为 Bourne Shell,由贝尔实验室的Stephen Bourne在1979年开发。它是最早的标准Shell,也是许多Shell的基础。sh 提供了基本的Shell脚本功能,并成为了POSIX标准的一个基础,因此在许多Unix系统中,sh 常被认为是Shell脚本的通用标准。

sh 通常被用于编写脚本,尤其是希望在不同Unix系统上保持兼容性的脚本,因为它的功能简单而通用。

Bash(Bourne Again Shell)

BashBourne Again Shell 的缩写,它是 GNU 项目在Bourne Shell(sh)的基础上开发的改进版。Bash继承了sh的所有功能,并增加了许多增强功能,例如:

  • 命令历史记录:可以使用上下箭头键来翻阅之前输入的命令。
  • 命令补全:可以用Tab键自动补全命令和文件名。
  • 更强大的脚本功能:支持更多的数据结构和语法功能,如数组等。
  • 丰富的内建命令 和 更友好的错误提示

Bash 是目前Linux系统中默认的Shell,几乎所有的Linux发行版都预装了Bash。大多数Linux用户默认使用Bash作为命令行界面,因此Bash也是学习Shell编程的常见工具。

sh 和 Bash 的关系

  • 在很多系统中,/bin/sh 实际上是指向 /bin/bash 或其他兼容 sh 语法的Shell。因此在这种系统上,执行 sh 命令实际上是运行了 Bash 兼容模式,虽然它会禁用一些Bash特性以保持与标准 sh 的兼容性。
  • 兼容性:因为 sh 是POSIX标准Shell的基础,使用 sh 编写的脚本更具跨平台性。但Bash提供了更多的功能和语法,因此在编写复杂脚本时通常选择Bash。

总结一下~

  • Shell:一种命令行解释器,包含了各种类型(如 sh、bash、csh 等)。
  • sh(Bourne Shell):早期的标准Shell,功能简单,适合编写兼容性要求高的脚本。
  • Bash(Bourne Again Shell):sh的增强版,是Linux系统中的默认Shell,提供了更丰富的功能和命令。

在Linux中,用户通常使用的是 Bash,而 sh 通常用于保持与旧脚本和其他Unix系统的兼容性。


http://www.ppmy.cn/ops/129503.html

相关文章

用网页制作安装包——解密微软那些使用网页的exe

我们见到的很多exe软件其实都是html做的ui 一、微软visual studio 安装解析 打开html文件 二、使用网页制作的软件很多 可牛,微软开发软件 win98桌面背景 常见的文件格式hta 三、hta 网页应用程序 HTA属性 播报 编辑 HTA与普通的网页结构差不多&#xff0c…

Apache POI—读写Office格式文件

Apache POI 是一个开源的 Java 库,用于读写 Microsoft Office 格式的文件,主要包括 Excel、Word 和 PowerPoint 等文档。POI 对 Excel 文件的支持最为完善,通过 POI 可以方便地进行 Excel 文件的创建、编辑、读取等操作。 1. Apache POI 简介…

【Java SpringIOC与ID随感录】 基于 XML 的 Bean 装配

前言 我们知道了 Spring 是⼀个开源框架,他让我们的开发更加简单。他⽀持⼴泛的应⽤场 景,有着活跃⽽庞⼤的社区,这也是 Spring 能够⻓久不衰的原因。 这里来举个例子: 开发业务逻辑层一般是:控制层、业务逻辑层、持久…

赛博威携手百度智能云,开启数字营销新未来

近日,赛博威集团华东大区苏州百捷信息科技(以下简称“赛博威”)与百度智能云正式达成解决方案销售伙伴关系,双方将在人工智能、大数据与云计算领域深度合作,为客户提供更全面、更高效、更智能的数字营销解决方案&#…

Vue3使用AntV | X6绘制流程图:开箱即用

x6官方地址X6图编辑引擎 | AntV 官方文档仔细地介绍了很多丰富的功能,这里的demo可以满足基本的使用,具体拓展还需要仔细看文档内容 先上效果图 1、安装 通过 npm 或 yarn 命令安装 X6。 # npm npm install antv/x6 --save# yarn yarn add antv/x6 …

[瑞吉外卖]-09数据库优化

MySql主从复制 介绍 当前项目中, 数据库的读和写都由一台数据库承担,压力大, 数据库服务器磁盘损坏则数据丢失,造成单点故障 MySQL主从复制是一个异步的复制过程,底层是基于Mysql数据库自带的二进制日志功能。 就是一台或多台MySOL数据库(s…

通用爬虫设计思路

目录 设计思路1. 功能模块2. 技术栈3. 架构设计 实现步骤其他考虑 设计一个通用爬虫需要考虑多种网站结构和数据类型的适应性。以下是一个通用爬虫的设计思路,包括功能模块、架构和实现步骤: 设计思路 1. 功能模块 配置模块: 支持用户输入目…

Ubuntu22.04环境搭建MQTT服务器

官网: https://mosquitto.org 1.引入库 sudo apt-add-repository ppa:mosquitto-dev/mosquitto-ppa2.升级安装工具 sudo apt-get update 3.安装 sudo apt-get install mosquitto 4.安装客户端 sudo apt-get install mosquitto-clients5.添加修改配置文件 进…