学习笔记

shell语言介绍

#shell编程

Shell 本身不是编程语言意义上的“语言”,而是一种 命令行解释器(Command Interpreter),它同时具备 脚本语言能力。最常用的 Shell 是 Bash(Bourne Again SHell),也是 Linux/macOS 系统的默认 Shell。


1. Shell 的本质

Shell 是操作系统与用户之间的桥梁,你在终端敲的每一条命令,Shell 都会解析、执行,并返回结果。它可以做三件事:

  1. 交互式执行命令

    直接在终端输入命令,比如 ls、cd、cat file.txt。

  2. 编写脚本自动化任务

    可以把一系列命令写成 .sh 文件,自动执行,类似小型程序。

  3. 系统管理

    Shell 对文件系统、进程管理、网络操作都很擅长,是 Linux/Unix 管理员的核心工具。


2. 基本语法

2.1 注释

# 这是注释,Shell 会忽略

2.2 变量

name="Gobi"
echo $name       # 输出 Gobi
  • 注意:变量名和 = 之间不能有空格。

  • 取值 用 $。

2.3 条件判断

if [ $age -ge 18 ]; then
  echo "成年了"
else
  echo "未成年"
fi
  • -ge、-eq 等用于数字比较。

2.4 循环

for i in 1 2 3; do
  echo $i
done

# while
count=0
while [ $count -lt 5 ]; do
  echo $count
  count=$((count + 1))
done

2.5 函数

greet() {
  echo "Hello, $1"
}

greet "Gobi"   # 输出 Hello, Gobi
  • $1 表示第一个参数,$2 是第二个参数。

3. 文件与流程操作

3.1 管道与重定向

ls -l | grep ".txt"       # 管道,将 ls 输出传给 grep
echo "Hello" > file.txt   # 重定向到文件(覆盖)
echo "World" >> file.txt  # 重定向到文件(追加)

3.2 命令替换

today=$(date)
echo "今天是 $today"

4. 实用技巧

  1. 快速查找文件
find /path -name "*.log"
  1. 批量处理文件
for f in *.txt; do
  mv "$f" "${f%.txt}.bak"
done
  1. 后台执行命令
long_running_task &

5. Shell 的强大之处

  • 跨平台:大多数 Linux、macOS 都可以用 Bash。

  • 自动化:自动化运维、数据处理、批量文件操作。

  • 组合能力强:小工具组合成大流程,Unix 精神的体现。

  • 可以调用系统任意命令,无需重复造轮子。