什么是Shell?常见种类与脚本基础

1. 什么是Shell

2. Shell 种类

3. 命令

答:

  1. Shell是一个由c语言编写的应用程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言

它连接了用户和Linux内核,让用户能够更加高效、安全、低成本地使用 Linux 内核

其本身并不是内核的一部分,它只是站在内核的基础上编写的一个应用程序,它和 QQ、微信等其它软件没有什么区别,特殊的地方就是开机立马启动,并呈现在用户面前

主要作用是接收用户输入的命令,并对命令进行处理,处理完毕后再将结果反馈给用户,比如输出到显示器、写入到文件等,同样能够调用和组织其他的应用程序,相当于一个领导者的身份,如下图:

那么shell脚本就是多个 Shell 命令的组合并通过 if 条件分支控制或循环来组合运算,实现一些复杂功能,文件后缀名为.sh

常用的 ls 命令,它本身也是一个 Shell 脚本,通过执行这个 Shell 脚本可以列举当前目录下的文件列表

2. 关于 Shell 的几个常见命令:

  1. Shell 并不是简单的堆砌命令,我们还可以在 Shell 中编程,这和使用 C++、C#、Java、Python 等常见的编程语言并没有什么两样。

Shell 虽然没有 C++、Java、Python 等强大,但也支持了基本的编程元素,例如:

补充

补充:Shell 是「命令解释器 + 脚本语言」,既是用户与内核之间的接口,也是 Linux 自动化的核心工具。

常见 Shell:

  • Bash(/bin/bash):Linux 默认 Shell,脚本兼容性最好。
  • Zsh:macOS Catalina 后默认 Shell,交互体验好(oh-my-zsh、starship)。
  • Fish:开箱即用、自动补全强,语法与 Bash 不完全兼容。
  • Sh(DASH):Debian/Ubuntu 中 /bin/sh 默认指向 dash,速度快但功能少。

Shell 脚本基础:

#!/bin/bash
# 注释
NAME="world"
echo "hello, $NAME"

if [ -f "$1" ]; then
  echo "file exists: $1"
fi

for i in $(seq 1 5); do
  echo "i=$i"
done

补充:编写脚本要 chmod +x script.sh 添加执行权限;调试可用 bash -x script.sh 打印每条执行的命令。