linux内核 ssh,查看linux系统内核版本和发行...-shell i/o常用重定向方法详解-Linux ssh上传与下载文件的例子_169IT.COM...

在Linux系统中,每个打开的文件都会被分配一个文件描述符.stdin (键盘), stdout (屏幕), 和 stderr (错误消息输出到屏幕上)的文件描述符分别是0, 1, 和 2. 对于正在打开的额外文件, 保留了描述符3到9。

linux文件描述符是文件系统为了跟踪这个打开的文件而分配给它的一个数字。大家多少还要掌握下Linux管道的相关知识,才能更好的理解本文的内容。

来看具体的例子吧。

1,>的用法

代码示例:

[root@localhost ~]$ echo "11111" > 1.txt

[root@localhost ~]$ cat 1.txt

11111

[root@localhost ~]$ echo "11111" 1> 1.txt    //这个用法和上面的用法是一样

[root@localhost ~]$ cat 1.txt

11111

[root@localhost ~]$ echo "22222" >1.txt

[root@localhost ~]$ cat 1.txt

22222

这种用法我想大家都非常的熟悉,因为这是我经常会用到的。echo "11111" > 1.txt 时,>前面是有一个1的,是默认的。>重定向到文件时,会将文件清空,在写入。

代码示例:

[root@localhost ~]$ > 1.txt

[root@localhost ~]$ :> 1.txt

可以把1.txt文件中的内容清空,其实也很好理解,清空后,不输入内容当然为空了。

2,>>的用法

代码示例:

[root@localhost ~]$ echo "2222" >> 2.txt

[root@localhost ~]$ cat 2.txt

2222

[root@localhost ~]$ echo "2222" >> 2.txt

[root@localhost ~]$ cat 2.txt

2222

2222

>>重定向到文件时,会将输出写到文件的结尾。这一点和>完全不同的。

3,0,1,2 到9,以及&

代码示例:

[root@localhost ~]$ cat 1.txt

333

111

222

444

[root@localhost ~]$ grep "22" 0< 1.txt  //把1.txt中的内容读取出来

222

[root@localhost ~]$ ls tank 2>> 1.txt   //将错误信息放到文件的结尾

[root@localhost ~]$ cat 1.txt

333

111

222

444

ls: tank: 没有那个文件或目录                 //这个就是 2>> 1.txt产生的内容

代码示例:

[root@localhost ~]$ (ls tank ;pwd) &>1.txt   //将错误信息,以及输出内容放到1.txt文件中,&(stderr,stdout)

[root@localhost ~]$ cat 1.txt

ls: tank: 没有那个文件或目录

/home/zhangy

i>&j重定向文件描述符i 到 j.指向i文件的所有输出都发送到j中去. i和j呢是0-9这间的数字

代码示例:

[root@localhost ~]$ ls tank 2>&1|egrep \* 1> 2.txt  //在这里我把错误信息重定向到了1,在这里1就会输出错误,根赋值差不多

[root@localhost ~]$ cat 2.txt

ls: tank: 没有那个文件或目录

4,<>的用法

这个符号是输出,放在一起就打开并且读取,

代码示例:

[root@localhost ~]$ echo 123546 > 2.txt

[root@localhost ~]$ exec 4<> 2.txt     //打开2.txt并将内容读取到&4中

[root@localhost ~]$ read -n 4

[root@localhost ~]$ echo -n . >&4      //在向&4写入一个点

[root@localhost ~]$ exec 4>&-          //关闭输出文件描述符4

[root@localhost ~]$ cat 2.txt

1235.6

5,n&关闭输出文件描述符n

代码示例:

[root@localhost ~]$ ls tank          //会提示错误

ls: tank: 没有那个文件或目录

[root@localhost ~]$ ls tank 2>&-     //我把错误关闭后,什么也不输出了

6,|管理命令

这个命令也是我们常用的,是典型的,把一个命令的输出,当作另一个命令的输入

代码示例:

[root@localhost ~]$ echo tank | wc -w

1

表示tank是一个输出,但它又是wc的输入,不然就不会有统计出现了。

0

您可能感兴趣的文章:

Linux重定向实例详解

解析:Linux之管道与重定向

深入linux中重定向及管道详解

深入linux上shell重定向详解>>

Linux中重定向命令行的方法总结

深入理解Linux重定向的使用

linux文件描述符与输入输出重定向

有关I/O重定向的详细教程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值