第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. Executors工厂类

    newCachedThreadPool 重用之前的线程 适合执行许多短期异步任务的程序. 调用 execute() 将重用以前构造的线程 如果没有可用的线程,则创建一个新线程并添加到池中 默认为60s ...

  2. BigDecimal舍入规则

    1.ROUND_UP 舍入远离零的舍入模式. 在丢弃非零部分之前始终增加数字(始终对非零舍弃部分前面的数字加1). 注意,此舍入模式始终不会减少计算值的大小. 2.ROUND_DOWN 接近零的舍入模 ...

  3. 实验十二:SWING界面设计

    实验程序: import java.awt.FlowLayout;import javax.swing.*;import java.awt.Container;public class jianli ...

  4. [Luogu] P4366 [Code+#4]最短路

    题目背景 在北纬 91° ,有一个神奇的国度,叫做企鹅国.这里的企鹅也有自己发达的文明,称为企鹅文明.因为企鹅只有黑白两种颜色,所以他们的数学也是以二进制为基础发展的. 比如早在 1110100111 ...

  5. <SpringMvc>入门七 拦截器

    什么是拦截器 1.SpringMVC框架中的拦截器用于 对处理器 进行预处理和后处理的技术. 2.可以定义拦截器链,按照顺序执行. 3.拦截器和过滤器功能类似,区别在 拦截器 过滤器 过滤器是Serv ...

  6. LinuxMint19.1安装搜狗拼音输入法

    Installation 1.到搜狗拼音输入法官网下载Linux版. 2.使用dpkg命令安装deb软件包 $ sudo dpkg -i sogoupinyin_2.2.0.0108_amd.deb ...

  7. 网络模型、IP命令、SS命令介绍

    1. 分层对应关系 OSI七层模型和TCP/IP五层模型都属于TCP/IP协议栈,而TCP/IP协议栈只有两种传输层协议:TCP.UDP,所以对于Telnet.FTP这些协议,建议称之为承载在TCP之 ...

  8. shoppping collection

    personal shopping collections shop Table of Contents 1. phone network 2. band share 3. Motorcycle He ...

  9. streamwise veloicty along the jet axis using Matlab/Octave

    input file: v.csv scpirts as follows filename='v.csv'; % assign file to a variable m=csvread(filenam ...

  10. SQL学习笔记:库和表的创建

    目录 创建和删除数据库 创建和删除表 添加.修改和删除字段 创建和删除数据库 CREATE DATABASE justForLearn; DROP DATABASE justForLearn; 创建和 ...