一 常用命令
1、find指令
基本用法,一个简单的例子,从根文件开始搜索名字为test的文件
find / -name test -print
使用此命令搜索时会耗费时间较长,特别是在挂在了其它的文件系统,如Windows上的文件系统(SAMBA服务器),因为会相应的搜索Windows上的文件。此时可以使用-mount选项,告诉find指令不要搜索其它的文件系统
find / -mount -name test -print
find指令还有一些比较、判断的选项,使用时查手册即可。
2、grep指令
在文件中搜索字符串,常用选项
选项 | 含义 |
---|---|
-c | 输出匹配行的数目,而不是输出匹配的行 |
-i | 忽略大小写 |
-l | 只列出包含匹配行的文件名 |
-v | 即搜索不匹配行 |
-E | 启用扩展模式 |
二 正则表达式
正则表达式中的常用特殊字符
字符 | 含义 |
---|---|
^ | 指向一行的开头 |
$ | 指向一行的结尾 |
. | 任意单个字符 |
[] | 包含一个字符范围,其中任何一个字符都可以被匹配 |
? | 匹配是可选的,但最多匹配一次 |
* | 必须匹配0次或多次 |
+ | 必须匹配一次或多次 |
{n,m} | 匹配次数在n到m之间,包含n和m |
如果想将上述特殊字符作为普通字符使用,就需要加上\
进行转义。
在方括号中还可以使用一些特殊匹配模式,如
匹配模式 | 含义 |
---|---|
[:alnum:] | 字母与数字字符 |
[:alpha:] | 字母 |
[:ascii:] | ASCII字符 |
[:blank:] | 空格或制表符 |
[:cncrl:] | ASCII控制字符 |
[:digit:] | 数字 |
[:graph:] | 非控制、非空格字符 |
[:lower:] | 小写字母 |
[:print:] | 可打印字符 |
[:punct:] | 标点符号字符 |
[:space:] | 空白字符,包含垂直制表符 |
[:upper:] | 大写字母 |
[:xdigit:] | 十六进制数字 |
举例说明
查找文件readme.txt中以字母e结尾的行
grep e$ readme.txt
查找文件readme.txt中以字母a结尾的单词
grep a[[:blank:]] readme.txt
查找文件readme.txt中以字母TH开头的3个字母的单词
grep TH.[[:space:]] readme.txt
在shell脚本中,将一个命令输出到一个变量中
#!/bin/sh
whoisthere = $(who)
echo whoisthere
算数扩展
把你准备求值的算数表达式放在$((…))放在两个圆括号中
如x=$(($x+1))