shell基础一:grep与正则表达式

grep过滤命令

参数:

-n 显示行号
grep 'root' /etc/passwd
-o 只显示匹配的内容
-q 静默模式,没有任何输出得用$?来判断命令是否执行成功
-l 显示所在路径
-r 递归过滤
-A 2 显示本行以及后两行
-B 2 显示本行以及前两行
-C 1 显示本行以及前后各一行
-E 等于egrep,扩展
-c 显示匹配到的总行数
-i 忽略大小写
-v 取反,不匹配
-w 单词过滤

正则表达式

^ 以什么开头
$ 以什么结尾
. 除了换行符以外的任意单个字符
* 左边字条出现至少0次
.* 匹配所有
? 左边的字符出现0或1次
+ 左边的字符至少出现1次
{} 表示左边的字符出现括号内指定次数,括号内数字用逗号分隔表示“到”
[] 字符组内任一字符
[^] 对字符组内的每个字符取反(不匹配字符组内的每个字符)
^[^] 非字符组内的字符开头的行
[0-9] 匹配数字
[^0-9] 匹配非数字
[a-z] 匹配小写字母
[A-Z] 匹配大写字母
[a-zA-Z] 匹配字母
| 或:abc|def abc或def
a(bc|de)f abcf 或 adef

egrep相当于grep -E:扩展正则

env 查看所有系统变量
set 查看包括用户自定义的所有变量
unset 取消指定自定义变量
PS1= 设置[root@xxxx]前缀

父子BASH互相看不到变量,用export之后也只对当前终端有效

关系运算用双层括号(())

echo $? 取正上方命令的值

原文地址:https://www.cnblogs.com/yx179971/p/6939699.html