Linux基础命令(三)之 重定向操作符,管道符|,tee
目录
一,重定向操作符
编辑
常见用法:输出
常见用法:输入
二,管道符|
三,tee
参数及其作用
常见用法:
一,重定向操作符
重定向操作符将命令输入和输出数据流从默认设备重定向到其他位置。重定向操作符本身不是命令,而是命令中附加的可改变命令的输入和输出对象的特殊符号。
常见用法:输出
标准输出重定向:
1>
或>
、1>>
或>>
标准错误输出重定向:
2>
、2>>
>会覆盖文件中原有的内容 >>在原有的文件内容追加新的内容
背景准备
[root@localhost one]# touch test1
[root@localhost one]# echo "this is test1" >> test1
[root@localhost one]# cat test1
this is test1
1.输出重定向(覆盖)
[root@localhost one]# echo "覆盖" > test1
[root@localhost one]# cat test1
覆盖
2.输出重定向(追加)
[root@localhost one]# echo "追加" >> test1
[root@localhost one]# cat test1
覆盖
追加
3.正确和错误都输入到相同位置
[root@localhost one]# ls / /home/
/:
afs boot etc lib media ok opt proc run srv test usr
bin dev home lib64 mnt one p1 root sbin sys tmp var
/home/:
wang wang1 zheng
[root@localhost one]# ls / /home/ > test1
[root@localhost one]# cat test1
/:
afs
bin
boot
dev
etc
home
lib
lib64
media
mnt
ok
one
opt
p1
proc
root
run
sbin
srv
sys
test
tmp
usr
var
/home/:
wang
wang1
zheng
4.重定向到空设备/dev/null==空设备 相当于把产生的输出丢到垃圾箱中
[root@localhost one]# ls / /home/ > /dev/null
常见用法:输入
标准输入重定向:
<
或0<
、0<<
或<<
1.从文件读取数据作为cat命令的输入
[root@localhost one]# echo "this is file" > file
[root@localhost one]# cat < file
this is file
2.标准输入重定向<<
并不表示追加,而是表示输入结束的意思,即作为一个结束符。
[root@localhost one]# cat >> file << end
> 1
> 2
> end
[root@localhost one]# cat file
this is file
1
2
二,管道符|
用于两个命令或者多个命令相连接,将管道符左边命令的输出作为管道符右边命令的输入
三,tee
tee指令会从标准输入设备读取数据,将其内容输出到标准输出设备,同时输出到文件
参数及其作用
-a或--append,附加到现有文件的后面,而非覆盖它
-i或--ignore-interrupts 忽略中断信号
--help 在线帮助
常见用法:
tee [参数] 文件
1.直接使用
[root@localhost one]# tee file
file
file
^C
[root@localhost one]# cat file
file
[root@localhost one]# head -2 /etc/passwd | tee file
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
[root@localhost one]# cat file
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
2.-a 追加信息到文件中 tee -a [file]
[root@localhost one]# tee -a file
1
1
1
1
[root@localhost one]# cat file
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
1
1
3.写入多个文件 tee [file1] [file2] [file3]
[root@localhost one]# tee file1 file2 file3
1
1
2
2
^C
[root@localhost one]# cat file1 file2 file3
1
2
1
2
1
2