Linux学习笔记13 grep,egrep,bash变量

1.grep

grep [OPTIONS] PATTERN filename
根据模式搜索文本 并将符合模式的文本显示出来
Pattern模式:文本字符和正则表达式的元字符组合而成匹配条件

选项

  • -i: 忽略大小写
  • --color: 匹配到的字符串加颜色
  • -v --invert-match:没有被模式匹配到的行
  • -o: 只显示被模式匹配到的字符串
  • -E: extended regular expression 扩展正则表达式 = 命令egrep
  • -A --after-context=: 匹配项后几行
  • -B --before-context=: 匹配项前几行
  • -C --context: 匹配项前后几行

2. 正则表达式

元字符:

  • .: 任意单个字符
  • []: 匹配任意范围内的单个字符
  • [^]: 匹配任意范围外的单个字符
    [:digit:],[:lower:],[:upper:],[:punct:],[:space:],[:alpha:],[:alnum:]

匹配字符个数:

  • *: 匹配其前面字符任意次数
  • .*: 任意长度任意字符
  • \?: 匹配其前面的字符1次或0次
  • \{m,n\}: 匹配其前面的字符>=m次 <=n次

位置锚定:

  • ^: 行首 次字符后面的任意内容必须出现在行首
  • $: 行尾 次字符后面的任意内容必须出现在行尾
  • \<: 单词出现在词首
  • \>: 单词出现在词尾

分组:
\(\)
\1,\2,\3: 引用前面的分组

3. 扩展正则表达式

次数匹配:
+: 匹配其前面的字符至少1次
或者
a|b: a或者b
c|Cat 意思是c或者Cat字符 (c|C)at

IPv4:
5类 A B C D E
A: 1-127
B: 128-191
C: 192-223

4.bash

bash变量类型:

  • 环境变量
    export VARNAME=VALUE
    脚本在执行时会启动一个shell进程
    对当前shell及其子shell有效
  • 本地变量
    set VARNAME=VALUE: 作用域为当前代码段 set可以省略
    unset VARNAME: 释放变量
    使用 VARNAME VARNAME引用
[root@localhost tmp]# ANIMAL="pig"
[root@localhost tmp]# echo "The animal is ${ANIMAL}s"
The animal is pigs
  • 局部变量
    local VARNAME=VALUE: 作用于为当前代码段
  • 位置变量
    $1,$2,$3.... 引用脚本参数
    shift n
  • 特殊变量
    $?:上一个命令执行状态返回值:
    $#: 参数的个数
    $*: 参数列表
    $@: 参数列表
[root@localhost ~]# ls /varr
ls: cannot access /varr: No such file or directory
[root@localhost ~]# echo $?
2
[root@localhost ~]# lss
-bash: lss: command not found
[root@localhost ~]# echo $?
127
[root@localhost ~]# ls
anaconda-ks.cfg  demo.sh    Downloads  post-install      Templates  Videos
demo             Desktop    Music      post-install.log  test
demofile         Documents  Pictures   Public            test_dir
[root@localhost ~]# echo $?
0

查询状态返回代码(0-255)
0:正确执行
1-255: 错误执行:1,2,127系统预留

/dev/null: 软件模拟设备, bit bucket,数据黑洞

查看当前shell中的环境变量:
printenv
env
export

条件测试的表达:
[expression]
[[expression]]
test expression

整数比较:
-eq: 测试两个整数是否相等 $A -eq $B
-ne: 测试两个整数是否不等: $A -ne $B
-gt: 大于
-lt:小于
-ge: 大于或等于
-le:小于或等于

字符测试:
==: 测试是否相等
!=: 测试是否不等
>
<
-n string: 测试字符串是否为空
-s string: 测试字符串是否不空

命令间的逻辑

变量名称: 只能包含字母、数字和下划线,并且不能数字开头:不应该跟系统中已有的环境变量重名

if 判断条件; then
statement1
statement2

else
statement3
statement4
fi

shell算数表达式:
A=3
B=5
1. let算术运算表达式
let C=$A+$B
2.$[算术表达式]
C=$[ $A+$B ]
3.$((算数表达式))
C=$(($A+$B))
4.expr算术运算表达式,表达式中各操作数及运算符之间有空格,而且要使用命令引用
C=`expr $A + \$B`

exit: 退出脚本
exit NUMBER: NUMBER代表状态码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值