Linux tee命令简介
Linux tee命令简介
tee 简介
功能说明:读取标准输入的数据,并将其内容输出成文件。
语 法:tee [-ai][--help][--version][文件…]
补充说明:tee指令会从标准输入设备读取数据,将其内容输出到标准输出设备,同时保存成文件。我们可利用tee把管道导入的数据存成文件,甚至一次保存数份文件。
参 数:-a 附加到既有文件的后面,而非覆盖它。如果给予tee指令的文件名称已经存在,预设会覆盖该文件的内容。加上此参数后,数据会新增在该文件内容的最后面,而不会删除原先之内容。
-i 忽略中断信号
--help 在线帮助
--version 显示版本信息
范 例:
1 tee file //将标准输入覆盖写入到file中,同时在退出时再打印一遍
2 tee -a file //同上,只不过时追加不是覆盖
3 tee - //输出到标准输出两次
4 tee - - //输出到标准输出三次
5 tee file1 file2 - //输出到标准输出两次,并写到那两个文件中
6 ls | tee file //命令标准输出保存至file
7 ls "*" 2>&1 | tee ls.txt //标准错误也被tee读取
实 例:
1、显示lsscsi的输出结果,同时将输出结果保存到aa、bb、cc三个文件#
[root@localhost ~]# lsscsi -l |tee aa cc dd
[0:0:0:0] storage HP P410i 5.70 -
state=running queue_depth=1024 scsi_level=6 type=12 device_blocked=0 timeout=0
[0:1:0:0] disk HP LOGICAL VOLUME 5.70 /dev/sda
state=running queue_depth=1013 scsi_level=6 type=0 device_blocked=0 timeout=30
[root@localhost ~]#
[root@localhost ~]# cat aa cc dd
[0:0:0:0] storage HP P410i 5.70 -
state=running queue_depth=1024 scsi_level=6 type=12 device_blocked=0 timeout=0
[0:1:0:0] disk HP LOGICAL VOLUME 5.70 /dev/sda
state=running queue_depth=1013 scsi_level=6 type=0 device_blocked=0 timeout=30
[0:0:0:0] storage HP P410i 5.70 -
state=running queue_depth=1024 scsi_level=6 type=12 device_blocked=0 timeout=0
[0:1:0:0] disk HP LOGICAL VOLUME 5.70 /dev/sda
state=running queue_depth=1013 scsi_level=6 type=0 device_blocked=0 timeout=30
[0:0:0:0] storage HP P410i 5.70 -
state=running queue_depth=1024 scsi_level=6 type=12 device_blocked=0 timeout=0
[0:1:0:0] disk HP LOGICAL VOLUME 5.70 /dev/sda
state=running queue_depth=1013 scsi_level=6 type=0 device_blocked=0 timeout=30
2、用tee生成一个文件,包含你敲入的内容#
代码如下:
$tee testfile
这样,会提示要你用标准输入输入内容,然后敲回车会将你输入的内容写入testfile和输出到标准输出,如果用[Ctrl]d结束输入([Ctrl]c也行)。如果原来testfile有内容,将会覆盖。
3、把内容追加到文件的末尾行#
代码如下:
$tee -a testfile
结果类似上,不过如果原来testfile有内容则不会覆盖而是追加。
4、生成一个文件,敲入的时候,不接受中断信号#
代码如下:
$tee -i testfile
结果同testfile,不过不会接收中断信号,只能用[Ctrl]d结束,而不能用[Ctrl]c了。
5、tee命令和sudo一起使用#
假设只可以用一个sudo用户,希望写入root用户拥有权限的文件。任何提升操作都需要在命令之前调用sudo用户。要实现这一点,只需在tee命令前面加上sudo,如下所示:
[guo@localhost ~]$ echo "10.200.50.20 db-01" | sudo tee -a /etc/hosts/
6、在vim编辑器中使用tee#
假设你是一个非root用户,你正在修改root用户拥有的文件,忘记使用sudo权限打开文件,现在你想保存更改,示例如下:
[guo@localhost ~]$ vim /etc/hosts
现在要将更改保存到vim编辑器中的/etc/hosts文件,请运行:
:w !sudo tee %
面提示输入用户的密码,输入完成之后即可保存成功。
总结:
tee命令是一个命令行工具,它从标准输入读取数据,同时将结果打印到文件中和标准输出到屏幕中。