Shell解释器
简介
/bin/sh
和/bin/bash
是Unix/Linux
系统中常见的 Shell 解释器;/bin/bash
功能丰富、交互友好,适用于 开发、交互式使用,/bin/sh
轻量、兼容 POSIX,适用于 系统脚本、跨平台环境;- 举个例子:使用
/bin/sh
按下 tab键 不会自动联想
区别
特性 | /bin/sh (POSIX) | /bin/bash |
---|---|---|
命令行编辑 | ❌ 不支持 | ✅ 支持(如 Ctrl+R 历史搜索) |
数组 | ❌ 仅有限支持 | ✅ 完整支持 |
正则表达式 | ❌ 依赖外部命令 | ✅ 内置 =~ 操作符 |
进程替换 | ❌ <(cmd) 语法不支持 | ✅ 支持 |
局部变量 | ❌ 仅全局 | ✅ local 关键字 |
扩展测试符 | ❌ 仅 [ ] | ✅ 支持 [[ ]] |
查看/更新用户默认shell
查看当前用户shell(以test账号为例):
# 查看test账号默认shell
sudo grep test /etc/passwd
test:x:1000:1000::/home/test:/bin/sh# 更改,重新登录生效
sudo usermod -s /bin/bash test