一、输入输出重定向
- 输入/输出重定向是改变shell命令或程序默认的标准输入/输出目标,重新定向到新的目标。
- linux中默认的标准输入定义为键盘,标准输出定义为终端窗口。
用户可以为当前操作改变输入或输出,破事某个特定命令的输入或输出来源为外部文件。
重定向符 | 含义 | 实例 |
>file | 将file文件重定向为输出源,新建模式 | ls /usr>Lsoutput.txt,将ls /usr的执行结果写到Lsoutput.txt文件中,若有同名文件将被删除。 |
>>file | 将file文件重定向为输出源,追加模式 | ls /usr>>Lsoutput.txt,将ls /usr的执行结果追加到Lsoutput.txt文件已有内容后 |
<file | 将file文件重定向为输入源 | wc<file1,将file1中的内容作为输入传给wc命令 |
2>或&> | 将由命令产生的错误信息输入到文件中 | ls noexistingfile.txt 2>err.log,使用ls命令,查看一个不存在的文件时,将系统错误提示保存在err.log文件中。 |
1、>file
新建模式:如果这个文件不存在会创建一个;若存在,会覆盖掉原有内容。
linux@ubuntu:~$ ls / >file1
file文件中被写入了根目录下的清单列表内容。
打开file1可以看到。
现欲将etc下的文件写入file1中,并且覆盖原有内容。
linux@ubuntu:~$ ls /etc > file1
将/etc中的内容写入了file1文件中,覆盖了原有的根目录下的内容。
2、>>file
追加模式:如果这个文件不存在,会创建一个;若存在,会在原有文件之后追加内容,原有内容不做删减。
linux@ubuntu:~$ ls /etc >> file1
进行了两次追加,文件大小是原来的3倍!
往file2文件中写入“abc”,进行一次追加,文件大小是原来的2倍。
3、<file
文件作为输入源,传递给命令。
linux@ubuntu:~$ wc < file2
其实以往关于文件的命令,默认中间均省略了一个“<”号,它的含义是文件作为输入源。
wc命令用于显示行数、单词数、字符数。
4、2> 或 &>
将系统错误信息保存到一个指定的文件中。
ls -l filew.txt 2>wrong.txt
ls -l filew.txt 2>>wrong.txt
ls -l wd.txt test.txt &> right_wrong.txt
命令完成将存在的test.txt的文件信息存入right.txt,将不存在的wd.txt文件的系统错误提示信息存入wrong.txt
right.txt 、wrong.txt 都是此刻新建的。
还有一种“&>”的方式,可以将以上两种信息同时存入一个文件。
同样可以有追加模式
ls -l wd.txt test.txt &>>right_wrong.txt
二、命令置换
定义:将一个命令的输出作为另一个命令的参数。
格式:command1 'command2'
linux@ubuntu:~$ ls 'pwd'
linus@ubuntu:~$ ls $(pwd)
如果没有这个 ‘ ’号,系统认为pwd是个文件夹,命令要求显示pwd这个文件夹里的信息。
如果有这个' '号,命令的意义是:将pwd这条命令的执行结果作为ls的参数。
pwd这条命令本身是打印当前目录。ls 'pwd'是将当前目录的打印结果列出。所以 ls 'pwd' 和 ls 这两条命令执行完的效果是一样的。但意义不一样。
注!:这个' '号是键盘上,ESC键下的那个键。
echo "Today is 'date'"
date本身是一条命令,显示时间、日期。
而echo " Today is 'date' "则是将date命令的输出(也就是显示的时间、日期)作为echo这条命令的参数。
显示结果,可以表此意。
三、要点
1、shell中输入、输出重定向的用法。
2、命令置换的使用方法。