1. 变量操作
场景 | 语法示例 | 说明 |
---|---|---|
定义变量 | name="John" | 定义变量 name ,值为 John 。 |
使用变量 | echo $name | 输出变量 name 的值。 |
只读变量 | readonly name | 将变量 name 设置为只读,不可修改。 |
删除变量 | unset name | 删除变量 name 。 |
默认值 | echo ${name:-"Default"} | 如果 name 未定义或为空,使用默认值 Default 。 |
字符串长度 | echo ${#name} | 输出变量 name 的字符串长度。 |
截取字符串 | echo ${name:0:2} | 从变量 name 的第 0 个字符开始,截取 2 个字符。 |
替换字符串 | echo ${name/J/j} | 将变量 name 中第一个 J 替换为 j 。 |
全局替换 | echo ${name//J/j} | 将变量 name 中所有 J 替换为 j 。 |
2. 条件判断
场景 | 语法示例 | 说明 |
---|---|---|
数值比较 | if [ $a -eq $b ]; then ... fi | 判断 a 是否等于 b 。 |
字符串比较 | if [ "$str1" = "$str2" ]; then ... fi | 判断 str1 是否等于 str2 。 |
文件存在 | if [ -f "file.txt" ]; then ... fi | 判断 file.txt 是否存在且为普通文件。 |
目录存在 | if [ -d "dir" ]; then ... fi | 判断 dir 是否存在且为目录。 |
文件可读 | if [ -r "file.txt" ]; then ... fi | 判断 file.txt 是否可读。 |
文件可写 | if [ -w "file.txt" ]; then ... fi | 判断 file.txt 是否可写。 |
文件可执行 | if [ -x "file.txt" ]; then ... fi | 判断 file.txt 是否可执行。 |
逻辑与 | if [ $a -eq 1 ] && [ $b -eq 2 ]; then ... fi | 判断 a 等于 1 且 b 等于 2。 |
逻辑或 | `if [ $a -eq 1 ] |
3. 循环控制
场景 | 语法示例 | 说明 |
---|---|---|
for 循环 | for i in {1..5}; do echo $i; done | 循环输出 1 到 5。 |
while 循环 | while [ $i -lt 5 ]; do echo $i; i=$((i+1)); done | 当 i 小于 5 时循环。 |
until 循环 | until [ $i -ge 5 ]; do echo $i; i=$((i+1)); done | 直到 i 大于等于 5 时停止循环。 |
无限循环 | while true; do ... done | 无限循环,需手动退出。 |
跳出循环 | break | 跳出当前循环。 |
跳过本次循环 | continue | 跳过本次循环,进入下一次循环。 |
4. 函数定义
场景 | 语法示例 | 说明 |
---|---|---|
定义函数 | myfunc() { echo "Hello"; } | 定义一个名为 myfunc 的函数。 |
调用函数 | myfunc | 调用函数 myfunc 。 |
函数参数 | myfunc() { echo $1; } | 获取函数的第一个参数。 |
返回值 | return 0 | 返回 0 表示成功,非 0 表示失败。 |
5. 文件操作
场景 | 语法示例 | 说明 |
---|---|---|
创建文件 | touch file.txt | 创建一个空文件 file.txt 。 |
创建目录 | mkdir dir | 创建一个目录 dir 。 |
删除文件 | rm file.txt | 删除文件 file.txt 。 |
删除目录 | rm -r dir | 递归删除目录 dir 。 |
复制文件 | cp file1.txt file2.txt | 将 file1.txt 复制为 file2.txt 。 |
移动文件 | mv file1.txt dir/ | 将 file1.txt 移动到 dir/ 目录下。 |
重命名文件 | mv old.txt new.txt | 将 old.txt 重命名为 new.txt 。 |
查看文件内容 | cat file.txt | 输出文件 file.txt 的内容。 |
分页查看文件 | less file.txt | 分页查看文件 file.txt 。 |
查找文件 | find /path -name "*.txt" | 在 /path 目录下查找所有 .txt 文件。 |
6. 输入输出
场景 | 语法示例 | 说明 |
---|---|---|
输出到终端 | echo "Hello" | 输出字符串 Hello 。 |
读取用户输入 | read name | 读取用户输入并存储到变量 name 中。 |
输出到文件 | echo "Hello" > file.txt | 将 Hello 输出到 file.txt (覆盖)。 |
追加到文件 | echo "Hello" >> file.txt | 将 Hello 追加到 file.txt 。 |
重定向输入 | cat < file.txt | 将 file.txt 的内容作为输入。 |
7. 进程管理
场景 | 语法示例 | 说明 |
---|---|---|
查看进程 | ps aux | 查看所有进程。 |
后台运行 | sleep 10 & | 将 sleep 10 放到后台运行。 |
结束进程 | kill 1234 | 结束 PID 为 1234 的进程。 |
强制结束进程 | kill -9 1234 | 强制结束 PID 为 1234 的进程。 |
查看进程树 | pstree | 以树状结构显示进程。 |
8. 网络操作
场景 | 语法示例 | 说明 |
---|---|---|
测试网络连通性 | ping google.com | 测试与 google.com 的网络连通性。 |
下载文件 | wget http://example.com/file | 下载文件到当前目录。 |
发送 HTTP 请求 | curl http://example.com | 发送 HTTP 请求并输出响应。 |
查看网络接口 | ifconfig | 查看网络接口信息。 |
9. 其他常用命令
场景 | 语法示例 | 说明 |
---|---|---|
查看命令帮助 | man ls | 查看 ls 命令的帮助文档。 |
查看命令路径 | which ls | 查看 ls 命令的路径。 |
查看系统信息 | uname -a | 查看系统信息。 |
查看磁盘使用 | df -h | 查看磁盘使用情况。 |
查看内存使用 | free -h | 查看内存使用情况。 |