Linux:文件描述符

Linux:文件描述符

在Linux系统中,有一个万物皆文件的概念,在/dev文件下,都是对接的一些设备信息

命令:ls /dev/std*

 stdin是标准输入接收设备,stdout是标准输出显示设备,stderr是错误输出显示设备,根据这些输出内容进行重定向

1、正常输出重定向命令:ls > 1.txt 或者 ls 1> 1.txt

解析1:此时ls命令的输出不会打印到屏幕上,重定向到1.txt文件中,可以通过cat 1.txt文件查看输出的内容

解析2:使用>符号重定向到同一文件时,后面的重定向命令会直接覆盖文件,可以使用追加重定向>>,只会在文件后面追加内容,不会覆盖以前的

命令:ls -zt

2、错误输出重定向命令:ls -zt 2> 2.txt

解析1:这个命令运行时报错,异常输出的重定向需要使用命令:ls -zt 2> 2.txt,在>前面加个2,不能直接使用>,>这个只能重定向正常输出

解析2:同理,使用2>>追加错误输出的信息,而不覆盖以前的

3、正常输出和错误输出分别重定向命令:ls -l /etc xxx > 1.txt 2> 2.txt

解析:当一个命令执行既有正常和异常输出时,可以同时使用>和2>将正常输出和异常输出重定向到不同文件中

4、正常输出和错误输出重定向到同一文件命令:ls -l /etc xxx &> 3.txt

解析:使用&>符号将所有输出都重定向到一个文件中

错误输出重定向到标准输出命令:ls -l /etc xxx >3.txt 2>&1

同理,标准输出重定向到错误输出的命令:ls -l /etc xxx 2>3.txt 1>&2

解析:这个命令是先将标准输出重定向到3.txt,然后使用2>&1命令将错误输出追加重定向到标准输出,有点绕哈

5、从文件读入数据命令:read x < 1.txt

解析:把1.txt的内容读入后赋值给x变量,可以使用echo $x查看x变量的值,实际操作后发现如果1.txt文件包含多行数据时,x变量值为1.txt文件的第一行数据,其他数据没有读入

Linux特殊设备:

/dev/null:所有传给他的东西都被丢弃

/dev/zero:产生无限的空字符

可以使用命令:cat /dev/zero >> 4.txt,读取zero的空字符写入到文件,模拟写大量的数据,对硬盘速度和I/O设备写速度进行测试

在管道中使用变量:

管道是独立进程,执行完即销毁,可以使用{}或者while组合编写复杂的控制逻辑

可以使用以下两个方式获得变量x:

echo "hello world" | { read x;echo $x; }    这个shell脚本真不好用,少个空格都会报错

ls | while read y;do echo $y;done  如果输出有多条记录,需要循环读入,否则只取第一行数据

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值