Linux-I/O重定向

一. 标准输入、标准输出、标准错误

在这里插入图片描述有些进程都有标准输入、标准输出、标准错误这三个FD,分别为0,1,2;
文件描述符0是键盘,只能读;
文件描述符1是终端,只能写;
文件描述符2是终端,只能写;
在这里插入图片描述如果这个进程打开了一个可写的文件,会有其他FD指向改文件,是可读可写的
在这里插入图片描述

二. 文件描述符FD

file descriptors 或 Process I/O channels
进程用文件描述符来管理打开的文件

2.1 创建文件描述符来指向一个文件(打开文件句柄)

exec 文件描述符<> 目标文件

在这里插入图片描述

2.2 向文件描述符中写数据就是向目标文件写数据

在这里插入图片描述
在这里插入图片描述

2.3 删除文件后,文件描述符还在

在这里插入图片描述

2.4 可以把文件描述符复制为一个文件

在这里插入图片描述

2.5 删除一个文件描述符(释放文件句柄)

exec 文件描述符<&-

在这里插入图片描述

三. 查看系统设置的能打开最大的文件描述符数

在这里插入图片描述

四. 输入重定向

标准输入重定向: < 等价于 0<

五. 输出重定向

标准输出重定向: > 等价于 1>
>> 1>>
标准错误重定向: 2>
2>>
both标准输出和标准错误重定向: &> &>>
先把标准输出重定向,再把标准错误重定向到标准输出: 1> 1.txt 2>&1

六. 创建块设备文件和字符设备文件 mknod

# mknod name type(c或b)主设备号 从设备号
mknod /dev/andy c 1 3

七. 同时把多个程序的输出重定向

(程序1;程序2) > 1.txt

[root@DTOS data]# (ll;22;date) &>1.txt
[root@DTOS data]# cat 1.txt 
total 5517504
-rw-r--r--  1 root root 2330555665 Dec  9 10:00 106b204cs.sql
-rw-r--r--  1 root root    3544066 Dec 10 10:01 130.sql
-rw-r--r--  1 root root          0 Dec 15 17:54 1.txt
-rw-r--r--  1 root root      33718 Dec 14 14:08 device.sql
drwxr-xr-x. 4 root root         36 Nov 12 03:34 middleware
-rw-r--r--  1 root root  985219913 Dec  9 22:24 oldchangsha.sql
-rw-r--r--  1 root root 2330555665 Dec  9 10:00 现场204版本的库.sql
-bash: 22: command not found
Tue Dec 15 17:54:01 CST 2020
[root@DTOS data]# 

八. 把整个while循环的所有输出重定向

可以带括号也可以不带

while [ $n -le 10 ]; do echo "11"; date; let n++; done &>2.txt

(while [ $n -le 10 ]; do echo "11"; date; let n++; done) &>2.txt

最后加个&就是扔到后台运行

(while [ $n -le 10 ]; do echo "11"; date; let n++; done) &>2.txt &

九. 只要是加了括号的就是扔到子shell中执行,不会运行本shell的环境

[root@DTOS data]# (umask 777;touch file1.txt)
[root@DTOS data]# ll file1.txt 
---------- 1 root root 0 Dec 15 18:11 file1.txt
[root@DTOS data]# umask
0022
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值