shell数据流重定向和管道命令

标准输入输出和错误
标准输入(stdin) 是指令数据的输入,代码为0,使用<或者<<,默认是键盘
标准输出(stdout)是指令执行成功返回的结果,代码为1,使用>或者>>,默认由屏幕显示
标准错误输出(stderr)是指令执行失败返回的错误信息,代码为2,使用2>或者2>>,默认是屏幕

shell数据流重定向和管道命令

< 指定输入的数据媒介来源
1> 将正确的内容 覆盖输出到指定的媒介
1>> 将正确的内容 追加到指定的媒介
2> 将错误信息覆盖输出到指定媒介
2>> 将错误信息追加输出到指定媒介

shell数据流重定向和管道命令

shell数据流重定向和管道命令

 默认只能保存正确的

shell数据流重定向和管道命令

同时分类导出
[admin@localhost110 ~]$ rm -rf success fail result
[admin@localhost110 ~]$ find /root a.txt 1>success 2>fail
[admin@localhost110 ~]$ cat success
/root
a.txt
[admin@localhost110 ~]$ cat fail
find: “/root”: 权限不够

正确错误的均导入文件
[admin@localhost110 ~]$ find /root a.txt >result 2>&1
[admin@localhost110 ~]$ cat result
/root
find: “/root”: 权限不够
a.txt

[admin@localhost110 ~]$ find /root a.txt >result1 2>&1
[admin@localhost110 ~]$ find /root a.txt >result
find: “/root”: 权限不够
[admin@localhost110 ~]$ find /root a.txt &>result2
[admin@localhost110 ~]$

&表示[012]

grep [a-z] -n <a.txt

替换
小写字母替换成大写字母
tr [a-z] [A-Z]<a.txt >a1.txt

管道命令使用
命令通过管道符号|连接
能够接收标准输入(stdin),如tail/more/grep等
能够接收来自于前一个指令的数据成为stdin进行处理 只能处理正确的输出,不能处理错误的输出
ls -8|grep ls
处理不了
grep [-cinv] 'key' filename 支持正则
-c ,计算字符出现的次数
-i,忽略大小写进行查找
-n,输出行号
-v,显示没有该字符的行
[root@localhost110 ~]# cat log -n
1 php
2 ajax
3 java
4 python
5 nginx mysql
6 GO
7 PHP5
8
[root@localhost110 ~]# grep 'php' log
php
[root@localhost110 ~]# grep -n 'php' log
1:php
[root@localhost110 ~]# grep -ni 'php' log
1:php
7:PHP5
[root@localhost110 ~]# grep -ci 'php' log
2
[root@localhost110 ~]# grep -inv 'php' log
2:ajax
3:java
4:python
5:nginx mysql
6:GO
8:
[root@localhost110 ~]# grep -n [a-z] log
1:php
2:ajax
3:java
4:python
5:nginx mysql
[root@localhost110 ~]# grep -nc [a-z] log
5
grep -n --color [a-z] log

shell数据流重定向和管道命令

统计当前登录用户
[root@localhost110 ~]# w
01:53:08 up 18:15, 1 user, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 192.168.1.101 01:19 0.00s 0.24s 0.13s w
[root@localhost110 ~]# w|grep -n root
3:root pts/0 192.168.1.101 01:19 0.00s 0.11s 0.00s w
[root@localhost110 ~]# w|grep -nc root
1
不是root的
[root@localhost110 ~]# w|grep -v root
01:54:20 up 18:16, 1 user, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT

sort指令
sort [-fbknrtu] filename
-f 忽略大小写
-b 忽略最前面的空格
-M 以月份英文字母排序
-n 使用数字排序
-r 逆向排序
-t 分隔符标识 默认是tab
-k 以第几列来排序

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/d3c05341e0798abe546c290daca477b1.html