Ubuntu Bash and Dash

本文介绍了Ubuntu系统中默认shell为dash而非bash的情况及其可能带来的问题,如编译Android源码时的错误。提供了三种解决方案:重新配置dash、直接修改/bin/sh链接指向bash以及在脚本中直接指定bash。
Ubuntu的 shell 默认安装的是 dash,而不是 bash。
运行以下命令查看 sh 的详细信息,确认 shell 对应的程序是哪个:
$ls -al /bin/sh

dash 比 bash 更轻,更快。但 bash 却更常用。
如果一些命令、脚本等总不能正常执行,有可能是 dash 的原因。
比如编译 Android 源代码的时候,如果使用 dash,则有可能编译出错,或者编译的系统不能启动。

通过以下方式可以使 shell 切换回 bash:
$sudo dpkg-reconfigure dash
然后选择 no 或者 否 ,并确认。
这样做将重新配置 dash,并使其不作为默认的 shell 工具。

也可以直接修改 /bin/sh 链接文件,将其指定到 /bin/bash:
$sudo ln -fs /bin/bash /bin/sh

还有一种解决方法是,在脚本文件中直接指定使用的 shell,而不是指定 sh:
例如使用 #!/bin/bash 或者 #!/bin/dash 而不是#!/bin/sh。
但这样将丧失脚本的通用性,使其在不具备所指定脚本的系统下不能被执行。
<think>好的,用户想将Ubuntu的默认shell从dash换成bash。首先,我得确认一下当前的默认shell是什么。可以用ls -l /bin/sh来查看,如果显示指向dash,那就需要修改。 接下来,我记得Ubuntu系统里有个命令叫dpkg-reconfigure,可能可以用来重新配置dash的设置。不过可能需要用sudo权限运行。比如执行sudo dpkg-reconfigure dash,然后选择“否”来不将sh链接到dash。 然后,检查一下是否修改成功,再次运行ls -l /bin/sh,应该指向bash了。如果用户遇到权限问题,可能需要用sudo来创建符号链接,比如sudo ln -sf /bin/bash /bin/sh。 不过要注意,有些系统脚本可能依赖dash,修改后可能会有兼容性问题。用户需要权衡利弊,特别是在生产环境中要谨慎。 另外,用户可能需要了解不同的shell之间的区别,比如bashdash的特点,以及为什么Ubuntu默认使用dash。这部分可以作为相关问题提供,帮助用户深入理解。 最后,确保步骤清晰,给出具体的命令和验证方法,让用户能一步步操作。同时提醒潜在风险,确保用户知道可能的后果。</think>### 将Ubuntu默认shell从dash更改为bash的步骤 #### 1. **确认当前默认shell** 在终端执行以下命令查看当前`/bin/sh`指向的shell: ```bash ls -l /bin/sh ``` 若输出类似`lrwxrwxrwx 1 root root 4 May 5 2020 /bin/sh -> dash`,则默认是dash[^2]。 #### 2. **修改默认shell为bash** 通过`dpkg-reconfigure`工具重新配置: ```bash sudo dpkg-reconfigure dash ``` 在弹出界面中选择`否`(No),表示不将`sh`链接到dash[^1]。 #### 3. **验证修改结果** 再次执行: ```bash ls -l /bin/sh ``` 输出应变为`/bin/sh -> bash`,表示已切换成功。 #### 4. **手动创建符号链接(备用方法)** 若上述方法失效,可直接修改符号链接: ```bash sudo ln -sf /bin/bash /bin/sh ``` #### 注意事项 - **兼容性问题**:部分系统脚本依赖dash的轻量特性,修改后可能影响脚本执行效率或兼容性[^2]。 - **临时切换**:在终端中可通过`bash`命令直接启动bash会话,无需修改全局配置[^4]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值