bash的基本特性之globbing,IO重定向及管道
giobbing:文件名通配
在bash的操作环境中有一个分厂有用的功能那就是gilobbing:文件名通配,这样我们在处理数据的时候就更方便了。下面我们来罗列一些常用的通配符。(注:globbing是做整体的文件名匹配而非部分)
匹配模式:元字符 *:表示匹配任意长度的任意字符 例:a* 表示a后面任意长度任意字符 a*b 表示a和b中间夹带任意长度的任意字符 ?:表示匹配任意的单个字符 例:a? 表示a后面只能跟单个的任意字符 a?b 表示a和b之间只有一个单个字符 []:表示指定范围的任意单个字符或者字符集 例:[a-z]:表示小写的a到z中任意单个字符 [A-Z]:表示大写 [0-9]: [a-z0-9]:表示小写字母或者数字 [[:upper:]]:表示所有的大写字母 [[:lower:]]:表示所有的小写字母 [[:alpha:]]:表示所有字母 [[:digit:]]:表示所有数字 [[:alnum:]]:表示所有的字母和数字 [[:space:]]:表示空白字符 [[:punct:]]:所有标点符号 [^]:匹配指定范围之外的任意单个字符 例:[^[:lower:]]:表示匹配小写字母之外的任意单个字符 例:[^0-9]:表示匹配数字之外的字符
练习:找出/etc/下以cron开头的文件
ll -d /etc/cron* -d是为了只显示目录
找出/etc/下面文件名刚好是五个字符的文件 ll -d /etc/?????
IO重定向
说道IO重定向就不得不说说命令的执行结果,一般用户执行一个命令之后这个命令会从文件中读入数据然后将处理过的数据输出默认到屏幕上,而IO重定向就是将本来要输出到屏幕上的数据流重新指定一个输出位置。而输入也是同理
计算机上可用于输入的设备:键盘设备,文件系统上的常规文件,网卡等
可用于输出的设备:显示器,文件系统上的常规文件,网卡等
程序在执行正确之后所传出来的数据流我们叫做标准输出,而执行失败之后传输出来的错误信息叫做错误输出,所以程序的数据流有三种
输入的数据流<–标准输入 输出的数据流–>标准输出 错误的输出流–>错误输出
这里的输入输出我们会给予一个文件描述符
标准输入(stdin):代码为0 使用 <或<<
标准输出(stdout):代码为1 使用>或>>
错误输出(stderr):代码为2 使用2>或2>>
输出重定向:>
特性:覆盖输出 会覆盖原文件内容
输出重定向:>>
特性:追加输出 不会覆盖原文件内容 只会在文件尾部追加
set -C 可以禁止输出重定向至已存在文件
此时可以使用强制覆盖输出:>|
set +C 可以关闭上述特性
错误输出流重定向:2>,2>>
特性同上
合并标准输出流和错误输出流:&>,&>>
COMMADN > /path/to/somefile 2>&1
输入重定向:<
这里我们要给大家讲一个/etc/下比较特殊的两设备个文件
/dev/null 数据黑洞
/dev/zero 吐零机 可以无限输出0
管道
连接程序,实现将前一个命令的输出直接定向后一个程序当作输入数据流
COMMAND1 | COMMAND2 | COMMAND3
linux的基本命令
tr:转换或者删除字符 tr [OPTION]... SET1 [SET2] 把输入的数据当中的字符,凡是在SET1定义范围内出现的,通通对位转换为SET2出现的字符
原创文章,作者:N24-执念,如若转载,请注明出处:http://www.178linux.com/64169