通配符、特殊符号、正则表达式 |
作者:左婷婷 归档:学习笔记 2018/7/31
|
快捷键: Ctrl + 1 标题1 Ctrl + 2 标题2 Ctrl + 3 标题3 Ctrl + 4 实例 Ctrl + 5 程序代码 Ctrl + 6 正文 |
格式说明: 蓝色字体:注释 ×××背景:重要 绿色背景:注意 |
老男孩教育教学核心思想6重:重目标、重思路、重方法、重实践、重习惯、重总结
学无止境,老男孩教育成就你人生的起点!
联系方式:
网站运维QQ交流群: |
|
Linux 385168604 |
架构师 390642196 |
Python 29215534 |
大数据 421358633 |
官方网站: |
|
http://www.oldboyedu.com |
目 录
1.1 时间
1.2 通配符与特殊符号
1.2.1 引号系列
1.2.2 重定向符号
1.2.3 位置符号
1.2.4 &&和||
1.2.5 # $ ! ; 的区别
1.3 通配符
1.3.1 #找出以.conf结尾的文件
1.3.2 #找出系统中文件名包含ifconfig (文件名中有ifconfig就行)
1.3.3 #{} 生成序列
1.3.4 通过 {} 进行备份
1.3.5 小结:
1.4 正则表达式配合三剑客进行过滤
1.4.1 给grep egrep配置别名并永久生效
1.4.2 第1个符号 ^ 以....开头的行
1.4.3 第2个符号 $ 以....结尾的行
1.4.4 第三个符号 ^$ 显示空行
1.4.5 第4个符号 . 任意一个字符
1.4.6 第5个符号\ 显示文件中以.(点)结尾的行
1.4.7 第6个符号* 前一个字符连续出现了0次或0次以上
1.4.8 第7个符号.* 显示所有
1.4.9 第8个符号 [ ]
1.5 总结:
1.6 预习
1.1 时间
mtime |
Modify time 修改时间
|
Ctime |
Change time 文件属性变化时间 |
Atime |
Access time 访问时间(cat) |
1.2 通配符与特殊符号
1.2.1 引号系列
‘’ 单引号 |
所见即所得 |
“” 双引号 |
特殊符号会被解析运行 |
`` 反引号 |
优先执行里面的内容 |
不加引号 |
类似双引号,会执行{}里面的内容 |
1.2.2 重定向符号
> |
标准输出重定向 |
|
>> |
标准输出追加重定向 |
|
2> |
标准错误输出重定向 |
|
2>> |
标准错误输出追加重定向 |
|
<
|
输入重定向
|
tr |
xargs |
||
<< |
追加输入重定向 |
|
2>&1 |
错误正确都输出 |
1.2.3 位置符号
~ |
家目录 |
. |
当前目录 |
.. |
上一级目录 |
- |
cd – 上一次所在位置 |
Su - 切换用户 |
1.2.4 &&和||
&& |
前一个命令执行成功再执行后一个命令 (ifdown eth0 && ifup eth0) |
|| |
前一个命令失败后再执行后一个命令 |
[root@oldboyedu50 ~]# ls /data && echo 目录已存在 &&的用法
oldboy
目录已存在
[root@oldboyedu50 ~]# ls /dat || echo 目录已存在 ||的用法
ls: 无法访问/dat: 没有那个文件或目录
目录已存在
1.2.5 # $ ! ; 的区别
# |
注释 root用户的命令提示符 |
$ |
Awk取出某一列 普通用户的命令的提示符 |
!ls |
找出最近一次以ls开头的命令并执行 |
!! |
运行上一次的命令 |
; |
在同一行中分割多条命令 |
1.3 通配符
* |
所有 以…..结尾 以……开头 |
{} |
生成序列 |
1.3.1 #找出以.conf结尾的文件
find / -type f -name "*.conf"
1.3.2 #找出系统中文件名包含ifconfig (文件名中有ifconfig就行)
[root@oldboyedu50-lnb ~]# find / -type f -name "*ifconfig*" 找出系统中文件名包含ifconfig
/usr/sbin/pifconfig
/usr/share/man/de/man8/ifconfig.8.gz
/usr/share/man/pt/man8/ifconfig.8.gz
/usr/share/man/fr/man8/ifconfig.8.gz
/sbin/ifconfig
[root@oldboyedu50-lnb ~]# find / -type f |grep ifconfig 找出系统中文件名包含ifconfig
/usr/sbin/pifconfig
/usr/share/man/man8/pifconfig.8.gz
/usr/share/man/man8/ifconfig.8.gz
/usr/share/man/fr/man8/ifconfig.8.gz
/sbin/ifconfig
1.3.3 #{} 生成序列
[root@oldboyedu50-lnb ~]# echo stu0{01..5} 生成stu001 .. stu005
Stu001 stu002 stu003 stu004 stu005
[root@oldboyedu50-lnb ~]# echo {1,5,100} 生成1 5 100
1 5 100
[root@oldboyedu50-lnb ~]# echo stu{01..10} 生成stu01..stu10
stu01 stu02 stu03 stu04 stu05 stu06 stu07 stu08 stu09 stu10
[root@oldboyedu50-lnb ~]# echo stu{01..10..2} 生成有规律的数
stu01 stu03 stu05 stu07 stu09
1.3.4 通过 {} 进行备份
[root@oldboyedu50-lnb ~]# cp oldboy.txt{,.bak}
[root@oldboyedu50-lnb ~]# echo oldboy.txt{,.bak}
oldboy.txt oldboy.txt.bak
[root@oldboyedu50-lnb ~]# echo A{,C}
A AC
[root@oldboyedu50-lnb ~]# echo A{B,C}
AB AC
1.3.5 小结:
1.特殊符号
2.* {} 通配符 查找文件 大多数命令都可以使用
ls *.txt
1.4 正则表达式配合三剑客进行过滤
中文符号 ‘’ “” () 。 * …… ¥ | {} 【】
英文符号 '' "" () . * ^ $ | {} []
1.4.1 给grep egrep配置别名并永久生效
完成后重新登录进行验证
alias grep='grep --color'
alias egrep='egrep --color'
1.4.2 第1个符号 ^ 以....开头的行
cat oldboy.txt 环境
I am oldboy teacher!
I teach linux.
I like badminton ball ,billiard ball and chinese chess!
my blog is http://oldboy.blog.51cto.com
our size is http://blog.oldboyedu.com
my qq is 49000448
not 4900000448.
my god ,i am not oldbey,but OLDBOY!
1.4.2.1 以....开头的行 ^m
[root@oldboyedu50-lnb /oldboy]# grep '^m' oldboy.txt 找出文件中以m开头的内容
my blog is http://oldboy.blog.51cto.com
my qq is 49000448
my god ,i am not oldbey,but OLDBOY!
cat -A 显示文件中所有符号 每行结尾都会有个$
1.4.3 第2个符号 $ 以....结尾的行
[root@oldboyedu50-lnb /oldboy]# grep ' $' oldboy.txt 以空格结尾的行
my blog is http://oldboy.blog.51cto.com
our size is http://blog.oldboyedu.com
1.4.4 第三个符号 ^$ 显示空行
[root@oldboyedu50 oldboy]# grep -n '^$' oldboy.txt 过滤出文件中的空行并显示行号
3:
8:
11:
1.4.5 第4个符号 . 任意一个字符
[root@oldboyedu50-lnb /oldboy]# #grep '.' oldboy.txt 显示所有字符
-o grep命令执行过程
[root@oldboyedu50-lnb /oldboy]# grep -o '.' oldboy.txt 显示所有字符的过程
1.4.6 第5个符号\ 显示文件中以.(点)结尾的行
[root@oldboyedu50-lnb /oldboy]# grep '\.$' oldboy.txt 显示文件中以.(点)结尾的行
I teach linux.
not 4900000448.
\n 表示回车 \t 按一次tab键的长度
[root@oldboyedu50-lnb /oldboy]# tr '\n' '\t'
I am oldboy teacher! I teach linux. I like badminton ball ,billiard ball and chinese chess! my blog is http://oldboy.blog.51cto.com our size is http://blog.oldboyedu.com my qq is 49000448 not 4900000448. my god ,i am not oldbey,but OLDBOY! [root@oldboyedu50-lnb /oldboy]#
1.4.7 第6个符号* 前一个字符连续出现了0次或0次以上
#显示grep '0*' oldboy.txt 每次匹配了什么 (执行过程)
[root@oldboyedu50 oldboy]# grep -o '0*' oldboy.txt
000
00000
#正则表达式-坑1-grep '0*' 会把文件内容都显示出来
#0* 0次 没有 grep '' 会把文件内容都显示出来
# 0次以上 0 00000000000
1.4.8 第7个符号.* 显示所有
[root@oldboyedu50-lnb /oldboy]# grep '.*' oldboy.txt
I am oldboy teacher!
I teach linux.
I like badminton ball ,billiard ball and chinese chess!
my blog is http://oldboy.blog.51cto.com
our size is http://blog.oldboyedu.com
my qq is 49000448
not 4900000448.
my god ,i am not oldbey,but OLDBOY!
正则表达式的贪婪性
替你寻找的文字符号 有多少吃多少 有多少匹配多少
正则中表示 连续出现或所有的时候
[root@oldboyedu50-lnb /oldboy]# grep '^.*o' oldboy.txt
I am oldboy teacher!
I like badminton ball ,billiard ball and chinese chess!
my blog is http://oldboy.blog.51cto.com
our size is http://blog.oldboyedu.com
not 4900000448.
my god ,i am not oldbey,but OLDBOY!
1.4.9 第8个符号 [ ]
grep '[a-z]' oldboy.txt 过滤出a-z
grep '[A-Z]' oldboy.txt
grep '[0-9]' oldboy.txt
grep '[a-zA-Z]' oldboy.txt
grep '[a-Z]' oldboy.txt 过滤出大小写的a-z 只有在grep中可以使用
grep -i '[a-z]' oldboy.txt -i 不区分大小写 ignore case
1.5 总结:
1.正则表达式与通配符区别
2.基础正则表达式
3.linux三种时间
1.6 预习
扩展正则
取出网卡ip地址
ip a s eth0
ip address show eth0
取出权限
[root@oldboyedu50-lnb /oldboy]# stat /etc/hosts
File: `/etc/hosts'
Size: 186 Blocks: 8 IO Block: 4096 regular file
Device: 803h/2051d Inode: 917212 Links: 2
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2018-07-27 15:38:30.054327904 +0800
Modify: 2018-07-26 11:19:57.307441572 +0800
Change: 2018-07-27 15:38:30.001327904 +0800