目录

概述

Shell

SH

BASH

/bin/sh 和 /bin/bash 的区别

#!/bin/sh 和 #!/bin/bash 的区别

Dash

单用户模式 init=/sysroot/bin/bash(sh) 与 init=/bin/bash(sh) 的区别


概述

Shell

  • Shell 即 Shell Script, 是一种程序设计语言,也是一种命令语言

SH

  • sh 就是 Bourne shell
  • 这个是 UNIX 标准的默认 shell,对它评价是 concise 简洁 compact 紧凑 fast 高效,由 AT&T 编写,属于系统管理 shell。

BASH

  • bash 是 GNU Bourne-Again SHell (GNU 命令解释程序 “Bourne二世”),是 SH 的超集
  • linux 标准的默认 shell ,它基于 Bourne shell,吸收了 C shell 和 Korn shell 的一些特性。
  • bash 是 Bourne shell 的超集bash 完全兼容 Bourne shell也就是说用 Bourne shell 的脚本不加修改可以在 bash 中执行,反过来却不行,bash 的脚本在 sh 上运行容易报语法错误。
  • 简单来说,bash 是 sh 的完整版,bash 完全兼容 sh 命令,反之不行。

/bin/sh 和 /bin/bash 的区别

  • sh/bin/sh 是 /bin/bash 的软连接,在 linux 系统当中,使用 sh 调用执行脚本相当于打开了 bash 的 POSIX 标准模式,也就是说 /bin/sh 相当于 /bin/bash --posix  。

#!/bin/sh 和 #!/bin/bash 的区别

  • #! 是个指示路径的表示符,/bin/sh 和 /bin/bash 指定了脚本解析器的程序路径。
  • /bin/sh 执行过程中,若出现命令执行失败,则会停止执行;/bin/bash 执行过程中,若命令执行失败,仍然会继续执行。
  • bash 完全兼容 Bourne shell也就是说用 Bourne shell 的脚本不加修改可以在 bash 中执行,反过来却不行,bash 的脚本在 sh 上运行容易报语法错误。

Dash

  • 鉴于 bash 过于复杂,有人把 bash 从 NetBSD 移植到 Linux 并更名为 dash (Debian Almquist Shell),并将 /bin/sh 软链接指向 dash,以获得更快的脚本执行速度。Dash Shell 比 Bash Shell 小的多,符合 POSIX 标准 Ubuntu 继承了 Debian,所以从 Ubuntu 6.10 开始默认是 Dash Shell。
  • Debian 曾经采用 /bin/bash 更改 /bin/dash,目的使用更少的磁盘空间、提供较少的功能、获取更快的速度,但是后来经过shell 脚本测试存在运行问题。因为原先在 bash shell 下可以正常运行的 shell script (shell 脚本),在 /bin/sh 下运行 shell script 脚本还是会出现一些意想不到的问题,不是100%的兼用。

单用户模式 init=/sysroot/bin/bash(sh) 与 init=/bin/bash(sh) 的区别

  • init=/sysroot/bin/bash(sh) :系统安装所在分区,内核启动过程中会查找系统安装所在分区,然后把该分区挂在到 /sysroot/ 目录下。
  • init=/bin/bash(sh) :内核启动过程中临时文件系统(initrd.img)。

