linux 管道 标准错误,学习标准I/O和管道的心得体会

默认:0标准输入 1标准输出 2标准错误

默认是012 更改默认的就叫重定向

【重定向】

重定向最基础的是标准输出 让他输出到别的地方就可以

1

(标准输出) >

1:原来ls 输出到 tty /dev/pts/0 另一个窗口是/dev/pts/1 使用:

2:ls > /etc/pts/1 执行结果跑到另外一个窗口了

3c8ce6380daa33c267ccb0e2e66a02de.png

3c8ce6380daa33c267ccb0e2e66a02de.png

> 把标准输出重定向到某一个文件/后面跟目的文件

> f1 创建一个空文件 实质上就是前面都是空定向到f1

3c8ce6380daa33c267ccb0e2e66a02de.png

tree -d /etc/ > /app/tree.log 把/ /的tree输出到后续

3c8ce6380daa33c267ccb0e2e66a02de.png

> 两个大于号 追加 不覆盖 >>f1创建f1如果存在也不会覆盖

3c8ce6380daa33c267ccb0e2e66a02de.png

`hostname` 主机名 `uname -r`内核

3c8ce6380daa33c267ccb0e2e66a02de.png

set -C 设置禁止覆盖,可以追加

3c8ce6380daa33c267ccb0e2e66a02de.png

>| 强制覆盖

set +C 又可以覆盖

3c8ce6380daa33c267ccb0e2e66a02de.png

2

(标准错误) 2>

ls nofiel  2> /app/f2

3c8ce6380daa33c267ccb0e2e66a02de.png

3  &> 错误对的 都放到一个文件里去

多个文件都想结果输入到一个文件

( ls;pwe;hostname ) >> /app/f1 前面加括号

(errcmd;hostname )&> /app/f1

3c8ce6380daa33c267ccb0e2e66a02de.png

(errcmd;hostname )> /app/ture 2> /app/error

3c8ce6380daa33c267ccb0e2e66a02de.png

errcmd;hostname )> /app/ture 2>&1

3c8ce6380daa33c267ccb0e2e66a02de.png

/dev/null这个文件是空 不要的可以定向到他

3c8ce6380daa33c267ccb0e2e66a02de.png

(echo error 1>&2) > /dev/null 会输出error

1>&2 会吧标准正常定义成标准错误输出的命令

2>&1 把错误错误定义成标准正确输出

&>>都支持累加

3c8ce6380daa33c267ccb0e2e66a02de.png

4 (标准输入)tr

tr 1 a 把输入的1 替换成a

tr 123 ab

位数不同 默认吧 23 都替换成b

tr -t 123 ab

-t 截断 忽略3了

tr ‘1-9’ ‘a-i’

3c8ce6380daa33c267ccb0e2e66a02de.png

【标准输入】的重定向 < f1 小于号 后面跟文件名

tr -d ‘a-z'< f1 -d 删除 f1文件的小写字母

3c8ce6380daa33c267ccb0e2e66a02de.png

tr -d ‘a-z'< f1 > /app/f3 处理的文件重定向到f3

3c8ce6380daa33c267ccb0e2e66a02de.png

tr -s ‘a’ 处理重叠的字母压缩掉

3c8ce6380daa33c267ccb0e2e66a02de.png

-c 取反tr -dc `a` 除了a 之外别的都删除 ctrl+D

3c8ce6380daa33c267ccb0e2e66a02de.png

tr -dc `a\n` 保留 回车作用

3c8ce6380daa33c267ccb0e2e66a02de.png

tr `\n` ` `< f1 处理f1文件中的换行

3c8ce6380daa33c267ccb0e2e66a02de.png

seq 1 10 输出1-10 竖排 ,然后替换‘\n’ ‘ ‘

3c8ce6380daa33c267ccb0e2e66a02de.png

mail -s hi~ ma xxxxxxxxx 发邮件给某个用户

标题 哪个用户 内容

3c8ce6380daa33c267ccb0e2e66a02de.png

cat > f1 单行重定向

cat > f1 <

mail -s hi~ `whoami`<

>HI~$USER

>TESE

>EOF

【管道】

连接标准输入输出的命令间隔

命令1|命令2|命令3

| 管道重定向了前命令的标准输出

error 2>&1| tr ‘a-z’ A-Z | tr -d O

|more |less

tar -cvf – /home | tar -xvf –

将/home了吗的文件打包命名为- 传到后面再解压

tar -cvf 打包 tar -xvf 解包

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/88761

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值