学习笔记 gobicowboy
shell语言介绍
#shell编程
Shell 本身不是编程语言意义上的“语言”,而是一种 命令行解释器(Command Interpreter),它同时具备 脚本语言能力。最常用的 Shell 是 Bash(Bourne Again SHell),也是 Linux/macOS 系统的默认 Shell。
1. Shell 的本质
Shell 是操作系统与用户之间的桥梁,你在终端敲的每一条命令,Shell 都会解析、执行,并返回结果。它可以做三件事:
-
交互式执行命令
直接在终端输入命令,比如 ls、cd、cat file.txt。
-
编写脚本自动化任务
可以把一系列命令写成 .sh 文件,自动执行,类似小型程序。
-
系统管理
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. 实用技巧
- 快速查找文件
find /path -name "*.log"
- 批量处理文件
for f in *.txt; do
mv "$f" "${f%.txt}.bak"
done
- 后台执行命令
long_running_task &
5. Shell 的强大之处
-
跨平台:大多数 Linux、macOS 都可以用 Bash。
-
自动化:自动化运维、数据处理、批量文件操作。
-
组合能力强:小工具组合成大流程,Unix 精神的体现。
-
可以调用系统任意命令,无需重复造轮子。