Linux特殊符号及基础正则表达式
第1章 特殊符号
1.1 引号系列
1.1.1 单引号
所见即所得 单引号里面的内容会原封不动的输出
[root@oldboyedu50-lnb ~]# echo 'oldboy $LANG $PS1 $(hostname) `pwd`' oldboy $LANG $PS1 $(hostname) `pwd`
1.1.2 双引号
与单引号类似 里面的特殊符号会被解析(运行)
[root@oldboyedu50-lnb ~]# echo "oldboy $LANG $PS1 $(hostname) `pwd`" oldboy en_US.UTF-8 [\u@\h \w]\$ oldboyedu50-lnb /root
1.1.3 反引号
优先执行命令
1.2 重定向符号
1.2.1 输出重定向
标准输出重定向 会先把文件内容清空 >
标准输出追加重定向 >>
标准错误输出重定向 2>
标准错误输出追加重定向 2>>
1.2.2 输入重定向
标准输入重定向 <
xagrs tr
#######################################################################################
标准输入追加重定向 <<
与cat配合追加多行内容
1.2.3 错误的和正确的都记录
把错误的内容和正确的内容记录到文件中2>&1
echo oldboy /tmp/log 2>&1
1.3 位置系列
~ 当前用户的家目录
. 当前目录
.. 上一级目录
- 返回上一次所在的位置
cd - su -
1.4 判断系列
1.4.1 &&
前一个命令 执行成功了 再执行后面的 &&
如 ifdown eth0 && ifup eth0
1.4.2 ||
前一个命令执行失败再执行后一个命令(执行成功的话后面的命令不执行) ||
[root@oldboyedu50-lnb ~]# ls /oldboy && echo 目录已存在 使用&&前一个命令正确后面内容才会显示 test.sh t.sh.bak xiaodong xingfujie yingsui.gz 目录已存在 [root@oldboyedu50-lnb ~]# ls /ooooo && echo 目录已存在 目录不正确 后面的内容没有显示 ls: cannot access /ooooo: No such file or directory [root@oldboyedu50-lnb ~]# [root@oldboyedu50-lnb ~]# ls /ooooo || echo 目录不存在 || 前一个命令不正确 后一个命令才会执行 ls: cannot access /ooooo: No such file or directory 目录不存在
1.5 其他符号
1.5.1 #号
# 注释
root用户的命令提示符
[root@oldboyedu-50 ~]#
1.5.2 $符
echo $LANG $PS1 $PATH 变量
awk 取出某一列
$1第一列 $2 第二列 $0 一整行 $NF 最后一列
普通用户的命令提示符 $
1.5.3 ! 叹号
vi/vim中表强制
:q! :wq!
find / awk 表示取反
!ls
找出最近一次以ls开头的命令并运行
!!
运行上一个的命令
1.5.4 | 管道符号
1.5.5 ; 分隔符
在同一行中分割多条命令
第2章 通配符 找文件名
2.1 *(星号)
所有
以什么什么结尾
以.conf结尾的文件
find / -type f -name "*.conf"
包含什么什么的文件
找出系统中文件名包含ifconfig (文件名中有ifconfig就行) [root@oldboyedu-50 /data]# find / -type f -name "*ifconfig*" [root@oldboyedu-50 /data]# find / -type f |grep ifconfig
2.2 {}
2.2.1 生成序列
[root@oldboyedu50-lnb ~]# echo stu{01..5} 生成简单的序列
stu01 stu02 stu03 stu04 stu05
[root@oldboyedu50-lnb ~]# echo {1,5,100} 中间以,分开 只显示里面的内容
1 5 100
#{} 生成序列
#生成 stu001 ..... stu005
[root@oldboyedu50-lnb ~]# echo stu{01..10} 前面有0在第一个数字加上即可
stu01 stu02 stu03 stu04 stu05 stu06 stu07 stu08 stu09 stu10
[root@oldboyedu50-lnb ~]# echo stu{01..10..2} 以1 3 5 7顺序显示
stu01 stu03 stu05 stu07 stu09
[root@oldboyedu-50 /data]# echo stu{001..5} 练习
stu001 stu002 stu003 stu004 stu005
[root@oldboyedu-50 /data]# echo stu{01..05..2} 练习
stu01 stu03 stu05
2.2.2 备份
{}备份的快捷用法 通过{}备份
[root@oldboyedu-50 /data]# echo a{b,c} 以,隔开 显示方式变为ab ac
ab ac
[root@oldboyedu-50 /data]# echo a{,c} 括号里没有b 会变成a ac
a ac
[root@oldboyedu-50 /data]# ll
total 0
-rw-r--r--. 1 root root 0 Jul 10 22:53 linux.txt
-rw-r--r--. 1 root root 0 Jul 10 22:17 oldboy
[root@oldboyedu-50 /data]# cp linux.txt{,.bak} 快捷备份的方式
[root@oldboyedu-50 /data]# ll
total 0
-rw-r--r--. 1 root root 0 Jul 10 22:53 linux.txt
-rw-r--r--. 1 root root 0 Jul 10 22:53 linux.txt.bak
-rw-r--r--. 1 root root 0 Jul 10 22:17 oldboy
第3章 基础正则表达式
3.1 了解正则
3.1.1 为什么使用正则
帮助我们快速过滤
特殊符号表示文字 文本
提高效率 省事
3.1.2 正则表达式与通配符的区别
通配符是用来找文件名的。Linux大部分命令都支持
正则表达式用来在文件中找内容、文本。三剑客支持
3.1.3 使用正则表达式注意事项
正则表达式按照行为单位处理文件(grep/sed)
使用必须在英文环境
给 grep egrep设置别名 --color
3.1.4 正则表达式的贪婪性
替你寻找的文字符号 有多少吃多少 有多少匹配多少
正则中表示 连续出现或所有的时候
3.2 基础正则符号
准备环境
用vim写入 [root@oldboyedu-50 oldboy]# 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!
3.2.1 ^ 以….开头
^ 以xxxx开头的行
比如 ^m 以m开头的一行
[root@oldboyedu-50 oldboy]# grep '^m' oldboy.txt my blog is http://oldboy.blog.51cto.com my qq is 49000448 my god ,i am not oldbey,but OLDBOY!
3.2.2 $ 以….结尾
$ 以….结尾
比如m$ 以m结尾的一行
cat -A 显示文件中所有符号(每行结尾都会有个$)
[root@oldboyedu50-lnb /oldboy]# grep ' $' oldboy.txt 显示以空格结尾的行 my blog is http://oldboy.blog.51cto.com our size is http://blog.oldboyedu.com
3.2.3 ^$ 空行
什么符号都没有
-n 显示行号
[root@oldboyedu-50 oldboy]# grep '^$' oldboy.txt [root@oldboyedu-50 oldboy]# grep -n '^$' oldboy.txt 3: 8:
3.2.4 . 任意一个字符
不会匹配空行
grep -o 显示grep命令执行过程
[root@oldboyedu50-lnb /oldboy]# #grep '.' oldboy.txt #grep 命令每一次找出了什么 显示grep命令执行过程 [root@oldboyedu50-lnb /oldboy]# grep -o '.' oldboy.txt
3.2.5 \ 转义字符
转义字符
显示文件中以.(点)结尾的行
[root@oldboyedu50-lnb /oldboy]# grep '\.$' oldboy.txt 使用\取消.的特殊含义 I teach linux. not 4900000448. [root@oldboyedu50-lnb /oldboy]# tr '\n' '\t' <oldboy.txt ##将文件以\n回车结尾的文件 改为以\t tab结尾 其实就是将行变为列 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]#
3.2.6 * 前一个字符连续出现了0次或0次以上
0* 0次 没有 grep ''会把文件内容都显示出来
0次以上 0 00000000000
[root@znix ~]# grep "0*" clsn.txt 坑1-grep '0*' 会把文件内容都显示出来 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
3.2.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!
3.2.8 [] [abc] a或b或c
grep -i 不区分大小写
grep '[a-z]' oldboy.txt 搜索a-z的内容 grep '[A-Z]' oldboy.txt 搜索A-Z的内容 grep '[0-9]' oldboy.txt 搜索0-9的内容 grep '[a-zA-Z]' oldboy.txt 搜索a-z或A-Z的内容 grep '[a-Z]' oldboy.txt 搜索a-z或A-Z的内容 grep '[a-zA-Z]' oldboy.txt === grep '[a-Z]' oldboy.txt(该项只适用于grep) grep -i 不区分大小写 ignore case
3.2.9 [^abc] 排除a或排除b或排除c
3.2.9.1 [^abc]
[^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!
3.2.9.2 grep -v 排除与[^abc]
grep -v 排除行
[^abc] 字符或文字
Linux特殊符号及基础正则表达式的更多相关文章
- Linux特殊符号
第1章 回顾昨天 1.1 linux如何让一个服务/脚本开机自启动? chkconfig /etc/rc.local 1.2 被chkconfig管理 需要什么条件 1.2.1 必须放在/etc/in ...
- linux正则表达式之-基础正则表达式(基于grep)
linux正则表达式: 简单的说,正则表达式就是为处理大量的字符串而定义的一套规则和方法,如:假设@代表123456,!代表abcde.通过定义的这些特殊符号的铺助,系统管理员就可以快速的过滤,替换或 ...
- Linux通配符与基础正则表达式、扩展正则表达式
在Linux命令行操作或者SHELL编程中总是容易混淆一些特殊字符的使用,比如元字符‘*’号,作为通配符匹配文件名时表示0个到无穷多个任意字符.而作为正则表达式匹配字符串时,表示重复0个到无穷多个的前 ...
- linux正则表达式(基础正则表达式+扩展正则表达式)
正则表达式应用非常广泛,例如:php,Python,java等,但在linux中最常用的正则表达式的命令就是grep(egrep),sed,awk等,换句话 说linux三剑客要想能工作的更高效,就一 ...
- Linux基础正则表达式:grep,sed
先说明语系对正则表达式的影响 LANG=C:0,1,2,3,4...A,B,C,D...Z a b c d ... z LANG=zh_CN:0,1,2,3,4...a A b B c C ...
- Linux特殊符号浅谈
Linux特殊字符浅谈 我们经常跟键盘上面那些特殊符号比如(?.!.~...)打交道,其实在Linux有其独特的含义,大致可以分为三类:Linux特殊符号.通配符.正则表达式. Linux特殊符号又可 ...
- Linux实战教学笔记10:正则表达式
第十节 正则表达式 标签(空格分隔):Linux实战教学笔记 ---更多资料点我查看 第1章 什么是正则表达式 正则表达式就是为了处理大量的文本|字符串而定义的一套规则和方法 通过定义的这些特殊符号的 ...
- 自学Linux Shell18.1-sed编辑器基础特性
点击返回 自学Linux命令行与Shell脚本之路 18.1-sed编辑器基础特性 linux世界中最广泛使用的两个命令行编辑器: sed gawk 1. sed概念 sed是stream edito ...
- L013-linux基础正则表达式手把手实战讲解小节
L013-linux基础正则表达式手把手实战讲解小节 这么一看又有10天没更新博客了,最近也一直在学就是时间比较闲散,再加上做上次老师留的十多道题,所以时间比较紧张,本来做完题准备直接先看L014讲解 ...
随机推荐
- zabbix部署-版本3.2.6
172.18.237.14:一台主机上安装LAMP环境以及zabbix_server.zabbix_agentd 一.安装zibbix-server 1.环境要求 yum install mysql- ...
- Effective C++ 一些记录和思考
Effective C++ Iter 3 - 尽可能使用 const 一个反逻辑的 bitwise const class Text { ... char& operator[](std::s ...
- buf.writeUInt16BE()
buf.writeUInt16BE(value, offset[, noAssert]) buf.writeUInt16LE(value, offset[, noAssert]) value {Num ...
- 使用scrapy 爬取酷狗音乐歌手及歌曲名并存入mongodb中
备注还没来得及写,共爬取八千多的歌手,每名歌手平均三十首歌曲算,大概二十多万首歌曲 run.py #!/usr/bin/env python # -*- coding: utf-8 -*- __aut ...
- SERE0014: Illegal HTML character: decimal 154
问题:jmeter,生成报告转化成html,报错SERE0014: Illegal HTML character: decimal 154 原因: 某些字符,特别是控制字符#x7F-#x9F ,在XM ...
- 牛客网NOIP赛前集训营 提高组 第5场 T2 旅游
[题解] 我们可以发现不在最小生成树上的边一定不能多次经过,因为一条不在最小生成树上的边(u,v)的边权比最小生成树上(u,v)之间的路径更长,选择不在最小生成树上的边一定不划算. 我们还需要确定最小 ...
- xe的debug怪现象
死活有问题,而且不能重新编译生成文件. 查网上说明:在删除项目xxx.dproj文件后,然后打开dpk文件,会自动生成.dproj文件,再然后一切OK. 的确如此,但莫名其妙.
- 10.3andXE7的DEVExpress18.2.1记录备查
记录备查: win10 DEVExpress18.2.1用DevExpressVCL一键编译安装工具_v10.3.2 - 2018-12-12.exe(包括help,备份...升级系统不用重新安装控件 ...
- 【codeforces 3C】Tic-tac-toe
[链接] 我是链接,点我呀:) [题意] 题意 [题解] 写一个函数判断当前局面是否有人赢. 然后枚举上一个人的棋子下在哪个地方. 然后把他撤回 看看撤回前是不是没人赢然后没撤回之前是不是有人赢了. ...
- Leetcode 89.格雷编码
格雷编码 格雷编码是一个二进制数字系统,在该系统中,两个连续的数值仅有一个位数的差异. 给定一个代表编码总位数的非负整数 n,打印其格雷编码序列.格雷编码序列必须以 0 开头. 示例 1: 输入: 2 ...