第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特殊符号及基础正则表达式的更多相关文章

  1. Linux特殊符号

    第1章 回顾昨天 1.1 linux如何让一个服务/脚本开机自启动? chkconfig /etc/rc.local 1.2 被chkconfig管理 需要什么条件 1.2.1 必须放在/etc/in ...

  2. linux正则表达式之-基础正则表达式(基于grep)

    linux正则表达式: 简单的说,正则表达式就是为处理大量的字符串而定义的一套规则和方法,如:假设@代表123456,!代表abcde.通过定义的这些特殊符号的铺助,系统管理员就可以快速的过滤,替换或 ...

  3. Linux通配符与基础正则表达式、扩展正则表达式

    在Linux命令行操作或者SHELL编程中总是容易混淆一些特殊字符的使用,比如元字符‘*’号,作为通配符匹配文件名时表示0个到无穷多个任意字符.而作为正则表达式匹配字符串时,表示重复0个到无穷多个的前 ...

  4. linux正则表达式(基础正则表达式+扩展正则表达式)

    正则表达式应用非常广泛,例如:php,Python,java等,但在linux中最常用的正则表达式的命令就是grep(egrep),sed,awk等,换句话 说linux三剑客要想能工作的更高效,就一 ...

  5. 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 ...

  6. Linux特殊符号浅谈

    Linux特殊字符浅谈 我们经常跟键盘上面那些特殊符号比如(?.!.~...)打交道,其实在Linux有其独特的含义,大致可以分为三类:Linux特殊符号.通配符.正则表达式. Linux特殊符号又可 ...

  7. Linux实战教学笔记10:正则表达式

    第十节 正则表达式 标签(空格分隔):Linux实战教学笔记 ---更多资料点我查看 第1章 什么是正则表达式 正则表达式就是为了处理大量的文本|字符串而定义的一套规则和方法 通过定义的这些特殊符号的 ...

  8. 自学Linux Shell18.1-sed编辑器基础特性

    点击返回 自学Linux命令行与Shell脚本之路 18.1-sed编辑器基础特性 linux世界中最广泛使用的两个命令行编辑器: sed gawk 1. sed概念 sed是stream edito ...

  9. L013-linux基础正则表达式手把手实战讲解小节

    L013-linux基础正则表达式手把手实战讲解小节 这么一看又有10天没更新博客了,最近也一直在学就是时间比较闲散,再加上做上次老师留的十多道题,所以时间比较紧张,本来做完题准备直接先看L014讲解 ...

随机推荐

  1. 通过request对象获取客户端的相关信息

    通过request对象获取客户端的相关信息 制作人:全心全意 通过request对象可以获取客户端的相关信息.例如HTTP报头信息.客户信息提交方式.客户端主机IP地址.端口号等等. request获 ...

  2. 【Codeforces 404C】Restore Graph

    [链接] 我是链接,点我呀:) [题意] 每个节点的度数不超过k 让你重构一个图 使得这个图满足 从某个点开始到其他点的最短路满足输入的要求 [题解] 把点按照dep的值分类 显然只能由dep到dep ...

  3. 【Codeforces 364A】Matrix

    [链接] 我是链接,点我呀:) [题意] 让你求出b[i][j]=s[i]*s[j]规则构成的矩阵 的所有子矩阵中子矩阵的和为a的子矩阵的个数 [题解] (x,y,z,t) 会发现它的和就是sum(x ...

  4. BNUOJ 2461 Anniversary party

    Anniversary party Time Limit: 1000ms Memory Limit: 65536KB This problem will be judged on PKU. Origi ...

  5. BNUOJ 19792 Airport Express

    Airport Express Time Limit: 1000ms Memory Limit: 131072KB This problem will be judged on UVA. Origin ...

  6. Butterfly

    Butterfly 时间限制:C/C++ 2秒,其他语言4秒空间限制:C/C++ 131072K,其他语言262144K64bit IO Format: %lld 题目描述 给定一个n*m的矩阵,矩阵 ...

  7. [K/3Cloud]有关单据显示行数限制和数据导出的建议

    1.针对显示行数限制: 模仿现在很流行的"查看更多"的模式,动态加载数据. 我相信这一点建议别人也提过,还请总部对此开展头脑风暴,因为在实际使用中客户总是不理解为何要限制行数,解释 ...

  8. 藏妹子之处(excel)

    问题描述: 今天CZY又找到了三个妹子,有着收藏爱好的他想要找三个地方将妹子们藏起来,将一片空地抽象成一个R行C列的表格,CZY要选出3个单元格.但要满足如下的两个条件: (1)任意两个单元格都不在同 ...

  9. 别墅房间 CodeVS原创

    时间限制: 1 s 空间限制: 64000 KB 题目等级 : 青铜 Bronze 题目描述 Description 小浣熊松松到他的朋友家别墅去玩,发现他朋友的家非常大,而且布局很奇怪.具体来说,朋 ...

  10. Javaweb中文乱码问题

    request.setCharacterEncoding("utf-8");必须写在获得参数之前,即request.getParameter();之前