在Linux系统中,特殊字符在命令行、脚本编程和文本处理中有特定功能。以下是常见特殊字符及其含义的详细分类说明:
*
ls *.txt
列出所有.txt
文件。?
ls file?.txt
匹配 file1.txt
,但不匹配 file10.txt
。[]
ls [abc]*
列出以 a
、b
或 c
开头的文件。[0-9]
匹配数字,[a-z]
匹配小写字母。[^]
或 [!]
ls [!a]*
列出不以 a
开头的文件。~
cd ~
进入家目录。.
./script.sh
执行当前目录下的脚本。..
cd ..
返回上一级目录。/
/home/user/file
。>
echo "text" > file.txt
。>>
echo "text" >> file.txt
。<
wc -l < file.txt
。|
ls | grep "txt"
。2>
或 &>
command 2> error.log
。;
cmd1; cmd2
。&&
make && make install
。||
cmd1 || echo "Failed"
。&
sleep 10 &
。#
# This is a comment
。$
echo $PATH
,echo $((1+2))
。""
$var
或$(cmd)
)。echo "User: $USER"
。''
echo '$USER'
输出 $USER
。`
或 $()
echo `date
或 echo $(date)
。\
echo "Price: \$5"
。{}
echo {1..3}
输出 1 2 3
;cp file{,.bak}
复制为 file.bak
。!
!ls
执行最近的 ls
命令)。[]
中表示取反(见通配符部分)。-
-l
),或代表标准输入/输出。tar -xvf file.tar
,cat file | grep "text" -
。()
(cd /tmp && ls)
。;
、&&
、||
>
rm -rf /
*
和 /
组合可能引发灾难性删除(务必检查路径)。掌握这些特殊字符能高效操作Linux,但需注意:
- 转义字符(\
)或引号用于处理包含特殊字符的文件名(如 touch "file*.txt"
)。
- 通配符在脚本和命令中行为可能不同(建议测试后使用)。
通过组合这些字符,可以构建复杂的命令或脚本(如 find . -name "*.log" -exec rm {} \;
)。