马哥预习课03_标准IO和管道

▶标准IO和管道

三种I/O设备
把I/O重定向至文件
使用管道

▷三种I/O设备

  1. 标准输入 (STDIN) 0
  2. 标准输出 (STDOUT) 1
  3. 标准错误 (STDERR) 2

▷重定向

符号 用途
> 输出重定向(覆盖)
>> 输出重定向(追加)
2> 错误输出重定向
&> 所有输出重定向
set -C 禁止覆盖
set +C 允许覆盖
>| file 强制覆盖
< 输入重定向
<< 多行输入重定向

输出重定向的示例1

[root@CentOS7 data]$ls /data /jjj > /data/all.log 2>&1
[root@CentOS7 data]$cat all.log 
ls: cannot access /jjj: No such file or directory
/data:
1
all.log
testdir1
`相当于`
[root@CentOS7 data]$ls /data /jjj &> /data/all.log

输出重定向的示例2

[root@CentOS7 data]$cat > f1.txt
aaa
bb
cc
ddd
^C
[root@CentOS7 data]$cat f1.txt
aaa
bb
cc
ddd

输入重定向的示例1

[root@CentOS7 data]$cat <<eof > a.txt
> $HOSTNAME
> `pwd`
> xyz
> foo
> eof
centos7
/data
xyz
foo
[root@CentOS7 data]$cat a.txt
centos7
/data
xyz
foo

▷16. tr [OPTION] SET1 [SET2]

[OPTION]
	-c -C `取字符集的补集`
	-d	`删除所有属于第一字符集的字符`
	-s	`把连续重复的字符以单名的一个字符表示`
	-t	`把第一个字符集对应字符转化为第二字符集对应的字符`
[glob]
	[:alnum:]	`字母和数字`
	[:alpha:]	`字母`
	[:cntrl:]	`控制字符`
	[:digit:]	`数字`
	[:lower:]	`小写字母`
	[:upper:]	`大写字母`
	
[root@CentOS7 data]$tr 'a-z' 'A-Z'
abcd
ABCD
[root@CentOS7 data]$tr -t 'abc' 'XY'
abccccc
XYccccc
[root@CentOS7 data]$tr -d 'a-z'
aldkf1239ladkf
1239
[root@CentOS7 data]$tr -dc 'a-z'
adf24la
adfla[root@CentOS7 data]$
[root@CentOS7 data]$tr -s 'a-z'
aaabbbcccddddfffffjjjj
abcdfj

▷管道

符号 名称
| 标准输出
|& 所有输出
- 前一个命令的stout
|tee -a -a追加,即输出到屏幕又到管道
[root@CentOS7 data]$who | tr 'a-z' 'A-Z'
ROOT     TTY1         2019-05-01 18:37
ROOT     PTS/2        2019-05-02 00:15 (192.168.88.1)
[root@CentOS7 data]$echo "2+4;3^3" | bc
6
27

猜你喜欢

转载自blog.csdn.net/weixin_42758707/article/details/89762626