linux管道设备,Linux下的I/O与管道

阅读目录1. 标准输入输出

2.输入输出重定向

3.tr命令

4. 管道和tee

5.练习

1、标准输入输出

(1)linux 给程序提供三种I/O设备

标准输入 :(STDIN)    — 0   默认接受来自键盘的输入

标准输出 :(STDOUT) — 1   默认输出到终端窗口

标准错误 :(STDEER)  — 2   默认输出到终端窗口

(2)输入设备有:键盘、鼠标、扫描仪、摄像头等

输出设备有:打印机、显示器、投影仪等

2、输入输出重定向

〉正确输出

2〉错误输出

&〉全部输出(覆盖重定向)

>文件内容会被覆盖

set -C :禁止将内容覆盖已有文件,但可追加

>| file :强制覆盖

set +C 允许覆盖

>> 原有内容基础上,追加内容

文件不存在时,>和>>都能创建新文件,文件已存在时 >表示覆盖,>>表示追加

2>&1 把错误的结果转成正确的结果

1>&2 把正确的结果转成错误的结果

():合并多个程序的STDOUT

cal 2007;cal 2008

(cal 2007 ; cal 2008 ) >all.txt

** 3、tr命令

tr 转换和删除字符

tr  [OPTION] ....SET1[SET2]

选项:

-c -C --complement:取字符集的补集

-d --delete:删除所有属于第一个字符集的字符

f3094447975993786911e756abdf357f.png

-s --squeeze-repeats:把连续重复的字符以单独的一个字符表示

8608a83a44dbbb3d22c7b70fd0dec72e.png

-t --truncate-set1:将第一个字符集对应字符转换为第二字符集对应的字符

c35d39fd3ef84cbadc8a2e2b2cf9ddda.png

从文件中导入STDIN

(1) 使用

(2)某些命令能够接受从文件中导入的STDIN

Tr‘a-z’‘A-Z’< /etc/issue   该命令会把/etc/issue中的小写字符都转换成大写字符

9a07cda7feec4b90e73a952ae547e507.png

(3) tr -d abc< /etc/fstab删除fstab文件中的所有abc中任意字符

(4) cat > file

Mage

wangxiaochun

按ctrl+d离开,可以使用文件来代替键盘的输入

使用“<

fb69e5365ffb9b462fb8894f734af03a.png

4、管道和tee

使用符号“|”表示,用来连接命令

命令1 | 命令2 | 命令3 ...

组合多种工具的功能:

ls | tr `a-z` `A-Z`

less : 一页一页的查看输入     ls -l /etc | less

mail :通电子邮件发送输入     echo "test email" | mail -s "test" user@example.com

tee:从标准输入读取,写入到标准输出,并保存到文件中

fe6f9e2c18e31b0211bdd6684a7d451a.png

5、练习

1、计算1+2+3+..+99+100的总和

echo 1+2|bc  echo {1..100}  echo {1...100} |tr " "+|bc

2、 一个linux用户给root发邮件,要求邮件标题为”help”,邮件正文如下:Hello, I am 用户名,The system version is here,please help me to check it ,thanks操作系统版本信息

echo -e Hello,I am `whoami`,The system version is here,Please help me to check it,Thanks."\n"`cat /etc/redhat-release` | mail -s help root

3、将当前系统登录用户的信息转换为大写后保存至/tmp/who.out文件中

who | tr [a-z] [A-Z] > /tmp/who.out

4、将/etc/issue文件中的内容转换为大写后保存至/tmp/issue.out文件中

cat /etc/issue |tr a-z A-Z > /tmp/issue.out

6、处理字符串“xt.,l 1 jr#!$mn 2 c*/fe 3 uz 4”,只保留其中的数字和空格

echo "xt.,l 1 jr#hat-releasemn 2 c*/fe 3 uz 4" | tr -cd [:digit:][:blank:]

7、将PATH变量每个目录显示在独立的一行

echo $PATH |tr : "\n"

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值