Linux重定向和管道

一、重定向

程序=指令+数据
没打开一个文件都有一个文件描述符fd(其实就是数字)

输入输出

标准输出
标准正确输出	1
标准错误输出	2

输出重定向

>:正确覆盖重定向
>>:正确追加重定向
2>:错误覆盖重定向
2>>:错误追加重定向
标准输出和错误出各自重定向到不同的位置中

合并标准输出和错误输出为同一个数据流进行重定向

&>:标准覆盖重定向
&>>:标准追加重定向
2>&1:将错误流重定向到标准正确流中
1>&2:将正确流重定向到标准错误流中

标准输入

覆盖
[root@localhost ~]# cat > test <<EOF
> ...
> EOF
追加
[root@localhost ~]# cat >> test <<EOF
> ...
> EOF

二、管道

管道符:|
command1 | command2 | command3
后一个命令会将当前shell进程的子shell中执行

tr命令:转换命令

-d删除

案例1

将/etc/passwd文件中的前5行内容转换为大写后保存至/root/passwd.out文件中

[root@localhost ~]# head -n 5 /etc/passwd | tr 'a-z' 'A-Z' > /root/passwd.out
[root@localhost ~]# cat passwd.out 
ROOT:X:0:0:ROOT:/ROOT:/BIN/BASH
BIN:X:1:1:BIN:/BIN:/SBIN/NOLOGIN
DAEMON:X:2:2:DAEMON:/SBIN:/SBIN/NOLOGIN
ADM:X:3:4:ADM:/VAR/ADM:/SBIN/NOLOGIN
LP:X:4:7:LP:/VAR/SPOOL/LPD:/SBIN/NOLOGIN

案例2

将登录至当前系统上用户信息中最后一行的信息转换为大写后保存至who.out文件中

who | tail -n 1 | tr 'a-z' 'A-Z' > who.out

wc命令

-l:显示行数
-w:单词数
-c:显示字符数

cut命令

-d:指定分割符
-f:指定字段
sort命令
-f:忽略大小写
-r:逆序
-t:字段分隔符
-k:以指定字段为标准排序
-n:以数值进行排序
-u:排序后去重

uniq命令

-c显示每行重复出现的次数
-d:仅显示重复过的行
-u:仅显示没有重复过的行	

案例

以冒号为分隔符,取出/etc/passwd文件中的第6列到第10列,并将这些信息按照第2个字段的数值大小进行排序,最后仅显示一个字段。
[root@localhost ~]# cut -d: -f6-10 /etc/passwd | cut -d: -f2 | sort -n | uniq -c
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值