常用符号
~ 登陆用户当前的家目录
. 当前目录
.. 当前目录的上一级目录
cd - 返回上一次的目录
; 命令分隔符
# 表示注释
? 通配符中表示任意一个字符
* 通配符中表示任意字符
$ 获取变量内容
` `和$( ) 都是取命令运行后的结果
&& 表示且的关系
|| 表示或的关系
! 表示非的关系(find与awk中表示取反,linux命令行表示历史记录)
[ ] 通配符中表示表示一个范围
{ } 通配符中表示产生一个序列
> 输出重定向(覆盖)
>> 追加重定向
< 输入重定向
<< 追加输入重定向
2> 错误输入
正则表达式符号
^a 以a字符开头
a$ 以a字符结尾
^$ 匹配空行
\ 转义字符
. 点表示匹配单个字符
a* 重复a零次或多次
.* 匹配所有字符
^.* 以任意字符开头
.*$ 以任意字符结尾
[abc] 匹配a或b或c字符
[^abc] 不匹配abc字符
[0-9] 匹配数字
[a-zA-Z] 匹配字母
a{n,m} 重复a字符n到m次
a{n} 重复a字符n次
a{n,} 重复a字符至少n次
| 扩展正则表达式,表示或
+ 扩展正则表达式,表示重复一次或多次
扩展正则表达式用egrep或grep -E
[ ]与{ }区别
[[email protected] ~]# echo test[0-9]
test[0-9]
[[email protected] ~]# echo test{0..9}
test0 test1 test2 test3 test4 test5 test6 test7 test8 test9
[ ] 表示一个整体 筐 里面有多种可能 #或@或*正则表达式眼中 就认为 框里面的东西(无论多少种)都是一样的。 都是一个筐,例:
[[email protected] ~]# echo "###*****@@@@@#####[email protected]@@@######@@@@@@@2**@@@@****"|egrep "[#@*]+"
###*****@@@@@#####[email protected]@@@######@@@@@@@2**@@@@****
[[email protected] ~]# echo "###*****@@@@@#####[email protected]@@@######@@@@@@@2**@@@@****"|egrep -o "[#@*]+"
###*****@@@@@#####
@@@@######@@@@@@@
**@@@@****
[[email protected] ~]# echo "###*****@@@@@#####[email protected]@@@######@@@@@@@2**@@@@****"|awk -F "[#@*]+" ‘{print $2}‘
1
正则表达式练习文件
[[email protected] ~]# cat test.txt
I am oldboy teacher!
I trach linux.
I like badminton ball billiard ball and chinese chess!
my blog is http://oldboy.blog.51cto.com
our site is http://www.etiantian.com
My qq number is 49000448.
not 4900000048.
my god , i am not oldbey, but OLDBOY!
[[email protected] ~]# ifconfig eth0|sed -rn ‘s/^.*ddr:(.*) Bcas.*$/\1/gp‘ #sed取IP地址
[[email protected] ~]# ifconfig eth0|awk -F "[ :]+" ‘NR==2 {print $4}‘ #awk取IP地址