shell基础-bash基本功能-输入输出重定向
2017-03-26 21:27
756 查看
1. 标准输入输出
设备 | 设备文件名 | 文件描述符 | 类型 |
---|---|---|---|
键盘 | /dev/stdin | 0 | 标准输入 |
显示器 | /dev/stdout | 1 | 标准输出 |
显示器 | /dev/stderr | 2 | 标准错误输出 |
数字0代表标准输入;1代表标准输出;2代表标准错误输出。
2. 输出重定向
在Linux中执行某一命令的输出结果,本应该输出到屏幕(显示器),输出重定向指的就是把这个输出结果,重定向输出到其他指定的文件或设备中。2.1 标准输出重定向
前提条件:命令有输出,且命令输出的结果是正确输出。基本的命令格式 | 作用 |
---|---|
命令 > 文件 | 以覆盖的方式,将命令的正确输出,重定向输出到指定的文件或设备中。 |
命令 >> 文件 | 以追加的方式,将命令的正确输出,重定向输出到指定的文件或设备中。 |
示例:
date > aaa
date命令的标准输出将不会输出到屏幕,而是重定向写入到aaa文件中,并覆盖该文件中的原有内容。
date >> aaa
date命令的标准输出将不会输出到屏幕,而是重定向追加到aaa文件中,不会覆盖该文件中的原有内容。
说明:覆盖符号(>)或追加符号(>>)前后的空格,都可以省略,但习惯加上空格。
2.2 标准错误输出重定向
前提条件:命令有输出,且命令输出的结果是错误输出。基本的命令格式 | 作用 |
---|---|
错误命令 2> 文件 | 以覆盖的方式,将命令的错误输出,重定向输出到指定的文件或设备中。 |
错误命令 2>> 文件 | 以追加的方式,将命令的错误输出,重定向输出到指定的文件或设备中。 |
注意:数字2后面不能有空格,后面必须紧跟大于号。
示例:
lst 2> a.txt 将错误命令lst的输出,以覆盖的方式,输出到该文件中。
2.3 正确输出和错误输出同时重定向
前提条件:命令有输出。无论命令的输出是正确输出还是错误输出,都可以用这种重定向。
基本的命令格式 | 作用 |
---|---|
命令 > 文件 2>&1 | 以覆盖的方式,将命令的输出,重定向输出到指定的文件中。 |
命令 &> 文件 | 同上。 |
命令 >> 文件 2>&1 | 以追加的方式,将命令的输出,重定向输出到指定的文件中。 |
命令 &>> 文件 | 同上。 |
命令 >> 文件a 2>>文件b | 如果命令是正确的,以追加的方式,把输出保存到文件a中;如果命令是错误的,以追加的方式,把输出保存到文件b中。 |
命令 &> /dev/null | 直接将输出丢弃到垃圾箱(相当于不保存任何输出结果)。 |
ls &> a.txt 无论ls命令正确与否,都以覆盖的方式,把输出保存到a.txt文件中。 lst &>> a.txt 无论lst命令正确与否,都以追加的方式,把输出保存到a.txt文件中。 date &> /dev/null 无论date命令正确与否,都将输出直接丢弃到垃圾箱,即没有任何输出。
说明:同时重定向覆盖符号(&>)或同时重定向追加符号(&>>)前后的空格都可以省略,但习惯加上空格。
/dev/null是Linux的一个特殊文件,是空,是黑洞,是不存在的,可以当做垃圾箱。
3. 输入重定向
在Linux中输入某一命令的参数时,本应该从键盘输入,输入重定向指的是将这些参数的输入重定向为以其他的方式输入。输入重定向用的很少,了解即可。
输入重定向一般有两种格式:
命令 < 文件
把文件作为命令相关参数的输入。
命令 << 标识符 输入的内容 标识符
第一个标识符为起始标识符,可以为任意字符串,后面应回车。 第二个标识符为结束标识符,应位于最后一行的行首。 两个标识符应相同,中间的内容才是要输入的内容。
这里,通过wc命令来进行演示,wc是一条统计命令。默认会统计某个文件中的或从键盘输入的内容的行数、单词数、字符数。
命令格式:wc [选项] [文件名]
选项:
-l 只统计行数 -w 只统计单词数 -c 只统计字符数
示例:
wc a.txt 显示文件a.txt中统计出的行数、单词数、字符数和文件名a.txt。 wc < a.txt 输入重定向。显示文件a.txt中统计出的行数、单词数、字符数。
[root@localhost ~]# wc you are a busy man 2 5 19
输入内容完毕后,回车,按Ctrl + D,输出统计结果。
[root@localhost ~]# wc << hello > you are > a busy man > hello 2 5 19
输入重定向。在命令行的行首再次碰到相同的标识符hello,回车,输出统计结果。
总结: 重点掌握输出重定向,了解输入重定向。
相关文章推荐
- Linux学习日记 —— 10.3.3 Shell基础-Bash基本功能-输入输出重定向
- Shell基础-Bash基本功能-输入输出重定向
- Shell基础--Bash基本功能---输入输出重定向
- Shell基础-Bash基本功能-通配符和其他特殊符号
- Linux学习 -- Shell基础 -- Bash基本功能
- shell基础-bash基本功能-通配符和其他特殊符号
- Linux学习笔记(15)shell基础之Bash基本功能
- shell基础-输入输出以及重定向/多命令顺序执行与管道符/通配符与特殊符号
- Shell基础-Bash基本功能-多命令顺序执行与管道符
- shell基础五:输入和输出(echo,read,cat,管道,tee,重定向等)
- [Shell]Bash基本功能:输入输出重定向
- shell基础五:输入和输出(echo,read,cat,管道,tee,重定向等)
- Shell基础-Bash基本功能-历史命令与补全
- shell基础-bash基本功能-历史命令与补全
- shell基础-Bash基本功能---历史命令、补全、别名和快捷键
- shell基础五:输入和输出(echo,read,cat,管道,tee,重定向等)
- linux笔记:shell基础和bash的基本功能
- linux笔记:shell基础-bash基本功能
- Shell基础之Bash的基本功能
- shell基础五:输入和输出(echo,read,cat,管道,tee,重定向等)