0
点赞
收藏
分享

微信扫一扫

linux基础day14:输入与输出

输入和输出

重定向的概念

**将原本要输出到屏幕的数据信息,重新定向到指定的文件中。 **

比如:每天凌晨定时备份数据,希望将备份数据的结果保存到某个文件中。这样第二天通过查看结果文件,就知道昨天备份数据是成功,还是失败。

命令返回值

# 如何判断上一条执行的命令是否成功

echo $?
显示0 就是成功 
其他数字是不成功

输入和输出

名称 文件描述符 作用
stdin 标准输入
stdout 1 标准输出
stderr 2 错误输出
文件名称 3+
[root@localhost ~]# ps -ef
UID         PID   PPID  C STIME TTY          TIME CMD
postfix    7279   7075  0 18:07 ?        00:00:00 pickup -l -t unix -u

[root@localhost ~]# ll /proc/7279/fd
total 0
lrwx------. 1 root root 64 Mar 24 18:08 0 -> /dev/null
lrwx------. 1 root root 64 Mar 24 18:08 1 -> /dev/null
l-wx------. 1 root root 64 Mar 24 18:08 10 -> pipe:[45439]
lrwx------. 1 root root 64 Mar 24 18:08 2 -> /dev/null
lr-x------. 1 root root 64 Mar 24 18:08 3 -> pipe:[38084]
l-wx------. 1 root root 64 Mar 24 18:08 4 -> pipe:[38084]
lrwx------. 1 root root 64 Mar 24 18:08 5 -> socket:[38014]
lrwx------. 1 root root 64 Mar 24 18:08 6 -> socket:[38012]
lrwx------. 1 root root 64 Mar 24 18:08 7 -> socket:[45423]
lrwx------. 1 root root 64 Mar 24 18:08 8 -> anon_inode:[eventpoll]
lr-x------. 1 root root 64 Mar 24 18:08 9 -> pipe:[45439]
l-wx------. 1 root root 64 Mar 24 18:08 92 -> pipe:[38097]

0:标准输入 
1:标准输出
2:错误输出
(0 1 2 都是常驻)
3:以上 都是文件名称

标准输入和标准输出.png

输出重定向

重定向: 改变标准输入、标准输出的方向的就是重定向

类型 操作符 用途
标准覆盖输出重定向 1> 将命令的执行结果输出到指定的文件中, 而不是直接显示在屏幕上
标准追加输出重定向 >> 将命令执行的结果追加输出到指定文件
错误覆盖输出重定向 2> 将程序的错误结果输出到执行的文件中,会覆盖源文件内容
错误追加输出重定向 2>> 将程序输出的错误结果以追加的方式输出到指定文件中,不会覆盖源文件
标准输入重定 << 将命令中接收输入的途径由默认的键盘更改为指定的文件

标准输出覆盖重定向

&:将正确输出和错误输出都定向到一个文件
cat sadhj &> a
[root@localhost ~]# cat a
cat: sadhj: No such file or directory

标准输出重定向(覆盖).png

标准输出追加重定向

[root@localhost ~]# echo hello yl >> a
[root@localhost ~]# cat a
cat: sadhj: No such file or directory
hello yl

标准输出重定向(追加).png

错误输出重定向

[root@localhost ~]# mv /sajklda 2> a
[root@localhost ~]# cat a
mv: missing destination file operand after ‘/sajklda’
Try 'mv --help' for more information.

错误输出重定向.png

正确与错误都输入到相同位置

find / -name "*.conf" &>ab
查找有.conf的文件并把所有东西都定向到ab
find / -name "*.conf" >ab 2&>1
查找有.conf的文件并把正确输出放入ab 把错误输出(2)定向为正确输出(1)

正确和错误输出到一个位置.png

错误的变成正确的输出到一个位置.png

重定向到空设备到垃圾桶

#空设备,即将产生的输出丢掉
[root@zls ~]# ls /root /error >ab 2>/dev/null
[root@zls ~]# ls /root /error >ab &>/dev/null

重定向到空设备到垃圾桶.png

输出重定向

dd 读取、转换并输出数据。
bs 代表字节为单位的块大小
count 代表被复制的块数
if 代表输入文件。如果不指定if,默认就会从stdin中读取输入
of 代表输出文件。如果不指定of,默认就会将stdout作为默认输出

dd if=/dev/zero of=/root/a bs=1M count=30
30+0 records in
30+0 records out
31457280 bytes (31 MB) copied, 0.162145 s, 194 MB/s


dd bs=1k count=1024 </dev/zero >/root/b
1024+0 records in
1024+0 records out
1048576 bytes (1.0 MB) copied, 0.00298446 s, 351 MB/s


举报

相关推荐

java基础 Day14

day14

Day14 IO

Oracle day14

Day14(String类)

day14学习总结

算法打卡Day14

0 条评论