LINUX之<< ,<,>>,>
来源:互联网 发布:网络信息管理办法 编辑:程序博客网 时间:2024/04/27 07:37
linux启动后,会默认打开3个文件描述符,分别是:标准输入standard input 0,正确输出standard output 1,错误输出:error output 2
以后打开文件后。新增文件绑定描述符 可以依次增加。 一条shell命令执行,都会继承父进程的文件描述符。因此,所有运行的shell命令,都会有默认3个文件描述符。
linux shell下常用输入输出操作符是:
1. 标准输入 (stdin) :代码为 0 ,使用 < 或 <<
2. 标准输出 (stdout):代码为 1 ,使用 > 或 >>
3. 标准错误输出(stderr):代码为 2 ,使用 2> 或 2>>
touch 文件名字;(创建新文件)
>,>>
输出重定向:表示把将输出重定向到屏幕或者设备或者文件
下面我们直接看一些例子吧
qiweijie@qiweijie:~/study_shell$ ls t.txt t.txt1ls: 无法访问t.txt1: 没有那个文件或目录
t.txt
# 正确输出和错误输出都显示在屏幕上
# 我们试着把正确输出重定向到suc.txt(success),可以看到屏幕输出上只有错误输出了,
#从这里也可以看出,默认的正确输出(代码为1,)是可以忽略不写的
qiweijie@qiweijie:~/study_shell$ ls t.txt t.txt1 >suc.txt
ls: 无法访问t.txt1: 没有那个文件或目录
qiweijie@qiweijie:~/study_shell$ cat suc.txt
t.txt
# 正确输出和错误输出分别输出到不同的文件
qiweijie@qiweijie:~/study_shell$ ls t.txt t.txt1 1>suc.txt 2>err.txt
qiweijie@qiweijie:~/study_shell$ cat suc.txt err.txt
t.txt
ls: 无法访问t.txt1: 没有那个文件或目录
# >> 这样写表示追加到文件
qiweijie@qiweijie:~/study_shell$ ls t.txt t.txt1 1>>suc.txt 2>>err.txt
qiweijie@qiweijie:~/study_shell$ cat suc.txt err.txt
t.txt
t.txt
ls: 无法访问t.txt1: 没有那个文件或目录
ls: 无法访问t.txt1: 没有那个文件或目录
# &[-,1,2] 分别表示关闭对应的标识,正确输出,错误输出
# 关闭错误输出
qiweijie@qiweijie:~/study_shell$ ls t.txt t.txt1 2>&-
t.txt
# 错误输出重定向到/dev/null
qiweijie@qiweijie:~/study_shell$ ls t.txt t.txt1 2>/dev/null
t.txt
# 错误输出重定向到到文件
qiweijie@qiweijie:~/study_shell$ ls t.txt t.txt1 2>err1.txt
t.txt
# 关闭正确输出和错误输出
qiweijie@qiweijie:~/study_shell$ ls t.txt t.txt1 1>&- 2>&-
# 都输出到/dev/null
qiweijie@qiweijie:~/study_shell$ ls t.txt t.txt1 1>/dev/null 2>/dev/null
# 把错误输出重定向到正确输出,正确输出重定向到/dev/null
qiweijie@qiweijie:~/study_shell$ ls t.txt t.txt1 1>/dev/null 2>&1
qiweijie@qiweijie:~/study_shell$ ls t.txt t.txt1 >/dev/null 2>&1
qiweijie@qiweijie:~/study_shell$ ls t.txt t.txt1 >ttt.txt 2>&1
qiweijie@qiweijie:~/study_shell$ cat ttt.txt
ls: 无法访问t.txt1: 没有那个文件或目录
t.txt
# &代表所有输出
qiweijie@qiweijie:~/study_shell$ ls t.txt t.txt1 &>/dev/null
qiweijie@qiweijie:~/study_shell$ ls t.txt t.txt1 &>te.txt
qiweijie@qiweijie:~/study_shell$ cat te.txt
ls: 无法访问t.txt1: 没有那个文件或目录
t.txt
输入重定向<,<<
也是直接来看一些例子吧
# cat命令表示从屏幕获取输入,然后输出
qiweijie@qiweijie:~/study_shell$ cat
sadf
sadf
# 最简单的例子,从屏幕获取输入,然后重定向给qwj(这里用到是的是输出重定向
qiweijie@qiweijie:~/study_shell$ cat > qwj
qiweijie shi 2B
qiweijie@qiweijie:~/study_shell$ cat qwj
qiweijie shi 2B
#这里首先是从文件qwj获取输入给cat,然后cat输入重定向给qwj1
qiweijie@qiweijie:~/study_shell$ cat > qwj1 <qwj
qiweijie@qiweijie:~/study_shell$ cat qwj1
qiweijie shi 2B
# << 两个小于号连在一起表示接受一个输入结束的标识,当输入这个标识是结束输入
qiweijie@qiweijie:~/study_shell$ cat > qq << eof
> q
> w
> j
> eof
qiweijie@qiweijie:~/study_shell$ cat qq
q
w
j
qiweijie@qiweijie:~/study_shell$ cat > qqq << e
> q
> w
> e
qiweijie@qiweijie:~/study_shell$ cat qqq
q
w
qiweijie@qiweijie:~/study_shell$
- LINUX之<< ,<,>>,>
- Linux基础之Linux简介
- [linux]Linux命令之ln
- linux初识之 linux是什么
- [Linux] Linux命令之pstree
- linux之学习之路
- linux初学者走进linux之linux安装
- Linux网络安全之经验谈
- linux编程之路
- linux编程之路
- Linux常用命令之二
- linux基础之Makefile
- Linux FTP之vsftp
- 探索LINUX之路
- Linux之进程篇
- Linux之线程篇
- Linux群雄之我见
- Linux网络安全之经验谈
- Android--购物车的实现详解
- 设计模式之懒汉单例非线程安全
- 玲珑学院OJ 1130
- Dynamic CRM 之判断用户是否具有某种角色
- 图像处理之图片展示
- LINUX之<< ,<,>>,>
- 366. Find Leaves of Binary Tree
- redis实例
- iOS
- 几种简单排序算法
- 36、两个链表的第一个公共结点
- mySQL (关系型数据库管理系统)
- PHP开发APP接口
- Android