【转】linux的特殊符号与正则表达式
第1章 linux的特殊符号
1.1 通配符 * {}
1.1.1 含义
方便查找文件 通配符是用来找文件名字的。
1.1.2 *
通过find 命令找以 .sh 结尾的文件,使用*替代文件名字。
find /clsn -type f -name "*.sh" -mtime +7 -size +100k -size -10M
查找文件名中,包含有clsn字节的文件。
[root@znix 20170118]# find -type f -name "*clsn*"
[root@znix 20170118]# ls -l *clsn*
1.1.3 {}
{} 用来生成序列
[root@znix 20170118]# echo clsn{1..3}.txt
clsn1.txt clsn2.txt clsn3.txt
[root@znix 20170118]# echo {a,c,d,f}
a c d f
echo {a..z} {A..Z} 中间需要有空格,表示两个无关的序列
[root@znix 20170118]# echo {a..z} {A..Z}
a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
生成按规则序列{开始..结束..间隔}
[root@znix ~]# echo {1..10..3}
1 4 7 10
备份一个文件的时候使用
[root@znix ~]# cp clsn.txt{,.bak}
[root@znix ~]# ll clsn*
-rw-r--r-- 3 root root 241 Aug 30 11:40 clsn.txt
-rw-r--r-- 1 root root 241 Aug 31 09:38 clsn.txt.bak
1.2 特殊符号
1.2.1 特殊符号
> 标准输出重定向,先把内容清空,再向文件里放其他东西
>> 标准追加重定向 向文件内加内容
< 标准输入 xargs
<< 追加输入 cat>/clsn.txt<<EOF 追加多行
. 当前目录/linux下面的隐藏文件
.. 当前用户的上一级目录
~ 当前用户的家目录
/ 根 路径的分割符号
\ 临时取消别名
| 管道
!
1) vim中强制
2) 取反 find awk
3) 表示使用你用过的命令 使用历史命令
!可以看历史命令 history 命令
!ls ===== history |grep ls
[root@znix ~]# history
# 注释
$ 取出变量里的内容
&& 并且 前一个命令运行成功,然后再运行后面的命令
ifdown eth0 && ifup eth0
; 分开多条命令 在同一行里面放入多个命令。
ls; pwd; hostname
1.2.2 单引号、双引号、不加引号
' '
吃啥吐啥
[root@znix ~]# echo '$LANG $(pwd) `hostname` {1..3}'
$LANG $(pwd) `hostname` {1..3}
" "
把双引号里面的特殊符号进行解析
[root@znix ~]# echo "$LANG $(pwd) `hostname` {1..3}"
en_US.UTF-8 /root znix {1..3}
不加引号
[root@znix ~]# echo $LANG $(pwd) `hostname` {1..3}
en_US.UTF-8 /root znix 1 2 3
` `
反引号 先运行,把结果留下 与$()作用相同
[root@znix ~]# du -sh `find -type d`
764K .
第2章 正则表达式
2.1 什么是正则
特殊符号表示文字 文本
^ 开头
[0-9] 数字
2.2 作用
提高效率 省事
2.3 分类
2.3.1 基础正则表达式
^ $ ^$ . * .* [0-9] [^0-9]
2.3.2 扩展正则表达式
| () + {} ?
2.4 正则表达式与通配符的区别
1、通配符是用来找文件的。
2、正则表达式用来的文件中找内容、文本。
2.5 基础正则表达式
2.5.1 环境准备
cat -A 在每一行最后加上一个$符号。
[root@znix ~]# clsn.txt
I am clsn teacher!$
I teach linux.$
$
I like badminton ball ,billiard ball and chinese chess!$
my blog is http://clsn.blog.51cto.com$
$
our site is http://www.etiantian.org$
$
my qq num is 49000448.$
$
not 4900000448.$
my god ,i am not oldbey,but clsn!$
2.5.2 找以m开头的行 ^
^m 表示以m开头,^表示以什么开头。
[root@znix ~]# grep "^m" clsn.txt
my blog is http://clsn.blog.51cto.com
my qq num is 49000448.
my god ,i am not oldbey,but clsn!
2.5.3 以m结尾的行结尾的行 $
m$ 表示以m结尾。
[root@znix ~]# grep "m$" clsn.txt
my blog is http://clsn.blog.51cto.com
2.5.4 显示空行,并且加上行号
-n 显示行号
^$ 表示开头和结尾中间没有东西,即空行
[root@znix ~]# grep -n "^$" clsn.txt
3:
6:
8:
10:
2.5.5 表示任意一个字符 . (点)
点表示任意一个字符,oldb.y 表示点的位置是什么都可以 。
[root@znix ~]# grep "oldb.y" clsn.txt
I am clsn teacher!
my blog is http://clsn.blog.51cto.com
my god ,i am not oldbey,but clsn!
grep -o 显示grep/egrep执行的过程(每一次找到的东西)。
[root@znix ~]# grep -o "." clsn.txt
[root@znix ~]# grep -o "oldb.y" clsn.txt
clsn
clsn
oldbey
2.5.6 找到以点结尾的行
\ 转意符号,把特殊含义的的去掉特殊含义。
\.$ 表示以点结尾。
[root@znix ~]# grep '\.$' clsn.txt
I teach linux.
my qq num is 49000448.
not 4900000448.
2.5.7 * 前一个文本连续出现了0次或1次以上
连续出现了0次就是没出现
-o 显示grep找到的过程
[root@znix ~]# grep "0*" clsn.txt
I am clsn teacher!
I teach linux.
I like badminton ball ,billiard ball and chinese chess!
my blog is http://clsn.blog.51cto.com
our site is http://www.etiantian.org
my qq num is 49000448.
not 4900000448.
my god ,i am not oldbey,but clsn!
[root@znix ~]# grep -o "0*" clsn.txt
000
00000
2.5.8 正则表达式的贪婪性
有多少要多少,尽可能多的匹配。
2.5.9 .* 表示所有
显示所有的内容,一次找到。
[root@znix ~]# grep -o ".*" clsn.txt
I am clsn teacher!
I teach linux.
I like badminton ball ,billiard ball and chinese chess!
my blog is http://clsn.blog.51cto.com
our site is http://www.etiantian.org
my qq num is 49000448.
not 4900000448.
my god ,i am not oldbey,but clsn!
表示所有.* 连续出现的时候会表现贪婪性。
[root@znix ~]# grep "^.*m" clsn.txt
I am clsn teacher!
I like badminton ball ,billiard ball and chinese chess!
my blog is http://clsn.blog.51cto.com
my qq num is 49000448.
my god ,i am not oldbey,but clsn!
2.5.10 [abc] 中括号表示一个整体
相当于一个符号,表示a或者b或者c。
[root@znix ~]# grep "[0-9]" clsn.txt
[root@znix ~]# grep "[A-Z]" clsn.txt
[root@znix ~]# grep "[a-z]" clsn.txt
找到文本中的大写和小写字母。
[root@znix ~]# grep "[a-zA-Z]" clsn.txt
2.5.11 找以 m或n或o开头的 并且以 m或g 结尾的行
.* 表是什么都可以
^[mno] m 或n或o开头的
[mg]$ m 或g 结尾
[root@znix ~]# grep "^[mno].*[mg]$" clsn.txt
my blog is http://clsn.blog.51cto.com
our site is http://www.etiantian.org
2.5.12 [^abc] 排除a或排除b或排除c
[^abc] 表示找排除a或排除b或排除c之外的其他字符
[root@znix ~]# grep "[^abc]" clsn.txt
I am clsn teacher!
I teach linux.
I like badminton ball ,billiard ball and chinese chess!
my blog is http://clsn.blog.51cto.com
our site is http://www.etiantian.org
my qq num is 49000448.
not 4900000448.
my god ,i am not oldbey,but clsn!
2.5.13 grep -v 排除与[^abc]
grep -v 排除行
[^abc] 字符或文字
第3章 昨日回顾(删除文件、开机自启动)
3.1 linux如何让一个服务/脚本开机自启动?
1)chkconfig
2)/etc/rc.local
3.1.1 被chkconfig管理 需要什么条件
1)必须放在/etc/init.d/
2)这个脚本要有执行权限
3)加上chkconfig要求的内容
# chkconfig: 2345 99 99
4)chkconfig --add 把脚本添加到开机自启动
5)检查
3.2 /etc/rc.local
[root@znix ~]# ls -l /etc/rc3.d/ |grep rc.local
lrwxrwxrwx. 1 root root 11 Aug 10 18:36 S99local -> ../rc.local
3.3 磁盘空间不足 no space left on device
1)block满了 500G 3*200G视频
df -h
du -sh /*
du -sh /* |grep G
2)block满了 文件没有被彻底删除 硬链接数为0,进程调用数不为零
检查:lsof|grep delete
3.4 文件的删除原理(条件)
1、硬链接数为0
2、进程调用数为0
日志
/var/log/messages
/var/log/secure
rsyslog
3、inode满了
创建一个文件要占用一个inode和至少一个block
大量的小文件
【转】linux的特殊符号与正则表达式的更多相关文章
- linux的特殊符号与正则表达式
第1章 linux的特殊符号 1.1 通配符 * {} 1.1.1 含义 方便查找文件 通配符是用来找文件名字的. 1.1.2 * 通过find 命令找以 .sh 结尾的文件,使用*替代文件名字. ...
- Linux之特殊符号与正则表达式
Linux中常用的特殊符号 '' 所见即所得,吃啥吐啥 "" 特殊符号会被解析运行 `` ==== $() 先运行里面的命令 把结果留下 > 重定向符号 先清空文件的内容 然 ...
- linux 中特殊符号用法详解
# 井号 (comments)#管理员 $普通用户 脚本中 #!/bin/bash #!/bin/sh井号也常出现在一行的开头,或者位于完整指令之后,这类情况表示符号后面的是注解文字,不会被执行 ...
- (转)linux 中特殊符号用法详解
linux 中特殊符号用法详解 原文:https://www.cnblogs.com/lidabo/p/4323979.html # 井号 (comments)#管理员 $普通用户 脚本中 #!/b ...
- linux的文件处理(匹配 正则表达式 egrep awk sed)和系统、核心数据备份
文件处理 1.处理方式 匹配 正则表达式 egrep awk sed 2.文件中的处理字符 \n 新行符 换行 \t 制表符 tab键 缺省8个空格 \b 退格符 backspace键 退格键 ...
- LINUX中,find结合grep正则表达式,快速查找代码文件。
###目的###LINUX中,find结合grep正则表达式快速查找代码. 例如经常有需求:查找当前目录下所有.h文件中,"public开头,中间任意字符,以VideoFrameReceiv ...
- [转帖]Linux教程(13)- Linux中的通配符和正则表达式
Linux教程(13)- Linux中的通配符和正则表达式 2018-08-22 06:16:44 钱婷婷 阅读数 39更多 分类专栏: Linux教程与操作 Linux教程与使用 版权声明:本文 ...
- 文件类型分类:头文件dirent.h中定义的文件类型与linux内文件符号对应关系
头文件 dirent.h 定义了文件类型: enum{ DT_UNKNOWN = 0, //未知类型 DT_FIFO = 1, //first in, ...
- linux符号与正则表达式
特殊符号 > 或者1> 标准输出重定向 先把文件的内容清空 再放入新的内容 >> 或 2>> 追加重定向 把内容放入文件的最后一行 1 ...
随机推荐
- eclipse svn同步资源库时忽略某些不需要提交文件类型和文件夹
项目开发中,开发人员经常用SVN来管理代码,在和服务器同步时,每次都看到一堆.class,.log,target等文件,这样很不舒服. 解决方法: 打开:window-->preferences ...
- 基于Spring Security和 JWT的权限系统设计
写在前面 关于 Spring Security Web系统的认证和权限模块也算是一个系统的基础设施了,几乎任何的互联网服务都会涉及到这方面的要求.在Java EE领域,成熟的安全框架解决方案一般有 A ...
- 投入机器学习的怀抱?先学Python吧
前两天写了篇文章,给想进程序员这个行当的同学们一点建议,没想到反响这么好,关注和阅读数都上了新高度,有点人生巅峰的感觉呀.今天趁热打铁,聊聊我最喜欢的编程语言——Python. 为什么要说Python ...
- 【洛谷P3919】可持久化数组
题目大意:需要维护一个长度为 N 的数组,支持在历史版本上单点修改和单点查询. 题解:显然,如果直接暴力维护的话会 MLE.因此,采用线段树进行维护,使得空间复杂度由 \(O(mn)\) 降至 \(O ...
- Mac挂载虚拟机的共享文件夹
说明:sshfs可以帮助本地mac访问虚拟机上的共享文件夹,从而操作虚拟机上的文件夹非常方便 1.安装sshfs sudo port install sshfs 2.使用,指定远程目录,到本地某一目录 ...
- word宏(macro) 之 注意事项,常见语法和学习地方
宏:计算机科学里的宏(Macro),是一种批量处理的称谓.一般说来,宏是一种规则或模式,或称语法替换 ,用于说明某一特定输入(通常是字符串)如何根据预定义的规则转换成对应的输出(通常也是字符串).这种 ...
- vue.js2.0开发中的几个技巧
最近用Vue.js开发了几个项目,Vue的双向数据绑定和组件化让我耳目一新,减少了很多底层重复的工作,和基于jQuey的前端开发不起来,基于Vue的开发给我一种酣畅淋漓的感觉. 下面给出我基于Vue. ...
- vs2010中使用 git
在没有使用git之前的,我很苦恼.因为我的代码有时在办公室做,有时也带回家做.做了一些时间,放在哪,要用的时间就不知道家里的还是办公室的是新版本了.甚至出现了旧版本把新版本覆盖的乌龙事情.有了git只 ...
- Quadratic.java
/****************************************************************************** * Compilation: javac ...
- PowerDesigner使用(设置继承,实现)
1.File—New Mode 2添加4个class,1个接口(基本的添加工具都在这里面) 3.class1的设置名字,设置方法 3.设置继承,实现 4.编辑class2,class3继承父类的属性. ...