linux 重定向/管道

本文介绍了Linux命令行中关于文件重定向和管道的基本概念与使用技巧。通过标准输入重定向,可以从文件读取数据,例如在执行`tr`命令时。标准输出重定向则可以将命令输出保存到文件,支持覆盖和追加两种模式。管道功能允许将一个命令的输出作为另一个命令的输入,如`du`和`sort`的组合。文章还展示了如何利用这些工具处理和分析文件内容。
摘要由CSDN通过智能技术生成

文件重定向

文件描述符 0:keyboard…
标准输入重定向 从文件中读数据

设备文件描述符类型
键盘0标准输入
显示器1标准输出
显示器2错误输出

标准输入重定向

s19@GOJ:~$ cp /tmp/add .

s19@GOJ:~$ ./add
2 6
8
s19@GOJ:~$ nano a.in
s19@GOJ:~$ ./add <a.in
8

tr

  • tr只能从标准输入中读取数据,将输入文件重定向到标准输入,或从管道读入数据。
  • 对应替换 tr只能对用户键盘输入有效,不支持后面跟一个文件名进行处理
#替换abc为123
s19@GOJ:~$ tr abc 123
aaa
111
abbc
1223
abcde
123de
^C
#替换a-z到A-Z
s19@GOJ:~$ tr a-z A-Z
apple
APPLE
putty
PUTTY

s19@GOJ:~$ tr a-z A-Z < /tmp/student
JONH    DOE     ECE     3.54
PAM     MEYER   CS      3.61
JIM     DAVIS   CS      12.71
JASON   KIM     ECE     3.97
AMY     NASH    ECE     2.38
JIM     DAVIS   EECS    12.71
s19@GOJ:~$ tr a-z A-Z /tmp/student
tr: 额外的操作数 "/tmp/student"
Try 'tr --help' for more information.


标准输出重定向

  1. 命令>文件覆盖方式把命令的结果输出保存在文件里
  2. 命令>>文件追加方式把命令的结果输出保存在文件里
  3. 命令 2>>文件追加方式把错误命令的结果输出保存在文件里,2>>之间不可以有空格

s19@GOJ:~$ ./add >result
3 5
s19@GOJ:~$ cat result
8

s19@GOJ:~$ cat /tmp/student
jonh    Doe     ECE     3.54
Pam     Meyer   CS      3.61
Jim     DAVIS   CS      12.71
Jason   Kim     ECE     3.97
Amy     Nash    ECE     2.38
Jim     DAVIS   EECS    12.71
s19@GOJ:~$ sort -k4 -n >result /tmp/student
s19@GOJ:~$ cat result
Amy     Nash    ECE     2.38
jonh    Doe     ECE     3.54
Pam     Meyer   CS      3.61
Jason   Kim     ECE     3.97
Jim     DAVIS   CS      12.71
Jim     DAVIS   EECS    12.71

s19@GOJ:~$ cat /tmp/f1 /tmp/f2
this is f1
this is f2
s19@GOJ:~$ cat /tmp/f1 /tmp/f2 >result
s19@GOJ:~$ cat result
this is f1
this is f2


s19@GOJ:~$ ./add >>result
3 2
s19@GOJ:~$ cat result
this is f1
this is f2
5

  • 如果文件不存在,create文件
  • 如果文件存在,则覆盖文件内容

多命令顺序执行

多命令符号格式作用
:命令1:命令2多个命令执行,相互没关系
&命令1&&命令2逻辑与,1正确2才会执行
ll命令1ll命令2逻辑或,1不正确执行2

linux管道

  • 命令1 |命令2命令1的正确输出作为命令2的操作对象

将一条命令的标准输出成为另外一条命令的标准输入。过滤器:cat、grep、gzip、lp、sort、uniq、wc
ls -l | more
df磁盘使用情况显示
du 显示目录或者文件大小


s19@GOJ:~$ du /tmp/* 2>/dev/null |sort -rn|head -5
9040    /tmp/jieba.cache
24      /tmp/grade.csv
24      /tmp/a
20      /tmp/bf8f84e4-b15d-47ef-be3c-858cd0c2b46e
20      /tmp/5d517a3f-8b35-4000-a09c-91aeb99a7661

  • /var数据库、变动的文件大小变化
  • tee who| tee result 把who的结果输出到屏幕,并且重定向到result
  • p开头代表管道文件
  • cat从标准输入中读,再输出到标准输出
  • cat >/tmp/pipe
  • cat /tmp/pipe
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值