在Linux系统中,特殊字符扮演着重要角色,它们可以用于命令组合、重定向、通配符匹配等多种场景。下面我将详细介绍Linux中常见的特殊字符及其功能用法。
*
- 匹配任意多个字符ls *.txt # 列出当前目录下所有.txt文件
rm file* # 删除以file开头的所有文件
?
- 匹配单个字符ls file?.txt # 列出file1.txt, file2.txt等,但不匹配file10.txt
[]
- 匹配指定范围内的字符ls file[1-3].txt # 列出file1.txt, file2.txt, file3.txt
ls [a-z]*.txt # 列出以小写字母开头的.txt文件
{}
- 生成组合mkdir dir{1,2,3} # 同时创建dir1, dir2, dir3三个目录
cp file.{txt,bak} # 复制file.txt到file.bak
>
- 输出重定向(覆盖)ls > filelist.txt # 将ls输出写入filelist.txt(覆盖原有内容)
>>
- 输出重定向(追加)echo "new line" >> file.txt # 将"new line"追加到file.txt末尾
<
- 输入重定向sort < unsorted.txt # 使用unsorted.txt作为sort命令的输入
2>
- 错误重定向command 2> error.log # 将命令的错误输出重定向到error.log
&>
- 同时重定向标准输出和错误输出command &> output.log # 将标准输出和错误输出都重定向到output.log
|
- 管道ps aux | grep nginx # 将ps aux的输出作为grep的输入
;
- 命令分隔符command1; command2 # 依次执行command1和command2
&&
- 逻辑与command1 && command2 # 只有command1成功才执行command2
||
- 逻辑或command1 || command2 # 只有command1失败才执行command2
&
- 后台运行long_running_command & # 将命令放入后台运行
\
- 转义字符echo "This is a \"quote\"" # 输出: This is a "quote"
' '
- 单引号(强引用)echo '$HOME' # 输出: $HOME(变量不会被展开)
" "
- 双引号(弱引用)echo "$HOME" # 输出: /home/username(变量会被展开)
` `
- 反引号(命令替换)echo "Today is `date`" # 输出: Today is [当前日期时间]
$()
- 命令替换(现代写法)echo "Today is $(date)" # 同上,但更推荐使用这种形式
#
- 注释# 这是一行注释
command # 这也是注释
$
- 变量引用echo $PATH # 输出PATH环境变量的值
!
- 历史命令扩展!! # 执行上一条命令
!ls # 执行最近以ls开头的命令
!$ # 上一条命令的最后一个参数
~
- 用户主目录cd ~ # 进入当前用户主目录
cd ~user # 进入指定用户的主目录
-
- 上一个工作目录cd - # 切换到上一个工作目录
<<
- Here文档cat << EOF
This is a multi-line
text block that will be
passed to the cat command
EOF
<<<
- Here字符串grep "pattern" <<< "string to search in"
()
- 子shell(cd /tmp && ls) # 在子shell中执行命令,不影响当前shell环境
{}
- 代码块(当前shell){ cd /tmp; ls; } # 在当前shell中执行命令块
掌握这些特殊字符的使用可以大大提高Linux命令行操作的效率和灵活性。