【第22期】观点:IT 行业加班,到底有没有价值?

Linux 运维学习第五天-正则表达式及shell脚本

原创 2016年08月30日 21:38:44

REGXP:REGular EXPression 正则表达式

正则表达式:

Basic REGEXP:基本
EXtended REGEXP:扩展

基本正则表达式:

.:
[]:
[^]:

次数匹配:

*:
\?:
{m,n}:

.*:

锚定:

^:
$:
\<,\b:
>,\b:
()
\1,\2,..

grep:使用基本正则表达式定义的

-i 忽略大小写
-v
-o
-E:使用扩展的正则表达式
-A n:显示匹配行后面n行
-B 前
-C 前后

扩展的正则表达式:

字符匹配:

[]
[^]
次数匹配
*
?
+
{m.n}
位置锚定:
^
$
\<
>

分组
()
\1
或者

|
grep -E =egrep

fgrep:不支持正则表达式;

shell编程:

编程语言:机器语言,汇编语言,高级语言

静态语言:编译型语言
强类型(变量)
实现转换为可执行格式:c,c++,java,c#

动态语言:解释型语言,
弱类型
边介绍边执行
PHP,shell,python,perl

面向对象:shell,c
面向过程:java,python,

变量类型:
字符
数值:
整型
浮点型

逻辑运算:
异或:

shell;弱类型编程语言
强:变量在使用前,必须事先声明,甚至还需要初始化;
弱:变量用是声明,甚至不区分类型;

变量赋值:

bash:变量类型;
环境变量:
作用域为当前bash及子进程
export VARNAME=VALUE (导出)
本地变量(局部变量)
VARNAME=VALUE :整个bash进程
local VARNAME=VALUE:只对当前代码段有效

脚本在执行时会启动一个子shell进程
命令行中启动的脚本会继承当前shell环境变量
系统自动执行的脚本(非命令行启动)就需要自己定义环境变量

位置变量:
1,2,3..?:保存上一个命令执行状态返回值
程序执行结果
程序状态返回代码(0-255)
0:正确执行
1-255:错误执行
1,2,127系统预留;
输出重定向
>

>
2>
2>>
&>

/dev/null :软件设备,bit bucket ,数据黑洞

撤销变量 unset VARNAME

操作变量本身就不要加$

查看变量 set

查看当前shell中的环境变量:
printenv
env
export

字符型变量
users=zkh
users=$users:jl

脚本:命令的堆砌,按照实际需要,结合流程控制

练习:写一个脚本:

1、添加5个用户,user1,。。user5
2、每个密码同用户名,添加后不显示passwd执行结果信息
3、显示添加完成信息
二、
1.使用一个变量保存一个用户名
2.删除此变量中的用户,且删除家目录
3.显示”用户删除完成“信息

条件判断:

bash中实现条件判断:

条件测试类型:
整数测试
字符测试
文件测试

条件测试的表达式:

[ expression ]
[[ expression ]]
test expression

整数比较:

-eq:是否相等
-ne:是否不等
-gt:是否大于
-lt:是否小于
-ge:大于等于
-le:小于等于

命令间的逻辑关系:
逻辑与: &&
第一个条件为假时,第二条件不要再判断;第一个条件为真时,第二条件必须再判断
逻辑或: || id
非:!

变量名称:

1、只能包含字母,数字,下划线,并且不能以数字开头
2、不应该跟系统中已有的环境变量重名
3、做到见名知意
如果用户存在,就显示用户已存在,否则就添加用户

条件判断,控制结构:

单分支
if 判断条件;then
statement1
statement2

fi

双分支:
if 判断条件;then
statement1
statement2
.,
。。
else
statement3
statement4
.。。
fi

脚本练习:
1,判断当前用户系统上是否有用户的默认shell

shell中做算数运算

1.let
2.[]3,((a+b))
s4.expr

版权声明:本文为博主原创文章,欢迎转载,注明来源。 举报

相关文章推荐

《linux命令行与shell脚本编程大全》第三版 - 核心笔记(3/4):正则表达式

《linux命令行与shell脚本编程大全》 全书4部分: ☆ 【1】linux命令行(1-10章) ☆ 【2】shell脚本编程基础(11-16章) ☆ 【3】高级shell脚本编程(17-...

shell脚本学习:循序渐进程序选择流与正则表达式

shell脚本和其他编程语言一样提供了程序执行流if esle , do while ,for ,case,等。和其他编程语言一样,shell脚本的程序执行流的存在是为建立完整的逻辑思维,通过下面几个脚本来慢慢学习程序执行流。首先是if else循环与do while循环的格式:单分支:if CONDITION ; then //需要注意CONDITION语句的格式:[ command ] command左右各有一个空格键,并用[ ]括起来statement //statement可以是多条语句...fi双分支:if CO

linux命令行与shell脚本大全_第十九章_正则表达式

1.特殊字符 转义用\ 匹配行首^ 匹配行尾 $ 删除文本中空白行:sed '/^$/d' sed_data.txt 匹配一个字符:使用. 字符数组:将指定的字符放在中...

shell脚本regex正则表达式 和 字符串替换

转自:http://hi.baidu.com/yangyangye2008/blog/item/fafb00d54b504211a18bb78c.html 任意字符 ^行首匹配 $行尾匹配 ^$表示空行,不含字符的行 ^ $匹配只有单个空格的行 [0-9] [a-zA-Z] ^[A- Z]搜索以大写字母开头的行 [^A-Z]匹配大写字母意外的任意字符 *表示匹配0个或若

shell脚本学习:快速理解正则表达式之grep篇

shell脚本是Linux的核心之一,而正则表达式是shell脚本的核心之一,理解正则表达式可以快速匹配需要查找的内容,对以后的shell脚本编程打下一个坚实的基础。 接触正则表达式一般从grep命令开始,例如: grep "^#[:space:]*" /e
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)