【Linux】/bin/sh、/bin/bash、/bin/dash、init=/sysroot/bin/bash(sh) 、init=/bin/bash(sh) 的区别相关推荐

  1. bash、dash(/bin/bash和/bin/sh)

    Linux中的shell有多种类型,其中最常用的几种是Bourne   shell(sh).C   shell(csh)和Korn   shell(ksh).三种shell各有优缺点.Bourne   ...

  2. linux 运行python 看不到异常信息_Linux异常解决:/usr/bin/env python\r no such file or directory...

    我有两台电脑,一台win10系统,一台Liunx系统.今天在win10上面写了一个ROS程序,拷贝到Linux上面,执行rosrun命令出现异常信息/usr/bin/env python\r no s ...

  3. Linux之ARM(IMX6U)裸机汇编LED驱动实验--烧写bin文件到SD卡中并运行

    Linux之ARM(IMX6U)裸机汇编LED驱动实验--烧写bin文件到SD卡中并运行 代码烧写 2.烧写的工具 2.把生成的将 imxdownload 放在工程目录下(led.bin同一个文件夹下 ...

  4. linux上启动jenkins报错:/home/... .../user/jdk/jdk1.8.0_291/bin/java 权限不够

    在linux上安装完jenkins后,service jenkins start启动时报错,根据报错提示进入查看报错详细信息后说是jdk1.8.0_291/bin/java权限不够. 解决: 先修改j ...

  5. linux下的各种shell介绍(bash和dash转换)

    在linux下编写shell脚本文件时,经常会看到很多人在文件的第一行中标注"#!/bin/bash".这句话的意思是告诉系统强制用bash,避免出现一些不兼容的问题. 那么,在l ...

  6. shell脚本:sh、bash、dash的关系

    一.释义 #!/bin/bash指定脚本使用/bins/bash来解释执行,#!/bin/sh是指定此脚本使用/bin/sh来解释执行. #!是特殊的表示符,后面是脚本解释器程序路径,脚本的内容是由对 ...

  7. bash 与 dash

    Ubuntu 的 bash和dash的区别       什么是bash ? Bash(GNU Bourne-Again Shell)是许多Linux平台的内定Shell,事实上,还有许多传统UNIX上 ...

  8. Ubuntu 的 bash和dash的区别

    什么是bash ? Bash(GNU Bourne-Again Shell)是许多Linux平台的内定Shell,事实上,还有许多传统UNIX上用的Shell,像tcsh.csh.ash.bsh.ks ...

  9. ubuntu学习日记--Lesson6:shell,bash,dash

    原文链接:http://www.cnblogs.com/hf8051/p/4538986.html 终端:即所谓的命令行界面,又称命令终端,用户输入shell命令用的窗口,跟Windows里的DOS界 ...

  10. Linux 初始化系统(系统服务管理和控制程序/Init System) -- System V init(SysV init) 的简单理解

    文章目录 SysV init 简介 SysV init 的缺点 运行级别 主要文件和目录的截图 SysV init 简介 System V init(缩写 SysV init)是类 Unix 操作系统 ...

最新文章

  1. 记者因报道大厂负面遭遇死亡威胁,幕后黑手被判入狱18个月
  2. Android6.0执行时权限解析,RxPermissions的使用,自己封装一套权限框架
  3. 【Ubuntu 16】源码包安装Apache Httpd
  4. 算法熟记-排序系列-堆排序
  5. ubantu安装_Virtualbox-Ubantu-Anaconda 数据分析环境搭建
  6. css实现垂直居中(+水平居中)
  7. java字符排序_如何按字母顺序对字符串进行排序java
  8. Android笔记(十)ListView
  9. 徒手撸框架--高并发环境下的请求合并
  10. 看漫画来告诉你:什么是 “元宇宙” ?
  11. 佳能mf4400打印机无线服务器,佳能mf4400打印机驱动最新版
  12. Redis热点Key发现及常见解决方案总结
  13. ip 检测原理(简单粗暴ping ip)
  14. 华为v2服务器系统安装系统,华为服务器RH 2288H v2安装系统
  15. python 将多个文件夹合成一个文件夹
  16. Python破解pdf打开密码
  17. 红米android10参数,红米10x5g手机参数红米10x5g手机参数有哪些
  18. 独家 | 处理非结构化数据的7个实例(附链接)
  19. centos7 解决硬盘内存爆满
  20. if-elif-e方法lse的基本使用

热门文章

  1. 一个bug改了3个礼拜
  2. 李建忠「设计模式」笔记
  3. 【开始报名】第二届中国移动“梧桐杯”大数据应用创新大赛邀你夺52w大奖
  4. Doctrine 查询语法
  5. 【C1认证任务】C1-4
  6. 【论文阅读】A Survey on Contrastive Self-supervised Learning
  7. Spanning-tree guard features配置案例
  8. 聊天机器人php源码,(2)聊天机器人API
  9. java堆是什么意思_java中的“堆栈”是什么意思?
  10. 哒螨灵使用注意事项_哒螨灵怎么使用?哒螨灵的使用方法和注意事项