特殊符号
Linux中的特殊符号在命令行操作和脚本编写中起着重要作用。
常见操作符
管道符 (
|):将一个命令的输出作为另一个命令的输入。ls | grep .js指令会列出当前目录下所有包含
.js关键字的文件和目录。输出重定向符
>:将命令的输出写入文件中,覆盖原有的内容。echo "Hello world" > example.txt指令会将文本
hello world写入名为example.txt的文件中并覆盖原有内容,如果文件不存在则自动创建。追加输出符
>>:将命令的输出追加到文件的末尾,而不是覆盖原有的内容。用法与>类似,但会保留原文件内容。输入重定向符
<:从文件中读区数据作为命令的输入。cat < example.html指令会从
example.html读区文件内容并输出到终端。后台运行符
&:使命令在后台运行而不占用终端。分号符
;:用于在一行中一次执行多个命令。变量替换符
**:用户引用环境变量或脚本中定义的变量。子
shell符号:用于将一组命令放到心的shell中执行。(ls && echo "list success") || (echo "list failed)会在子shell中执行
ls命令,并根据其执行结果输出相应的信息。
通配符
- 多字通配符
*:匹配任意字符或字符串(用于匹配多个字符)。例如ls *.js会列出所有以.js结尾的文件 - 单字通配符
?:匹配单个字符,例如ls ca?.js会匹配文件名中第三个字符为任意字符且以.js结尾的文件,如cat.js
逻辑运算符
- 逻辑与运算
&&:当第一个命令执行成功之后才会执行第二个命令。例如,ls -l && echo "list success",会在ls -l命令成功执行之后输出“list sucess”。 - 逻辑或运算符
||:当第一个命令执行失败才执行第二个命令。
其他特殊符号
#:通常用作注释符号,出现在一行的开头或完整指令之后,表示符号后面的内容是注释文字,不会被执行。但在某些情况下(如脚本的第一行#!/bin/bash,井号具有特殊意义。- 波浪号
~:代表用户的home目录,例如,cd ~会切换到用户的home目录。 - 点号
.:一个点号代表当前目录,两个点号代表上层目录。在路径表示中常用。 - 反斜杠
\:用作转义字符,取消特殊符号的作用或连接到下一行。 - 惊叹号
!:在逻辑运算符中表示非的意思。在history命令中惊叹号还有特殊用法,比如!mv会执行history列表中最近执行的mv命令。 - 花括号
{}:用于匹配花括号内的任意一个字符串。例如,echo {a,b,c}会输出a,b,c。