Linux Bash 默认 Shell

Bourne Again SHell —— Linux 大多数发行版的默认 shell。 是 1989 年 GNU 项目对老 Bourne shell (sh) 的开源重写。

为什么是它

  • 最普及 —— Ubuntu / Debian / CentOS 默认全是 bash
  • 脚本能力强 —— 大量 sysadmin 脚本就是 .sh (实际是 bash)
  • 历史和补全 —— 上下方向键回放命令、Tab 补全

跟其他 shell 比

Shell特点
bashLinux 默认,通用
zsh更强的补全和插件(Oh My Zsh),macOS 现在默认
fish用户友好,语法不兼容 bash
sh (POSIX)最古老最小化,脚本兼容性最好

安全相关

  • Shellshock(2014)—— bash 历史最严重的漏洞,允许远程代码执行
  • 写 bash 脚本时:用户输入永远不要直接 eval,引号要严格闭合