Linux 基础之 Linux 的自定义函数、系统函数库、资源脚本控制、信号、一次性计划任务、周期性计划任务、脚本加锁、元字符、find、sed 及 awk、sed 替换命令、sed 指令及其它指令

一、Linux 的自定义函数、系统函数库、资源脚本控制、信号、一次性计划任务、周期性计划任务、脚本加锁、元字符、find、sed 及 awk、sed 替换命令、sed 指令及其它指令、sed 多行模式空间、保持空间、awk 字段和表达式
  1. 自定义函数,如下所示:
  • 函数用于"包含"重复使用的
  • 命令结合
  • 自定义函数,如下:
function fname(){
  命令
}
  • 函数的执行,fname
  1. 自定义函数,如下所示:
  • 函数作用范围的变量,local 变量名
  • 函数的参数,$1 $2 $3 ... $n
  1. 系统脚本,如下所示:
  • 系统自建了函数库,可以在脚本中引用,如 /etc/init.d/functions
  • 自建函数库,使用 source 函数脚本文件导入函数
  1. 脚本优先控制,如下所示:
  • 可以使用 nicerenice 调整脚本优先级
  • 避免出现不可控的死循环,死循环导致 cpu 占用过高,死循环导致死机
  1. 捕获信号,捕获信号脚本的编写,如下所示:
  • kill 默认会发送 15 号信号给应用程序
  • ctr+c 发送 2 号信号给应用程序
  • 9 号信号不可阻塞
  1. 一次性计划任务,如下所示:
  • 计划任务,让计算机在指定的时间运行程序
  • 计划任务分为一次性计划任务和周期性计划任务
  • 一次性计划任务 at
  1. 周期性计划任务,cron,如下所示:
  • 配置方式,crontab -e
  • 查看现有的计划任务,crontab -l
  • 配置格式,分钟 小时 日期 月份 星期 执行的命令,注意命令的路径问题
  1. 计划任务加锁,如果计算机不能按照预期时间运行,anacontab 延时计划任务和 flock 锁文件。
  2. 元字符,如下所示:
  • . 匹配除换行符外的任意单个字符
  • * 匹配任意一个跟在它前面的字符
  • [] 匹配方括号中的字符串中的任意一个
  • ^ 匹配开头
  • $ 匹配结尾
  • \ 转义后面的特殊字符
  1. 扩展元字符,如下所示:
  • + 匹配前面的正则表达式至少出现一次
  • ? 匹配前面的正则表达式出现零次或一次
  • | 匹配它前面或后面的正则表达式
  1. Vimsed、AWK 的区别,交互式与非交互式,文件操作模式与行操作模式。
  2. sed 基本用法,sed 一般用于对文本内容做替换,如 sed '/user1/s/user1/u1/' /etc/passed
  3. AWK 基本用法,AWK 一般用于对文本内容进行统计,按需要的格式进行输出,如下所示:
  • cut 命令,cut -d: -f 1 /etc/passwd
  • AWK 命令,awk -F: '/wd$/{print $1}' /etc/passwd
  1. sed 的模式空间,sed 的基本工作方式,如下所示:
  • 将文件以行为单位读取到内存,模式空间
  • 使用 sed 的每个脚本对该行进行操作
  • 处理完成后输出改行
  1. sed 的替换命令 s,如下所示:
  • sed 's/old/new/' filename
  • sed -e 's/old/new' -e 's/old/new' filename ...
  • sed -i 's/old/new' 's/old/new/' filename ...
  1. 使用正则表达式,带正则表达式的替换命令 s,如下所示:
  • sed 's/正则表达式/new/' filename
  • sed -r 's/扩展正则表达式/new/' filename
  1. sed 的替换命令加强版,分为全局替换、标志位、寻址、分组、sed 脚本文件。
  2. 全局替换,s/old/new/g,其中 g 为全局替换,用于替换所有出现的次数。/ 如果和正则匹配的内容冲突可以使用其它符号,如 s@old@new@g
  3. 标志位,s/old/new 标志位,如下所示:
  • 数字,第几次出现才进行替换
  • g,每次出现都进行替换
  • p 打印模式空间的内容,sed -n 'script' filename 阻止默认输出
  • w file 将模式空间的内容写入到文件
  1. 寻址,默认对每行进行操作,增加寻址后对匹配的行进行操作,如下所示:
  • /正则表达式/s/old/new/g
  • 行号s/old/new/g,行号可以是具体的行,也可以是最后一行 $ 符号
  • 可以使用两个寻址符号,也可以混合使用行号和正则地址
  1. 分组,寻址可以匹配多条命令,/regular/{s/old/new/; s/old/new/}
  2. 脚本文件,可以将选项保存为文件,使用 -f 加载脚本文件,sed -f sedscript filename
  3. sed 的其它命令,删除命令、追加、插入、更改、打印、下一行、读文件和写文件、退出命令。
  4. 删除命令,[寻址]d,删除模式空间内容,改变脚本的控制流,读取新的输入行。
  5. 追加插入和更改,追加命令 a,插入命令 i,更改命令 c
  6. 读文件和写文件,读文件命令 r,写文件命令 w
  7. 下一行,下一行命令 n,打印行号命令=,打印命令 p,退出命令 q
  8. 为什么要有多行模式,如下所示:
  • 配置文件一般为单行出现
  • 也有使用 XMLJSON 格式的配置文件,为多行出现
  1. 多行匹配命令,如下所示:
  • N 将下一行加入到模式空间
  • D 删除模式空间中的第一个字符到第一个换行符
  • P 打印模式空间中的第一个字符到第一个换行符
  1. 保持空间,保持空间也是多行的一种操作方式,将内容暂存在保持空间,便于做多行处理。
  2. 保持空间命令,如下所示:
  • hH 将模式空间内容存放到保持空间
  • gG 将保持空间内容取出到模式空间
  • x 交换模式空间和保持空间内容
  1. AWKsed 的区别,如下所示:
  • AWK 更像是脚本语言
  • AWK 用于"比较规范"的文本处理,用于统计数量并输出指定字段
  • 使用 sed 将不规范的文本,处理为"比较规范"的文本
  1. AWK 脚本的流程控制,输入数据前例程 BEGIN{}、主输入循环{}、所有文件读取完成例程 END{}
  2. AWK 的记录和字段,如下所示:
  • 每行称作 AWK 的记录
  • 使用空格、制表符分隔开的单词称作字段
  • 可以自己指定分隔的字段
  1. 字段的引用,如下所示:
  • awk 中使用 $1 $2 ... $n 表示每一个字段,如 awk '{print $1,$2,$3}' filename
  • awk 可以使用 -F 选项改变字段分隔符,如 awk -F ',''{ print $1,$2,$3}' filename,分隔符可以使用正则表达式
  1. AWK 的表达式,赋值操作符、算数操作符、系统变量、关系操作符、布尔操作符。
  2. 赋值操作符,如下所示:
  • = 是最常用的赋值操作符,如 var1 = 'name'、var2 = 'hello' 'world'、var3 = $1
  • 其它赋值操作符,++、--、+=、-=、*=、/=、%=、^=
  1. 系统变量,如下所示:
  • FSOFS 字段分隔符,OFS 表示输出的字段分隔符
  • RS 记录分隔符
  • NRFNR 行数
  • NF 字段数量,最后一个字段内容可以用 $NF 取出
  1. 关系操作符,<、>、<=、>=、==、!=、~、!~。布尔操作符,&&、||、!
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值