Linux 管道、重定向、特殊字符


分类: Linux
评论: 0

Linux 管道、重定向、特殊字符



分类: Linux
评论: 0

重定向

输入重定向是将数据导入到命令中,给命令提供数据。而输出重定向反之,将命令执行之后的结果导入到文件。

使用重定向输出可以对文件清空,又或者追加数据。

输出重定向分为两种:标准输出和错误输出。

它们的区别在于:标准输出是将正常的数据输出文件,而错误输出,是指执行命令过程中发生的错误,通过错误输出重定向可以将错误输出到文件中,而不是显示在屏幕上。

标准输入

符号表示及其作用:

将文件中的内容通过 wc -l 命令将统计文件的行数。

[root@localhost ~]# wc -l < err.log
1

使用分界符输入内容:

[root@localhost ~]# echo << over
> 1
> 2
> 3
> 4
> 5
> 6
> 7
> 8
> 9
> over

输出重定向

符号及作用:

标准输出

例如说,对于某个命令使用语法不懂,可以使用 man 命令获取命令得手册,但是一般在命令终端看有点不是很方便,所以这种情况就可以将其输出到文件中,这样就方便多了。

[root@localhost ~]# man ls > man.txt

将 ls 命令的手册输出到 man.txt 文件中

或者对文件追加数据命令的手册:

[root@localhost ~]# man man > man.txt

错误输出

将错误输出文中,而不是输出到屏幕:

[root@localhost ~]# man man 2> err.log

Linux 管道

管道,顾名思义,是直行的。在 linux 管道命令符的作用:“将前一个命令执行之后原本要输出的标准正常数据当作是后一个命令的标准输入”,表现形式:| (shift+\)

语法:

命令 | 命令 | 命令 ......

现在有个例子,将统计 /etc/passwd 文件中有多少个用户,如下:

[root@localhost ~]# cat /etc/passwd | wc -l
25

使用管道符,可以将结果进行一遍又一遍的处理,就像是每一个 | 符号都是一个关卡,经过每个 | 交由下一个命令处理,最后是预期想要的结果。

在修改用户密码的时候需要确认密码,这种情况如果是自动化脚本执行修改密码的时候,可能无法处理。

passwd 其中有个选项 --stdin 就是从标准输入读取密码,这样的话通过标准输入加上管道,可以从标准输入读取密码。

[root@localhost ~]# echo 123123 | passwd --stdin root
更改用户 root 的密码 。
passwd:所有的身份验证令牌已经成功更新。

命令通配符

有些情况忘记了具体文件名,只记住其中几个字符,那么这种情况可以使用通配符来匹配文件,在文件非常多的情况最为有用。

通配符和正则的对应的符号有点类似,不过作用都是匹配字符。

转义字符

常用转义符:

其它特殊字符