在Linux系统中,特殊字符在命令行、脚本编程和文本处理中具有特定功能。以下是常见的分类及说明:
*:匹配任意数量字符(如 *.txt 匹配所有txt文件)。?:匹配单个字符(如 file?.log 匹配 file1.log,但不匹配 file10.log)。[]:匹配括号内的任意单个字符(如 [abc].txt 匹配 a.txt 或 b.txt)。[!] 或 [^]:不匹配括号内的字符(如 [!0-9] 匹配非数字字符)。/:路径分隔符(根目录或子目录分隔)。~:用户家目录(如 cd ~ 进入当前用户的家目录)。.:当前目录(如 ./script.sh 执行当前目录下的脚本)。..:上级目录(如 cd .. 返回上一级)。>:覆盖输出到文件(如 ls > file.txt)。>>:追加输出到文件(如 echo "text" >> file.txt)。<:从文件读取输入(如 sort < file.txt)。|:管道,将前一个命令的输出作为下一个命令的输入(如 ps aux | grep nginx)。' ':单引号,禁止所有特殊字符解释。" ":双引号,允许变量($VAR)和命令替换(`command` 或 $(command))。` `:反引号,用于命令替换(已逐渐被 $( ) 取代)。\:转义字符(如 echo "Price: \$5" 输出 Price: $5)。;:分隔多个命令(如 cmd1; cmd2)。&&:前一个命令成功(返回0)后执行下一个(如 make && make install)。||:前一个命令失败后执行下一个(如 cmd1 || echo "Failed")。&:后台运行命令(如 sleep 10 &)。$:变量引用(如 echo $PATH)或算术运算($((1+2)))。$( ):命令替换(如 echo "Today is $(date)")。${ }:明确变量边界(如 ${var}_suffix)。#:注释符号(如 # This is a comment)。!:历史命令调用(如 !ls 执行最近的 ls 命令)或逻辑非(!=)。-:命令行选项前缀(如 ls -l)或标准输入/输出(如 tar -cvf - dir | tar -xvf -)。以下字符在Shell中有特殊含义,需用 \ 转义或引号包裹:
`! $ & * ( ) [ ] { } ; \ ' " < > ? | ~ ``
rm "file name.txt")。grep 使用 .* 而非 *)。掌握这些字符能高效操作Linux命令行和脚本编写!