1. 通配符

当需要用命令处理一组文件,例如file1.txt、file2.txt、file3.txt……,用户不必一一输入文件名,可以使用Shell通配符

  1. 星号(): 匹配任意长度的字符串 用file_.txt,匹配file_wang.txt、file_zhang.txt、file_liu.txt
  2. 问号(?): 匹配一个长度的字符 用flie_?.txt,匹配file_1.txt、file1_2.txt、file_3.txt
  3. 方括号([…]) :匹配其中指定的一个字符 用file_[otr].txt,匹配file_o.txt、file_r.txt和file_t.txt
  4. 方括号([ - ]):匹配指定的一个字符范围 用file_[a-z].txt,匹配file_a.txt、file_b.txt,直到file_z.txt
  5. 方括号([^…]) : 除了其中指定的字符,均可匹配 用file_[^otr].txt,除了file_o.txt、file_r.txt和file_t.txt的其他文件 在c语言清除垃圾字符时, 使用过这个表达 scanf("%*[^\n]")

2. 管道

管道可以把一系列命令连接起来,意味着第一个命令的输出将作为第二个命令的输入,通过管道传递给第二个命令,第二个命令的输出又 将作为第三个命令的输入,以此类推。就像通过使用“|”符连成了一个管道。

3. 输入/输出重定向

大多数 linux 系统命令从你的终端接受输入并将所产生的输出发送回到您的终端。一个命令通常从一个叫标准输入的地方读取输入,默认情况下,这恰好是你的终端。同样,一个命令通常将其输出写入到标准输出,默认情况下,这也是你的终端。

输入/输出重定向是改变Shell命令或程序默认的标准输入/输出目标,重新定向到新的目标。

Linux中默认的标准输入定义为键盘,标准输出定义为终端窗口

输出重定向

重定向一般通过在命令间插入特定的符号来实现。特别的,这些符号的语法如下所示:

command1 > file1

上面这个命令执行command1然后将输出的内容存入file1。

注意任何file1内的已经存在的内容将被新内容替代。如果要将新内容添加在文件末尾,请使用>>操作符。

输入重定向

和输出重定向一样,Unix 命令也可以从文件获取输入,语法为:

command1 < file1

这样,本来需要从键盘获取输入的命令会转移到文件读取内容。

注意:输出重定向是大于号(>),输入重定向是小于号(<)。