Bash的输入、输出重定向和管道

简介:

标准输入:stdin 用数字0表示
标准输入一般是文件或者是键盘
标准输出:stdout 用数字1表示
标准输出一般是显示屏
标准错误输出:stderr 用数字2表示
标准错误输出一般是显示屏
输出重定向:
标准输出是显示屏
Bash的输入、输出重定向和管道
标准输出重定向到指定文件。
Bash的输入、输出重定向和管道
Bash的输入、输出重定向和管道
再次进行标准输出重定向到指定文件
Bash的输入、输出重定向和管道
可以看到 stdout1 的内容始终没有变过,重定向符号 > 的作用就是覆盖原有文件的内容,将新的内容添加到原有文件中。
为了可以保留原有的原件内容,可以使用>>重定向符号,这个符号可以将新的输出内容追加到原有文件内容的后面。
Bash的输入、输出重定向和管道

错误重定向
标准错误的输出是显示屏
Bash的输入、输出重定向和管道
可以手动指定错误输出的目的是哪里。
2> 是错误输出 而且会覆盖掉目的文件之前的内容。
Bash的输入、输出重定向和管道
stdout1文件之前的内容就被覆盖了。
2>> 也是错误输出,但是它仅仅会将内容追加到指定的文件的最后,不覆盖之前的内容。
Bash的输入、输出重定向和管道
Bash的输入、输出重定向和管道
Bash的输入、输出重定向和管道
可以在一个命令的后面跟两个重定向的动作,标准输出和标准错误输出。
Bash的输入、输出重定向和管道
2>&1 2> 表示错误输出 1表示标准输出,错误输出 输出到标准输出 这个命令的意思就是不论命令执行正确与否 输出的内容都输出到stdout1中。

这个命令还可以简化来写:
Bash的输入、输出重定向和管道
这个是错误的报错内容输出到了stdout1
Bash的输入、输出重定向和管道
这个是标准输出 输出到stdout1
这个方式下 也可以使用追加,而不用覆盖。
Bash的输入、输出重定向和管道
请注意下面命令的使用方式。
Bash的输入、输出重定向和管道
由于命令执行正确,所以stdout1有内容,stdout2没有内容。
重新执行一次上面的命令,执行命令估计改成错误执行。
Bash的输入、输出重定向和管道
stdout1是空的 stdout2是有内容的,这个说明,在这个命令执行过程中,不论命令执行正确与否,都会将stdout1和stdout2内容覆盖一遍,如果命令执行正确,stdout1被标准输出内容覆盖,stdout2被空内容覆盖,如果命令执行错误,stdout1被空内容覆盖,stdout2被错误输出内容覆盖。
输入重定向
一般来说,信息的输入都是靠键盘来完成的,不过有些时候需要将整片文章导入程序。
使用<符号可以使用文件作为输入源。
Bash的输入、输出重定向和管道
将/etc/issue文件内容中的小写字母变成大写字母。
Bash的输入、输出重定向和管道

<< 这个符号就不是覆盖功能了,这个符号的作用是指定输入结束符。
Bash的输入、输出重定向和管道
Bash的输入、输出重定向和管道
这里>表示有内容要输出到文件123中,但是cat命令没有参数,直接输入cat系统会转入下一行让用户输入相关内容,然后立即显示并允许用户输入下一个内容。<<符号指定结束符,只要用户不输入指定符号,cat进程就一直运行,而且不会立即回显给用户。等用户输入了结束符,cat进程也不会显示用户输入的内容,而是把用户输入的内容输出到指定文件内。

set 命令中 -C(大写)的参数可以防止文件的内容被覆盖。
Bash的输入、输出重定向和管道
Bash的输入、输出重定向和管道
为了恢复默认操作使用 set +C(大写)就可以了
Bash的输入、输出重定向和管道
如果想单次关闭阻止操作可以使用 >|的命令
Bash的输入、输出重定向和管道
Bash的输入、输出重定向和管道
管道
将前一个命令的输出内容作为第二个命令的输入流
Bash的输入、输出重定向和管道
一条命令就将/etc/issue的内容中小写字母变成大写字母并输出到屏幕上。


本文转自 yueyue207 51CTO博客,原文链接:http://blog.51cto.com/yueyue207/2048210


相关文章
|
9月前
|
Shell
shell 命令(一)概述【别名、 bash重定向 、定义变量】
shell 命令(一)概述【别名、 bash重定向 、定义变量】
80 0
|
9月前
|
机器学习/深度学习 Unix Shell
Shell编程基础入门(Bash|变量与输入输出重定向2&1)
Shell编程基础入门(Bash|变量与输入输出重定向2&1)
143 0
|
存储 缓存 Shell
Bash 的基本功能:别名、快捷键、历史命令、输出重定向、管道符、Shell中特殊符号
一、命令别名 1. 命令生效的顺序 执行使用绝对路径或相对路径执行的命令 执行别名 执行Bash内部命令 执行按照 $PATH 环境变量定义的目录顺序查找到的第一个命令 2. 查看别名 命令格式
|
9月前
|
监控 安全 Shell
防止员工泄密的措施:在Linux环境下使用Bash脚本实现日志监控
在Linux环境下,为防止员工泄密,本文提出使用Bash脚本进行日志监控。脚本会定期检查系统日志文件,搜索敏感关键词(如&quot;password&quot;、&quot;confidential&quot;、&quot;secret&quot;),并将匹配项记录到临时日志文件。当检测到可疑活动时,脚本通过curl自动将数据POST到公司内部网站进行分析处理,增强信息安全防护。
213 0
|
9月前
|
Linux Shell Windows
4:Bash shell命令-步入Linux的现代方法
4:Bash shell命令-步入Linux的现代方法
121 0
|
Ubuntu 安全 Linux
不用安装虚拟机,直接在Windows上面运行Linux Bash Shell,嗯!真香!!!
不用安装虚拟机,直接在Windows上面运行Linux Bash Shell,嗯!真香!!!
369 0
|
关系型数据库 MySQL Shell
【Linux命令】-bash: mysql: command not found
【Linux命令】-bash: mysql: command not found
155 0
|
9月前
|
存储 Shell Linux
Linux Bash 脚本中的 IFS 是什么?
【4月更文挑战第25天】
188 0
Linux Bash 脚本中的 IFS 是什么?
|
7月前
|
存储 Shell Linux
Linux|创建和使用 Bash 别名
Linux|创建和使用 Bash 别名
81 6