▶标准IO和管道
三种I/O设备
把I/O重定向至文件
使用管道
▷三种I/O设备
- 标准输入 (STDIN) 0
- 标准输出 (STDOUT) 1
- 标准错误 (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