1. * (星号)
-
功能:匹配零个或多个字符。
-
示例
:
ls *.txt
:列出当前目录下所有扩展名为.txt
的文件。echo a*
:匹配以a
开头的所有文件或目录,比如abc
,a123
,abc.txt
。
2. ?
(问号)
-
功能:匹配一个字符。
-
示例
:
ls file?.txt
:匹配所有名称为file
后面跟一个字符再加上.txt
的文件,例如file1.txt
,fileA.txt
。echo ?
:会输出当前目录下的一个文件或目录名称。
3. []
(方括号)
-
功能:匹配方括号内的任意单一字符。
-
示例
:
ls file[123].txt
:匹配file1.txt
,file2.txt
,file3.txt
。ls file[a-z].txt
:匹配文件名为filea.txt
,fileb.txt
,直到filez.txt
的文件。
4. {}
(大括号)
-
功能:用于生成一系列文件名,或者用于控制结构。
-
示例
:
echo {a,b,c}.txt
:输出a.txt b.txt c.txt
。cp file{1,2,3}.txt /tmp/
:将file1.txt
,file2.txt
,file3.txt
文件复制到/tmp/
目录。
5. |
(管道符)
-
功能:将一个命令的输出传递给另一个命令作为输入。
-
示例
:
ps aux | grep nginx
:显示所有进程信息并过滤出包含nginx
的行。echo "hello world" | tr 'a-z' 'A-Z'
:将字符串 "hello world" 转换为大写字母 "HELLO WORLD"。
6. &
(背景执行)
-
功能:将命令放入后台执行。
-
示例
:
sleep 30 &
:将sleep 30
命令放入后台执行。
7. ;
(分号)
-
功能:分隔多个命令,一次执行多个命令。
-
示例
:
echo "Hello"; echo "World"
:首先输出 "Hello",然后输出 "World"。
8. &&
(与)
-
功能:表示前一个命令成功执行后,才执行后一个命令。
-
示例
:
mkdir new_dir && cd new_dir
:如果mkdir new_dir
成功执行,才会进入new_dir
目录。
9. ||
(或)
-
功能:表示前一个命令失败时执行后一个命令。
-
示例
:
mkdir existing_dir || echo "Directory already exists"
:如果mkdir existing_dir
失败,输出 "Directory already exists"。
10. >
(重定向输出)
-
功能:将输出重定向到文件中,覆盖文件内容。
-
示例
:
echo "Hello" > file.txt
:将 "Hello" 写入file.txt
文件,覆盖文件原有内容。
11. >>
(追加重定向)
-
功能:将输出重定向到文件中,追加到文件末尾。
-
示例
:
echo "World" >> file.txt
:将 "World" 追加到file.txt
文件末尾。
12. <
(重定向输入)
-
功能:将文件的内容作为输入提供给命令。
-
示例
:
sort < file.txt
:将file.txt
的内容作为输入传递给sort
命令进行排序。
13. <<
(Here Document)
-
功能:用于多行输入重定向,将多个行作为输入传递给命令。
-
示例
:
-
cat << EOF Hello, world! This is a test. EOF
输出:
Hello, world! This is a test.
-
14. $( )
(命令替换)
-
功能:执行括号内的命令并将结果返回。
-
示例
:
echo "Today is $(date)"
:输出 "Today is" 后跟当前日期。files=$(ls *.txt)
:将当前目录下所有.txt
文件名存储到变量files
中。
15. !
(逻辑非)
-
功能:表示逻辑非,用于反转条件或执行历史命令。
-
示例
:
! ls non_existent_file
:如果ls non_existent_file
命令失败,返回非零状态。! command
:如果command
执行成功,返回失败。
16. ~
(波浪号)
-
功能:表示当前用户的家目录。
-
示例
:
cd ~
:进入当前用户的家目录。echo ~
:输出当前用户的家目录路径。
17. #
(注释)
-
功能:表示注释,所有在
#
后的内容都不会被执行。 -
示例
:
# This is a comment
:这一行不会被执行,是注释。