①什么是输入输出的重定向
我们从键盘上输入,在屏幕中输出,这是默认的输入输出方式,所谓输入输出的重定向就是改变输入输出的方式,用文件来输入,以及输出到文件中。
②为什么要输入输出的重定向
比如写日志文件,肯定不能在屏幕上输出,我们必须把他保存在文件中,还有,如果有一个表的数据需要输入,一条一条的在键盘上敲很麻烦,所以必须使用重定向。
③怎么使用输入输出的重定向
一般使用以下格式
命令<文件名 或者 命令>文件名
括号的尖端指向那一边就表示输出到哪里,指向文件名当然是将命令的结果输出到文件中。指向命令当然是使用这种命令来读取文件了。
④例子
首先,创建一个文件并编辑它vim test,
(如果有这个文件会就编辑它,没有就会直接创建并编辑,如果退出时没保存,文件就不会创建。)
然后随便输入几条指令,比如echo `data`显示当前时间。保存退出。
接下来使用输入的重定向,把这个文件交给bash来执行。bash<test。
得到结果,结果是当前时间。
输出的例子仅用简单的2条语句就可以验证,pwd > test,pwd命令获取当前路径
使用cat test可以得到当前路径的结果
⑤附加输出重定向和内置输入重定向
附加输出重定向 >> 表示在文件末尾添加数据,前面的是指将文件内容清空了再写入文件
内置输入重定向 << 这里还是不太明白。
使用格式
命令 参数 <<标记符 mail $name<<%%
。。。内容 Hello
标记符 %%
这样就把%%里面的内容赋值给name了
⑥管道
输入输出重定向可以结合起来使用,比如
wc < test1> test2
使用wc命令统计test1的结果,然后把结果保存在test2文件中
这样做太过麻烦。使用管道可以达到同样的结果。额,这个好像不可以。
command1|command2
这个就是管道的用法。
ls | sort
这个就体现了管道的用法,列举当前目录的文件以及文件夹,并排序。如果文件较多还可以
ls | sort | more
而且这些命令是同时执行的。还可以
ls | sort > test