Linux重定向和管道

重定向的作用

     将标准输出(即屏幕)的信息指向一个文件,或将标准输入(即键盘)的信息指向一个文件。重定向的代号有>、<。

 

                                                    文件名             描述符(数字代号)

标准的输入:键盘                         /dev/stdin                0

标准的输出(正常信息):显示器      /dev/stdout              1

错误输出(错误提示):显示器         /dev/stderr               2

注:std是standard标准的缩写,in是input输入的缩写,out是output输出的缩写,err是error的缩写。

 

查std标准文件:ls   -l   /dev/std*

注:结果中的fd是文件描述符的缩写(file  description)。

--------------------------

输出重定向

>    覆盖

>>  追加

2>>  错误信息追加

&>>  正确和错误信息均写入同一个文件

 

输出输入重定向

输入重定向

<</div>

<<

 

特殊设备文件

    /dev/null  黑洞文件,垃圾桶

    /dev/zero 无限0资源设备

    

实例:重定向输出的练习。

date

date  >  a.txt

cal  >> a.txt

cat   a.txt

ls  -ld   /etc   /xxx    查看目录属性,会提示一个错误和一个正确结果

ls  -ld   /etc   /xxx    2>>  a.txt    将错误的信息重定向追加写入到a.txt文件中

ls  -ld   /etc   /xxx    &>>  a.txt    将正确的和错误的信息重定向追加写入到a.txt文件中

cat   a.txt    显示全文内容

 

ls  -ld  /etc  /xxx   >  a.txt    2>  b.txt   将正确的信息覆盖写入a.txt,错误信息覆盖写入b.txt文件中

cat   a.txt   b.txt

 

实例:重定向输入的练习。

cat   /etc/hosts

cat   <  /etc/hosts

mail -s "today" root < /etc/hosts    将hosts文件的内容用邮件方式发给root用户

说明:查看邮件用mail命令,输入数字编号查看邮件内容,q键退出

 

实例:用cat创建新文件并写入多行内容。

cat > a.txt <<EOF      

111

222

333

444

EOF

解释:以上是将EOF   EOF之间的内容覆盖写入到a.txt文件中。其中EOF是命令临时的结束符,也可以用其他字符。

 

练习:

取消屏幕回显(不显示输入的命令)

stty  -echo

 

恢复屏幕回显

stty echo

 

df -h > /tmp/disk.txt  会覆盖原来的数据

df -h >> /tmp/disk.txt 在原来数据的基础上追加数据 不覆盖原来的数据

 

错误输出重定向

ipconfig 2>/tmp/ip.txt

 

把正确输出和错误输出存放在不同的位置

ls  /home  >a.txt  2>b.txt

 

把正确错误输出放在一起

ls /home &>/tmp/all

 

特殊设备文件

    /dev/null  黑洞文件,垃圾桶

    /dev/zero 无限0资源设备

 

输入重定向

cat < /etc/passwd

mail -s "today" jim < /tmp/jim.txt

 

#临时指定命令结束符为EOF,将EOF   EOF之间的内容覆盖写入到某个文件中

cat > a.txt <<EOF      

111

222

333

444

EOF

 

cat > b.txt    交互式操作

sadhjk

1111

22222

ctrl d 正常结束

 

交互式操作

进入命令的环境,直到结束该命令才回到命令提示符的环境

 

非交互式操作

该命令会直接显示结果然后回到命令提示符等待下 一个命令的输入

 

管道 

管道可以把管道前面进程的输出结果作为管道后面的进程输入内容处理

head -16 /etc/passwd | tail -1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值