linux中的重定向符和管道(<,><<,>>,|)
管道与重定向的使用
标准输入的文件描述符为0.
标准输出的文件描述符为1
错误输出的文件描述符为2
管道
管道:可以让我们将多条命令连接在一起。
作用:将一个命令的标准输出重定向给下一个命令,并作为该命令的标准输入。
(base) [root@localhost ~]# ifconfig ens33|grep 'inet' 过滤包含ip地址的行 inet 192.168.72.10 netmask 255.255.255.0 broadcast 192.168.72.255 (base) [root@localhost ~]#
重定向
输出重定向可以使用>或>>符号
> :可以将输出导入到文件,如果文件不存在,则创建该文件,如果文件已经存在,则会覆盖该文件的内容;
>>:可以将输出追加到文件
对于错误信息对的重定向
>2 >>2
代码示例:
(base) [root@localhost ~]# rpm -qa|grep gcc #查询计算机中是否安装了gcc (base) [root@localhost ~]# echo "pass" |passwd --stdin yan #设置yan 的密码为pass (base) [root@localhost ~]# ls #查看当前文件列表 anaconda2 dr-elephant-feature_spark2.3-12.1 node_modules (base) [root@localhost ~]# ls > list.txt #将输出保存至list.txt,屏幕无输出 (base) [root@localhost ~]# hostname >> list.txt #将主机名追加到list.txt文件尾部 (base) [root@localhost ~]# mail -s test xx@gmail.com <list.txt #发邮件,邮件内容来自list.txt (base) [root@localhost ~]# ls -l abc anaconda-ks.cfg #查看文件详细信息,abc不存在 ls: cannot access abc: No such file or directory -rw-------. 1 root root 1234 Nov 16 2020 anaconda-ks.cfg (base) [root@localhost ~]# ls -l abc anaconda-ks.cfg 2>error.txt #仅将错误从定向,不影响输出。 -rw-------. 1 root root 1234 Nov 16 2020 anaconda-ks.cfg (base) [root@localhost ~]# ls -l abc anaconda-ks.cfg > all 2>&1 #标准输出与错误输出都导入到all (base) [root@localhost ~]# ls -l abc anaconda-ks.cfg >> all 2>&1 #标准输出与错误输出追加到all (base) [root@localhost ~]# ls -l abc anaconda-ks.cfg &> all #标准输出与错误输出都导入到all