Skip to main content
  1. 笔记本/

Debian/Ubuntu 默认 shell 许多命令不能用的解决

1 min

Debian/Ubuntu 默认 shell 许多命令不能用的解决办法

Bash(GNU Bourne Again Shell) 是许多 Linux 平台默认的 shell,UNIX 上还有多种 shell,例如 tcsh、csh、ash 等。
GNU/Linux 操作系统中的 /bin/sh 本是 bash 的符号链接,但由于 bash 过于复杂,从 Ubuntu 6.10 开始(Debian不知道从哪个版本开始),默认使用 dash(Debian Almquist Shell) 以获得更快的脚本执行速度。Dash 比 Bash 小的多,符合 POSIX 标准,它主要是为了执行脚本而出现,而不是交互,速度更快,但功能相比 bash 要少很多。

输入下面指令可查看当前 shell:
echo $SHELL # 返回的是 /bin/sh 而不是 /bin/bash
使用如下命令可以查看 /bin/sh 指向何种解释器:
ls -al /bin/sh

解决方式:
修改终端启动后默认的 shell,命令行输入:
chsh
输入密码后,在 Login Shell [/bin/sh]: 后输入 /bin/bash 然后回车键
Login Shell [/bin/sh]: /bin/bash
设置完默认 shell 后,重新连接服务器即可。

下面的命令可以把默认 sh 切换到 bash,执行会出现一个图形化的配置菜单,选 no 即可
sudo dpkg-reconfigure dash