输入输出


命令返回值


如何判断一个命令是否执行成功?????
echo$?
命令的返回值
返回值是0,则代表上一条命令执行成功
返回值非0,则代表上一条命令执行不成功

输入输出_重定向


重定向


将原本要输出到屏幕上的内容,重新输入到其他设备中

作用:

1.当屏幕输出的信息很重要,而且希望保存重要的信息时。
2.后台执行中的程序,不希望他干扰屏幕正常的输出结果时。
3.系统的例行命令, 例如定时任务的执行结果,希望他可以存下来时。
4.一些执行命令,我们已经知道他可能出现错误信息, 想将他直接丢弃时。
5.执行一个命令,可能报错和正确的输出并存,类似错误日志与标准正确日志需要分别输出至不同的文件。


输入输出


文件描述符


执行一个​​shell​​程序时通常会自动打开三个文件描述符

文件描述符

名称

作用

0

stdin

标准输入:通常是键盘,也可以是其他文件或者命令的输出的内容可以作为标准输入

1

stdout

标准输出:默认输出到屏幕

2

stderr

错误输出:默认输出到屏幕

3+

文件名



查看标准输入输出设备

输入输出_重定向_02


ping www.baidu.com > /dev/pts/2

输入输出_重定向_03

输入输出符号


符号

名称

作用

< 或者 0<

标准输入重定向

将符号右边的内容交给符号左边的命令

<<或者0<<



>或者1>

标准输出覆盖重定向

将原本要输出在屏幕上的正确内容,覆盖到重定向的文件中

>>或者1>>

标准输出追加重定向

将原本要输出在屏幕上的正确内容,追加到重定向的文件中

2>

错误输出覆盖重定向

将原本要输出在屏幕上的错误内容,覆盖到重定向的文件中

2>>

错误输出追加重定向

将原本要输出在屏幕上的错误内容,追加到重定向的文件中


举例

1.输入重定向

cat < /etc/passwd(从文件输入,不从键盘输入) 该命令< 可省略。 
#cat >> 1.txt <<EOF
<<结束符 为固定用法


输入输出_重定向_04

# dd </dev/zero >./2.txt bs=1K count=1024
= dd if=/dev/zero of=/root/2.txt bs=1K count=1024


输入输出_标准输出_05

2.标准输出重定向

#date > test.txt 先清空,后写入, 如果文件不存在则创建(覆盖)
#whoami >> test.txt 向test.txt文件末尾追加内容(追加)


3.错误输出重定向

# cd /shdgjakahd 2> test.txt(覆盖)
# cd /root/sgdhsg 2>> test.txt(追加)


4.正确和错误都输入到相同位置

标准输出和标准错误输出重定向到同一个文件, 混合输出
# find /etc name "*.conf" 1> testsame.txt 2>&1 (第一个1可省略)
若程序执行只存在两种输出 标准输出和错误输出 可使用
# find /etc name "*.conf" &> testsame.txt


输入输出_重定向_06

输入输出_标准输出_07

正确输出保存到testright.txt,错误输出保存到testerror.txt
# find /etc name "*.conf" > testright.txt 2> testerr.txt


输入输出_标准输出_08