插件窝 干货文章 linux shell有哪些类型

linux shell有哪些类型

Shell 开发者 路径 特点 412    来源:    2025-04-21

在Linux系统中,Shell是用户与操作系统内核交互的命令解释器。常见的Shell类型及其特点如下:


1. Bourne Shell (sh)

  • 开发者: Stephen Bourne (1977年)
  • 特点:
    • 最早的Unix Shell,语法简洁。
    • 不支持交互式功能(如命令历史、补全)。
  • 路径: /bin/sh(通常作为其他Shell的兼容模式符号链接)。

2. Bash (Bourne-Again Shell)

  • 开发者: GNU项目 (1989年)
  • 特点:
    • 最常用的Linux默认Shell,兼容sh并扩展功能。
    • 支持命令历史、补全、数组、算术运算等。
    • 脚本扩展名:.sh
  • 路径: /bin/bash

3. Zsh (Z Shell)

  • 开发者: Paul Falstad (1990年)
  • 特点:
    • 强大的交互功能(自动补全、主题插件)。
    • 兼容bash,适合开发者和高级用户。
    • 默认用于macOS(自10.15起)。
  • 路径: /bin/zsh

4. Korn Shell (ksh)

  • 开发者: David Korn (1983年)
  • 特点:
    • 结合shC Shell优点,支持脚本编程。
    • 有开源版本(如pdkshmksh)。
  • 路径: /bin/ksh

5. C Shell (csh)

  • 开发者: Bill Joy (1978年)
  • 特点:
    • 语法类似C语言,适合有C背景的用户。
    • 提供交互功能(如命令历史)。
    • 已被tcsh取代。
  • 路径: /bin/csh

6. Tcsh (Tenex C Shell)

  • 开发者: 基于csh的增强版
  • 特点:
    • 改进csh,支持命令行编辑、补全。
    • 常用于BSD系统。
  • 路径: /bin/tcsh

7. Fish (Friendly Interactive Shell)

  • 开发者: 2005年开源项目
  • 特点:
    • 用户友好,自动补全、语法高亮。
    • 不兼容bash,适合交互式使用。
  • 路径: /bin/fish(需安装)。

8. Dash (Debian Almquist Shell)

  • 特点:
    • 轻量级,速度快,适合脚本执行。
    • Debian/Ubuntu中/bin/sh的默认链接。
  • 路径: /bin/dash

其他变种

  • Almquist Shell (ash): 轻量版sh,用于嵌入式系统。
  • BusyBox: 集成多种工具(包括ash),常见于路由器。

如何查看/切换Shell?

  1. 查看当前Shell:

    echo $SHELL
    
  2. 查看可用Shell:

    cat /etc/shells
    
  3. 切换Shell(临时):

    /bin/zsh  # 直接运行目标Shell路径
    
  4. 永久更改:

    chsh -s /bin/zsh  # 需重启终端生效
    

选择建议

  • 脚本兼容性: 使用bashsh
  • 交互体验: 选择zshfish
  • 性能敏感场景: 使用dash

不同Shell的语法差异可能影响脚本执行,建议在脚本首行指定解释器(如#!/bin/bash)。