重定向能够完结Linux指令的输入输出与文件之间重定向,以及完结将多个指令组合起来完结愈加强壮的指令。这部分涉及到的比较多的指令主要有:
没有单纯的一个操作符能够将规范过错信息重定向到文件中。要完结这一点有两种方法。第一种运用文件描述符,在shell中,默认用数字0,1,2别离代表规范输入、规范输出、规范过错。
Linux中有一个特别的文件/dev/null,这个文件叫做bit bucket,能够承受输入信息可是什么都不做。因而要按捺指令的输出信息,只需要如下操作:
cat指令能够承受一组文件为参数,将这些文件复制到规范输出。咱们前面的比方中现已屡次运用到cat指令来将文本文件的内容读取到屏幕上。
cat还有一个很重要的功用:承受一组文件,然后经过重定向将他们重新组合到一个文件中。咱们看一个比方:
规范的输入,输出和过错输出别离表明为STDIN,STDOUT,STDERR,也能够用0,1,2来表明
将一个程序的规范输出写到一个文件中去,再将这个文件作为另一个程序的输入。管道要处理的便是不需要临时文件就能将两条指令结合在一同。如:
Linux供给操作符,该操作符能够将一个指令的输出作为另一个指令的输入,这样经过多个指令的协作来完结一些比较复杂的内容。比方,咱们能够经过uniq指令来扫除重复的行。可是uniq指令往往需要和sort指令合作运用。由于uniq接纳一组排好序的文本,而刚好sort能够将文本行排序。咱们看下面的比方:
运用wc指令能够计算文本的行数、单词书和字节数。能够和例如ls指令的输出一同组成管道指令:
假如只是想要计算行数,只需要在wc指令后边增加-l选项即可。wc指令常用来计算代码的行数。
在这个比方中,zip便是一个形式,表明包括字符串zip。咱们在/bin和/usr/bin目录下找出姓名带有zip的程序,而且打印这些程序的姓名。grep指令能够运用正则表达式,功用也十分强壮,这儿咱们不偏重介绍。
head和tail指令也常常用于组成管道指令。head能够检查文件或许文本的前面部分。tail检查文件或许文本的结尾部分。二者都能够接纳-n选项,表明显现的行数。
tail还有一个重要的用途,便是实时显现某些程序的日志文件。tail能承受一个选项-f,实时显现出新增加到文件结尾的行数。这样一旦有新的行追加到日志文件的结尾,就会被实时显现在后边。