一、介绍
在Ubuntu中,dash和bash都是命令行shell,用于执行命令、管理文件系统、编写脚本等任务。
1.1 Bash(Bourne Again Shell)
定义与背景:Bash是Bourne Shell的增强版,提供了丰富的功能和灵活性,是Linux和Unix系统中最常用的Shell之一。
主要特性:
1、支持命令补全、命令历史记录、作业控制等高级特性。
2、具有广泛的脚本编写能力,支持条件语句、循环、函数等。
3、语法和功能相对复杂,但同时也更灵活和强大。
4、适用于各种场景,特别是需要交互性和脚本编写的任务。
在Ubuntu中的应用:Bash通常作为Ubuntu的默认Shell解释器,用户可以在命令行界面中输入指令来操作系统,执行各种操作。同时,Bash脚本可以用于自动化任务、系统管理和开发等各种用途。
1.2 Dash(Debian Almquist Shell)
定义与背景:Dash是Debian GNU/Linux系统中的默认shell,取代了较早的Bash作为系统shell。它是为了轻量化和速度而设计的。
主要特性:
1、执行速度比Bash快,因为其代码更精简。
2、功能集相对较小,不支持一些Bash的高级特性,如命令补全和作业控制。
3、遵循POSIX(Portable Operating System Interface)标准,能够在不同的Unix-like系统中保持一致性。
4、更适合于需要更快速和轻量化的环境,用于执行命令、管理文件系统和编写脚本。
在Ubuntu中的特定应用:尽管Dash不是Ubuntu用户交互的主要Shell(因为默认被设置为Bash或Zsh等),但它在系统内部的一些脚本和任务中仍然发挥着重要作用。特别是那些对性能有较高要求,同时不需要Bash复杂功能的场景。
Bash和Dash各有其优势和适用场景,Bash功能更强大、更灵活,适用于各种需要交互性和脚本编写的任务;而Dash则更适合于需要更快速和轻量化的环境。
二、bash 和 dash 切换
查看当前系统的默认Shell
ls -l /bin/sh
确认输出结果。
打开终端工具,执行如下命令,输入密码,然后选择 No,将 Ubuntu shell由 dash 修改为 bash,或者选择 Yes ,将 bash 修改为 dash。
sudo dpkg-reconfigure dash