linux管道符和通配符
管道符
同时按下键盘上的Shift+键即可输入管道符,其执行格式为”命令A | 命令B”。命令符的作用也可以用一句话来概括”把前一个命令原本要输出到屏幕的数据当作是后一个命令的标准输入”。
即将命令原来要输出得到屏幕额度内容交由给后面的命令来处理
此处我们以一个文件进行讲解 /etc/passwd
此文件存储的是系统中所有的用户,一行为一个用户
第一个字段为用户名称
第二个字段为x时表示这个用户有密码
第三个字段为用户的uid号码
第四个字段为用户的gid号码
第五个字段为用户的描述符(描述相关)
第六个为用户的家目录
最后一个为用户的登陆终端
使用此命令意思为查看/etc/passwd 目录下过滤nologin的用户输出出来
管道符叠加
增加wc –l 可以查看nologin用户的个数
在修改用户密码时,通常都需要输入两次密码以进行确认,这在编写自动化脚本时将成为一个非常致命的缺陷。通过把管道符和passwd命令的–stdin参数相结合,我们可以用一条命令来完成密码重置操作:
怎么样管道符是不是非常方便呢
大家是不是觉得管道符命令有些相见恨晚?管道符的玩法还有很多,比如,在发送电子邮件时,默认采用交互式的方式来进行,我们完全可以利用一条结合了管道符的命令语句,把编辑好的内容与标题一起”打包”,最终用这一条命令实现邮件的发送。
搭配使用查看etc下所有文件 实现翻页效果
通配符
我们有时候也会遇到明明一个文件的名称就在嘴边但就是想不起来的情况。如果就记得一个文件的开头几个字母,想遍历查找出所有以这个关键词开头的文件,该怎么操作呢?又比如,假设想要批量查看所有硬盘文件的相关权限属性,一种方式是这样的:
幸亏我的硬盘文件和分区只有3个,要是有几百个,估计需要花费一天的时间来忙这个事情了。由此可见,这种方式的效率确实很低。虽然我们在第6章才会讲解Linux系统的存储结构和FHS,但现在我们应该能看出一些简单规律了。比如,这些硬盘设备文件都是以sda开头并且存放到了/dev目录中,这样一来,即使我们不知道硬盘的分区编号和具体分区的个数,也可以使用通配符来搞定。顾名思义,通配符就是通用的匹配信息的符号,比如星号(*)代表匹配零个或多个字符,问号(?)代表匹配单个字符,中括号内加上数字[0-9]代表匹配0~9之间的单个数字的字符,而中括号内加上字母[abc]则是代表匹配a、b、c三个字符中的任意一个字符。俗话讲”百闻不如一见,看书不如实验”,下面我们就来匹配所有在/dev目录中且以sda开头的文件
如果只想查看文件名为sda开头,但是后面还紧跟其他某一个字符的文件的相关信息,该怎么操作呢?这时就需要用到问号来进行通配了。
除了使用[0-9]来匹配0~9之间的单个数字,也可以用[135]这样的方式仅匹配这三个指定数字中的一个,若没有匹配到,则不会显示出来: