在 Linux 系统中,符号(特殊字符)在命令行、脚本编程和系统配置中扮演着关键角色。以下是分类详解:
用于文件名扩展(由 Shell 解析):
- *
:匹配任意长度字符(如 ls *.txt
显示所有 .txt
文件)
- ?
:匹配单个字符(如 file?.log
匹配 file1.log
但不匹配 file10.log
)
- []
:匹配括号内任意一个字符(如 [abc].txt
匹配 a.txt
或 b.txt
)
- {}
:生成组合(如 mkdir /dir{1,2,3}
创建 /dir1
, /dir2
, /dir3
)
控制输入/输出流:
- >
:覆盖输出到文件(如 ls > list.txt
)
- >>
:追加输出到文件(如 echo "new" >> file.txt
)
- <
:从文件读取输入(如 sort < unsorted.txt
)
- |
:管道,将前一个命令的输出作为下一个的输入(如 ps aux | grep nginx
)
组合命令执行逻辑:
- &&
:前一个命令成功则执行下一个(如 make && make install
)
- ||
:前一个命令失败则执行下一个(如 ping -c1 host || echo "Host down"
)
- ;
:按顺序执行命令(如 cd /tmp; ls
)
处理变量和字符串:
- $
:引用变量(如 echo $PATH
)
- ""
:双引号,允许变量扩展(如 echo "User: $USER"
)
- ''
:单引号,禁止所有扩展(如 echo '$USER'
输出字面量 $USER
)
- `
或 $()
:命令替换(如 echo "Today is $(date)"
)
\
:转义下一个字符(如 echo "Price: \$5"
输出 Price: $5
)#
:注释(如 # This is a comment
)~
:用户家目录(如 cd ~
进入当前用户的家目录)+/-
:设置权限(如 chmod u+x file
给所有者添加执行权限)=
:精确设置权限(如 chmod o=rw file
设置其他用户为读写)用于文本搜索(如 grep
, sed
, awk
):
- .
:匹配任意单个字符
- ^
:匹配行首(如 ^start
)
- $
:匹配行尾(如 end$
)
- *
:前一个字符重复 0 次或多次
&
:后台运行命令(如 sleep 10 &
)Ctrl+C
:终止前台进程Ctrl+Z
:暂停进程(可用 fg
/bg
恢复)!!
:重复上一条命令(需谨慎!)!$
:引用上一条命令的最后一个参数(如 mkdir dir && cd !$
)''
会禁用所有扩展,而双引号 ""
允许变量扩展。cd "My Documents"
或 cd My\ Documents
)。掌握这些符号能显著提升 Linux 操作效率,尤其在脚本编写和自动化任务中。建议通过实践逐步熟悉其用法。