开发工具

Shell 符号表

92 篇文章73 次收藏
上一节:Shell 文件包含下一节:Shell case 语句

Shell 符号全解表

Shell 中的符号就像“编程密码”,掌握它们能大幅提升命令行操作效率。以下是 最全符号分类解析,包含用途、示例及注意事项:

一、基础操作符号

符号名称用途示例注意
#注释符注释代码# 这是注释整行后内容被忽略
;命令分隔符一行执行多个命令ls; pwd无论前命令是否成功都会执行
&&逻辑与前命令成功才执行后命令make && make install常用于依赖操作
||逻辑或前命令失败才执行后命令`ping -c1 host
&后台运行命令后台执行python server.py &用 jobs 查看后台任务


二、变量与扩展

符号用途示例说明
$变量取值echo $HOME提取变量值
${var}精确变量引用echo "${file}_bak"避免歧义
$()命令替换echo "Today is $(date)"执行命令并替换结果
$(())算术运算echo $((5+3))整数计算
$VAR直接变量引用echo $PATH简写形式
*通配符(匹配任意字符)ls *.txt匹配当前目录所有 .txt
?通配符(匹配单个字符)ls file?.log匹配 file1.log 等
[]字符范围匹配ls [a-z]*.py匹配小写字母开头的 .py


三、引号与转义

符号类型作用示例关键区别
""双引号允许变量和命令替换echo "$USER"扩展 $! 等
''单引号禁止所有扩展echo '$USER'原样输出
`反引号命令替换(已过时,推荐 $()echo `date`嵌套时易出错
\转义符取消特殊符号含义echo "Price: \$5"使 $ 变为普通字符


四、输入输出重定向

符号用途示例说明
>覆盖输出到文件ls > filelist.txt文件不存在则创建
>>追加输出到文件echo "log" >> output.log保留原内容
<从文件读取输入wc -l < data.txt统计文件行数
2>重定向标准错误cmd 2> error.log仅错误信息写入文件
&>重定向标准输出+错误cmd &> all_output.log合并输出流
|管道(前命令输出作为后命令输入)ls | grep "test"数据流传递


五、流程控制符号

符号用途示例说明
{}代码块(当前 Shell 执行){ date; ls; } > log需注意空格:{ 后和 } 前
()子 Shell 执行(cd /tmp && ls)内部操作不影响父 Shell
||条件或cmd1 || cmd2cmd1 失败时执行 cmd2
&&条件与cmd1 && cmd2cmd1 成功时执行 cmd2
!逻辑非if ! [ -f file ]; then反转条件结果


六、高级扩展符号

符号用途示例说明
~用户主目录cd ~/Documents等价于 $HOME
~+当前目录(同 $PWDecho ~+快速查看当前路径
~-上一个目录(同 $OLDPWDcd ~-返回之前目录
{1..10}数字序列扩展echo {1..3} → 1 2 3支持步长:{1..10..2}
{a,b,c}字符串列表扩展touch file_{1,2}.txt生成组合


七、特殊符号

符号用途示例说明
:空命令(返回 true)while :; do sleep 1; done无限循环占位符
!!上一条命令sudo !!快速重跑上条命令
!$上条命令的最后一个参数mkdir dir && cd !$快速复用参数
$_上个命令的最后一个参数ls /etc; echo $_输出 /etc


符号使用技巧

1、避免通配符意外扩展:

# 错误:当前目录有文件 a.txt 和 b.txt 时,以下命令会报错
rm *.txt   # 如果无 .txt 文件,可能变成 `rm *`
# 正确做法
rm ./*.txt  # 明确限定范围


2、转义特殊字符:

echo "变量显示: \$PATH"   # 输出 `变量显示: $PATH`


3、组合符号高效操作:

# 查找所有 .log 文件并统计每个文件的行数
find /var/log -name "*.log" -exec wc -l {} \;


总结表:符号优先级

类型符号示例执行顺序
变量扩展$VAR${VAR}最先解析
命令替换$(cmd)`cmd`次之
算术运算$((1+2))接着执行
通配符*?[]最后展开

掌握这些符号后,你会发现 Shell 就像一门 高效表达语言,能用最简短的命令完成复杂任务!


上一节:Shell 文件包含下一节:Shell case 语句