shell语句和正则表达式

shell简介

一、什么是shell
1.由C语言编写的程序,是内核和用户间的命令解释器
2.shell执行命令的方式

1)交互式:执行命令
2)批处理:shell脚本
3)shell程序:bash(Linux默认shell程序) sh、ash、csh、ksh

3.什么是shell脚本

1)把要执行的命令按顺序写入文档中,这个文档 就是shell脚本
2)执行脚本的方法
  脚本路径(必须要x权限)
  sh 脚本路径(打开一个新的bash执行)
  source 脚本路径=. 脚本路径(在当前bash 下执行)
3)完整的脚本必须包含
  脚本声明
  注释
  可执行语句

4.重定向与管道

1)| :将左侧的命令结果作为右侧命令的处理对象
2)重定向

重定向输入 <
重定向输出 >(覆盖) >>(追加)
标准错误输出 2>
混合输出 &>

3)交互式硬件设备

/dev/stdin:键盘,默认编号0,标准输入
/dev/stdout:显示器,默认编号1,标准输出
/dev/stderr:显示器,默认编号2 ,标准错误输出
二、shell变量
1.自定义变量

1)定义一个新的变量
2)变量赋值

=          :直接赋值
" "        :通过$引用其他变量进行赋值
' '        : 禁止引用其他变量(将特殊字符视为普通字符)
` ` = $() : 用命令结果赋值
read       : 从键盘输入定义变量值
read -p “提示信息:” 变量名

3)变量的设置

export:导出为全局变量(当前用户、临时)
~/.bash_profile:设置用户永久变量
/etc/profile:设置系统永久变量

4)变量的运算(只能算整数)

expr $变量一 运算符 $变量二
运算符:+ 、 - 、 \* 、 / 、 %(加减乘除取余)
2.环境变量

1)主要用于设置用户的工作环境,包括用户的宿主目录、命令查找路径、用户当前目录、登录终端等
2)常见的环境变量

USER:用户名称
HOME:用户宿主目录
HOSTNAME:用户名
LANG:语言和字符集
PWD:当前工作目录
PATH:命令搜索路径
SHELL:shell
3.位置变量

位置变量也叫位置参数,用$1-$9表示

4.预定义变量
$#:统计命令行中有几个位置变量
$*:表示所有位置变量的内容
$?:测试前一条命令是否正确,0正确,非0错误
$0:当前执行的程序或脚本名称

条件语句

一、条件测试
1.语法
test 条件表达式或[ 条件表达式 ]
2.文件测试
-d :测试是否为目录
-f :测试是否为文件
-e :测试目录或文件是否存在
-r :测试当前用户是否有读取权限
-w :测试当前用户是否有写入权限
-x :测试当前用户是否有执行权限
3.文件判断
-f :判断单个文件
-nt :判断文件A是否比文件B新
-ot :判断文件A是否比文件B旧
-ef :判断两个文件是否为同一个inode
4.整数值比较
-eq :=
-ne :≠
-gt :>
-lt :<
-le :≤
-ge :≥
5.字符串比较
 = :第一个字符串与第二个字符串相同
!= :第一个字符串与第二个字符串不相同,!表示取反
-z :检查字符串是否为空
6.逻辑测试

在这里插入图片描述在这里插入图片描述

二、if语句结构
1.单分支:只有条件成立时才显示结果,反之则不
语法:
   if 条件
   then(当条件成立时)
     结果
   fi
2.双分支:显示条件成立或不成立的结果
语法:
   if 条件
   then(当条件成立时)
    结果
   else(当条件不成立时)
    结果
   fi
3.多分支:对测试条件进行多次测试,显示不同结果
语法:
   if 条件1
   then 
     结果1
   elif 条件2
     结果2
   else
     结果3
   fi

case和循环

一、case语句
1.case的概述:

与if相同,当变量存在多个取值时,对不同的取值显示不同的结果

2.case的语法
 case 变量值 in
取值一)
   结果一
   ;;
取值二)
   结果二
取值*)
   默认结果
esac

1)case行尾必须跟“in”,取值后必须跟“)”结束
2);;表示一个循环结束
3)取值中可以用[ ]表示一个连续的范围,| 表示或
4)* 表示没有上面的取值,结束循环

三、for循环语句
1.对取值进行循环,有规律
2.for的语法
for 变量名 in 取值列表
do
  执行的命令
done
四、while循环语句
1.对条件进行循环,直到不满足为之
2.while的语法
while 条件
do
  命令
done

1)true(真):表示条件永远成立,用exit 退出,可以将exit 0加入结果中,即当某个结果满足条件是终止循环
2)false(假):循环不会被执行

sed与awk

一、正则表达式
1.正则表达式分为基础正则表达式(grep,sed,awk,vim,egrep)和扩展正则表达式(egrep,awk)
2.基础正则表达式元字符

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
3.扩展表达式元字符
在这里插入图片描述

二、sed工具
1.sed的基本语法
-e:指定要执行的命令,只有一个编辑命令时刻省略
-n:只输出处理后的行,读入时不显示
-i:直接编辑文件,不输出结果
2.sed常用操作

在这里插入图片描述

三、awk工具
1.awk基本语法
awk [选项] '模式或条件{编辑命令}'文件
awk -f 脚本文件 文件
2.awk常见内置变量

在这里插入图片描述

四、sort对文件进行排序

在这里插入图片描述

五、uniq去重复
1.-c:进行计数
2.-d:只显示重复的行
3.-u:只显示不重复的行
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值