1 shell引号

1)反斜线\

转译

echo *    显示当前目录中所有的文件列表

echo \*    显示*字符

换行

find / \    换行输入多行命令

> -name "test.txt" \

> -type f \

> -size +5M

find / -name "test.txt" -type f -size +5M

2)单引号''

单引号将它中间的所有任意字符还原为字面意义,实现屏蔽shell元字符的功能,单引号必须成对出现。

echo ‘$HOME’

echo 'test\'

3)双引号""

双引号类似于单引号,不会屏蔽` \ $ 这三个shell元字符的含义,如果需要屏蔽需要前面加一个\符号,其他字符的功能将被屏蔽(包括单引号)。两个双引号之间的单引号不必成对出现

[root@localhost ~]# echo $HOME
/root
[root@localhost ~]# echo "$HOME"
/root
[root@localhost ~]# echo "\$HOME"
$HOME
[root@localhost ~]# echo "this's a book"
this's a book

4)反引号``

shell中使用反引号进行命令替换,命令替换使shell可以将命令字符替换成命令执行结果的输出内容,也可用$()来实现

echo “today is `date +%D`”

echo "today is $(date +%D)"

2 正则表达式

正则表达式中有些匹配字符与shell中的通配符符号一样,但是含义不同

基本正则表达式:grep egrep vi sed awk

扩展正则表达式: egrep awk

基本正则表达式及其所对应的含义

c        匹配字母c

.         匹配任意单个字符

*         匹配前一个字符出现0次或者多次

.*        匹配任意多个任意字符

[]        匹配金河中的任意单个字符,括号中为一个集合

[x-y]         匹配连续的字串范围

^         匹配字串的开头

$        匹配字串的结尾

[^]       匹配否定,对括号的集合取反

\         匹配转译后的字串

\{n,m\}     匹配前一个字符重复n到m次

\{n,\}        匹配前一个字符重复至少n次

\{n\}      匹配前一个字符重复n次

\(\)      将\(与\)之间的内容存储在“保留空间”,最大存储9个

\n       通过\1至\9调用保留空间中的内容,一般和上面的\(\)配合使用

基本正则表达式案例

grep o[os]t /etc/passwd    查找包含oot或者ost的行

grep [0-9] /etc/passwd      查找包含数字0-9的行

grep sbin/[^n] /etc/passwd   查找sbin/后面不跟n的行

grep ‘0\{1,2\}’ /etc/passwd     查找数字0出现1次到2次的行

grep "\(root\)\(:\).*\2\1" /etc/passwd 查找包含以root:开头并以:root结尾的字串行

扩展正则表达式

{n,m}      等同于基本正则表达式的\{n,m\}

+            匹配前一个字符出现一次或多次

?          匹配前一个字符出现0次或一次

|             匹配逻辑或者,即匹配|前或后的字串

()        匹配正则集合

egrep '0{1,2}' /etc/passwd      查找数字0出现1次和2次的行

egrep '0+' /etc/passwd         查找包含至少一个0的行

egrep '(root|admin)' /etc/passwd    查找包含root或者admin的行

字符集

[:alpha:]    字母字符

[:alnum:]    字母和数字字符

[:cntrl:]      控制字符

[:digit:]      数字符号

[:xdigit:]    十六进制数字字符

[:punct:]    标点符号

[:graph:]    非空格字符

[:print:]      任何可以显示的字符

[:space:]    任何产生空白的字符

[:blank:]     空格和Tab键字符

[:lower:]     小写字母

[:upper:]    大写字母

grep [[:digit:]] /etc/passwd

自动化运维之shell引号和正则表达式(二)的更多相关文章

  1. 自动化运维工具——puppet详解(二)

    一.class 类 1)什么是类? 类是puppet中命名的代码模块,常用于定义一组通用目标的资源,可在puppet全局调用: 类可以被继承,也可以包含子类: 具体定义的语法如下: class NAM ...

  2. 自动化运维之shell通配符,转义符,和元字符(二)

    1 shell通配符 通配符看起来有点象正则表达式语句,但是它与正则表达式不同的,不能相互混淆.把通配符理解为shell特殊代号字符就可. 二.shell元字符 shell除了有通配符之外,由shel ...

  3. 自动化运维工具——ansible详解(二)

    Ansible playbook 简介 playbook 是 ansible 用于配置,部署,和管理被控节点的剧本. 通过 playbook 的详细描述,执行其中的一系列 tasks ,可以让远端主机 ...

  4. 自动化运维工具——ansible命令使用(二)

    一.Ansible系列命令使用 ansible命令执行过程 1 . 加载自己的配置文件 默认/etc/ansible/ansible.cfg 2 . 加载自己对应的模块文件,如command 3 . ...

  5. 自动化运维:(1)认识 Shell

    目录 (一)运维是什么? (二)什么是 Shell? (三)Shell的分类 (四)Shell脚本 (五)Shell的变量 (六)表达式 (七)Linux常见符号 (八)常见命令 (一)自动化运维是什 ...

  6. Linux Shell交互式自动化运维程序

    Expect是Linux操作系统下的一个用来处理交互操作,系统默认是没有安装expect库,所以执行expect会提示找不到命令,需要手动安装,其它安装也比较简单,可以通过二进制源码包编译配置进行安装 ...

  7. 自动化运维—tomcat服务起停(mysql+shell+django+bootstrap+jquery)

    项目简介: 项目介绍:自动化运维是未来的趋势,最近学了不少东西,正好通过这个小项目把这些学的东西串起来,练练手. 基础架构: 服务器端:web框架-Django 前端:html css jQuery ...

  8. 简单的自动化运维工具(shell+except+whiptail+功能模块化函数+循环)

    简单的自动化运维工具(shell+except+whiptail+功能模块化函数+循环) http://www.cnblogs.com/M18-BlankBox/p/5881700.html

  9. 企业级自动化运维工具---puppet详解

    本文收录在Linux运维企业架构实战系列 1.认识puppet 1.1 引入 puppet是什么,咱们先不用专业的名词解释它,咱们先描述一些工作场景,看明白这些工作场景,自然会知道puppet是什么. ...

随机推荐

  1. 实现dedecms(PC端)全站动态浏览 并实现伪静态

    dedecms默认是生成静态文件,如何实现织梦(PC端)全站动态浏览呢? 织梦全站动态浏览方法 1. 修改首页为动态浏览 后台-生成-更新首页-勾选“仅动态浏览” 2. 修改栏目页为动态浏览 ①添加或 ...

  2. 异步 ThreadPool

    线程池是单例,一个进程里只有一个线程池 private void btnThreadPool_Click(object sender, EventArgs e) { Stopwatch watch = ...

  3. OpenStack安装keyston 错误BError: (pymysql.err.InternalError) (1071, u‘Specified key was too long; max key length is 767 bytes‘) [SQL: u‘\nCREATE TABLE migrate_ver

    折腾了两天的错误,BError: (pymysql.err.InternalError) (1071, u‘Specified key was too long; max key length is ...

  4. Maven项目报错:Failed to execute goal org.apache.maven.plugins:maven-clean-plugin:2.5:clean (default-clea

    [ERROR] Failed to execute goal org.apache.maven.plugins:maven-clean-plugin:2.5:clean (default-clean) ...

  5. Scala 的list

    9.1 使用列表 列表类型:跟数组一样,列表也是同质化的(homogeneous).即所有元素都要是同种类型. 列表结构:所有列表由两部分组成:Nil 和 ::(cons). 基本操作:主要有三个:h ...

  6. selenium+chrome浏览器驱动-爬取百度图片

    百度图片网页中中,当页面滚动到底部,页面会加载新的内容. 我们通过selenium和谷歌浏览器驱动,执行js,是浏览器不断加载页面,通过抓取页面的图片路径来下载图片. from selenium im ...

  7. JavaWeb项目实现图片验证码

    一.什么是图片验证码? 可以参考下面这张图: 我们在一些网站注册的时候,经常需要填写以上图片的信息. 这种图片验证方式是我们最常见的形式,它可以有效的防范恶意攻击者采用恶意工具,调用“动态验证码短信获 ...

  8. CSS BEM 命名规范简介

    [前言] BEM 是一个简单又非常有用的命名约定.让你的前端代码更容易阅读和理解,更容易协作,更容易控制,更加健壮和明确,而且更加严密.这篇文章主要介绍了CSS BEM 命名规范简介(推荐)的相关资料 ...

  9. python的web框架---Django项目

    Django项目之会议室预预订: 界面效果展示: 1.创建超级管理员,实现预定界面功能 2.预定界面: (一)基于pymysql设计数据表结构,理清前后端与用户交互逻辑.(用户表,会议室表,预定内容存 ...

  10. Python9-模块2-序列化-day20

    序列化 什么叫序列化——将原本的字典.列表等内容转换成一个字符串的过程就叫做序列化. 序列就是字符串 序列化的目的1.以某种存储形式使自定义对象持久化:2.将对象从一个地方传递到另一个地方.3.使程序 ...