【Linux】/bin/sh、/bin/bash、/bin/dash、init=/sysroot/bin/bash(sh) 、init=/bin/bash(sh) 的区别
目录
概述
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) 的区别相关推荐
- bash、dash(/bin/bash和/bin/sh)
Linux中的shell有多种类型,其中最常用的几种是Bourne shell(sh).C shell(csh)和Korn shell(ksh).三种shell各有优缺点.Bourne ...
- 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 ...
- Linux之ARM(IMX6U)裸机汇编LED驱动实验--烧写bin文件到SD卡中并运行
Linux之ARM(IMX6U)裸机汇编LED驱动实验--烧写bin文件到SD卡中并运行 代码烧写 2.烧写的工具 2.把生成的将 imxdownload 放在工程目录下(led.bin同一个文件夹下 ...
- linux上启动jenkins报错:/home/... .../user/jdk/jdk1.8.0_291/bin/java 权限不够
在linux上安装完jenkins后,service jenkins start启动时报错,根据报错提示进入查看报错详细信息后说是jdk1.8.0_291/bin/java权限不够. 解决: 先修改j ...
- linux下的各种shell介绍(bash和dash转换)
在linux下编写shell脚本文件时,经常会看到很多人在文件的第一行中标注"#!/bin/bash".这句话的意思是告诉系统强制用bash,避免出现一些不兼容的问题. 那么,在l ...
- shell脚本:sh、bash、dash的关系
一.释义 #!/bin/bash指定脚本使用/bins/bash来解释执行,#!/bin/sh是指定此脚本使用/bin/sh来解释执行. #!是特殊的表示符,后面是脚本解释器程序路径,脚本的内容是由对 ...
- bash 与 dash
Ubuntu 的 bash和dash的区别 什么是bash ? Bash(GNU Bourne-Again Shell)是许多Linux平台的内定Shell,事实上,还有许多传统UNIX上 ...
- Ubuntu 的 bash和dash的区别
什么是bash ? Bash(GNU Bourne-Again Shell)是许多Linux平台的内定Shell,事实上,还有许多传统UNIX上用的Shell,像tcsh.csh.ash.bsh.ks ...
- ubuntu学习日记--Lesson6:shell,bash,dash
原文链接:http://www.cnblogs.com/hf8051/p/4538986.html 终端:即所谓的命令行界面,又称命令终端,用户输入shell命令用的窗口,跟Windows里的DOS界 ...
- Linux 初始化系统(系统服务管理和控制程序/Init System) -- System V init(SysV init) 的简单理解
文章目录 SysV init 简介 SysV init 的缺点 运行级别 主要文件和目录的截图 SysV init 简介 System V init(缩写 SysV init)是类 Unix 操作系统 ...
最新文章
- 记者因报道大厂负面遭遇死亡威胁,幕后黑手被判入狱18个月
- Android6.0执行时权限解析,RxPermissions的使用,自己封装一套权限框架
- 【Ubuntu 16】源码包安装Apache Httpd
- 算法熟记-排序系列-堆排序
- ubantu安装_Virtualbox-Ubantu-Anaconda 数据分析环境搭建
- css实现垂直居中(+水平居中)
- java字符排序_如何按字母顺序对字符串进行排序java
- Android笔记(十)ListView
- 徒手撸框架--高并发环境下的请求合并
- 看漫画来告诉你:什么是 “元宇宙” ?
- 佳能mf4400打印机无线服务器,佳能mf4400打印机驱动最新版
- Redis热点Key发现及常见解决方案总结
- ip 检测原理(简单粗暴ping ip)
- 华为v2服务器系统安装系统,华为服务器RH 2288H v2安装系统
- python 将多个文件夹合成一个文件夹
- Python破解pdf打开密码
- 红米android10参数,红米10x5g手机参数红米10x5g手机参数有哪些
- 独家 | 处理非结构化数据的7个实例(附链接)
- centos7 解决硬盘内存爆满
- if-elif-e方法lse的基本使用
热门文章
- 一个bug改了3个礼拜
- 李建忠「设计模式」笔记
- 【开始报名】第二届中国移动“梧桐杯”大数据应用创新大赛邀你夺52w大奖
- Doctrine 查询语法
- 【C1认证任务】C1-4
- 【论文阅读】A Survey on Contrastive Self-supervised Learning
- Spanning-tree guard features配置案例
- 聊天机器人php源码,(2)聊天机器人API
- java堆是什么意思_java中的“堆栈”是什么意思?
- 哒螨灵使用注意事项_哒螨灵怎么使用?哒螨灵的使用方法和注意事项