linux--shell学习一条龙服务(下)

简介: linux--shell学习一条龙服务(下)

exit语句:

注:系统中使用exit命令,用于退出当前用户。可是在Shell脚本中,exit语句是用来退出当前脚本

exit [返回值]

返回值:这个脚本执行完之后的返回值就是我们自己定义的返回值。

break语句:

注:当程序执行到break语句时,会结束整个当前循环。

continue语句:

注:continue也是结束流程控制语句,如果在循环中,continue语句只会结束单次当前循环。

字符截取,替换和处理命令

正则表达式

       元字符     描述

       \               转义符,将特殊字符进行转义,忽略其特殊意义

       ^              匹配行首,在awk中^是匹配字符串的开始

       $              匹配行尾,awk中,$则是匹配字符的结尾

       .               匹配换行符之外的任意单个字符

       [ ]             匹配包含在[ ^字符 ]之中的任意一个字符

       [ ^ ]          匹配[ ^字符 ]之外的任意一个字符

       [ - ]          匹配[ - ]中指定范围中的任意一个字符,要写成递归

       ?              匹配之前的项1次或者0次

| 匹配之前的项1次或者多次 | sa-6+匹配sa-6、sa-666,不能匹配sa-

| 匹配之前的项0次或者多次| co*l匹配cl、col、cool、coool等

() | 匹配表达式,创建一个用于匹配的子串 | ma(tri)?匹配max或maxtrix

{n} | 匹配之前的项n次,n是可以为0的正整数 |[0-9]{3}匹配任意一个三位数,可以扩展为[0-9][0-9][0-9]

{n,}| 之前的项至少需要匹配n次 | [0-9]{2,}匹配任意一个两位数或更多位数不支持{n,}{n,}{n,}

{n,m}| 指定之前的项至少匹配n次,最多匹配m次,n<=m | [0-9]{2,5}匹配从两位数到五位数之间的任意一个数字

|| 交替匹配|两边的任意一项 | ab(c|d)匹配abc或abd

字符截取替换命令

cut列提取命令

语法:

-f 列号: 提取第几列

-d 分隔符: 按照指定分隔符分割列

-n 取消分割多字节字符

-c 字符范围: 不依赖分隔符来区分列,而是通过字符范围(行首为0)来进行字段提取。“n-”表示从第n个字符到行尾;“n-m”从第n个字符到第m个字符;“一m”表示从第1个字符到第m个字符。

--complement   补足被选择的字节、字符或字段

--out-delimiter  指定输出内容是的字段分割符

awk编程

awk概述

注:awk是一种处理文本文件的语言,是一个强大的文本分析工具

printf格式化输出语法:

printf ‘输出类型输出格式’ 输出内容

输出类型:

%c:     ASCII字符.显示相对应参数的第一个字符

%-ns:   输出字符串,减号“-”表示左对齐(默认右对齐),n是数字指代输出几个字符,几个参数就写几个%-ns

%-ni:   输出整数,n是数字指代输出几个数字

%f:    输出小数点右边的位数

%m.nf:  输出浮点数,m和n是数字,指代输出的整数位数和小数位数。如%8.2f代表共输出8位数,其中2位是小数,6位是整数。

输出格式:

\a: 输出警告声音

\b: 输出退格键,也就是Backspace键

\f: 清除屏幕

\n: 换行

\r: 回车,也就是Enter键

\t: 水平输出退格键,也就是Tab 键

\v: 垂直输出退格键,也就是Tab 键

awk基本使用语法:

        amk ‘条件1{动作1} 条件{动作2}…’ 文件名

条件:

        一般使用关系表达式作为条件

动作:

        格式化输出

        流程控制语句

常用参数:

        -F:指定输入时用到的字段分割符

        -v:自定义变量

        -f:从脚本中读取awk命令

        -m:对val值设置内的限制

awk的条件

条件          说

BEGIN        在awk程序一开始时,尚未读取任何数据之前执行。BEGIN后的动作只在程序开始时执行一次

END          在awk程序处理完所有数据,即将结束时执行。END后的动作只在程序结束时执行一次

>               大于

<               小于

>=             大于等于

<=             小于等于

==             等于

!=           不等于

A~B           判断字符串A中是否包含能匹配B表达式的子字符串

A!~B       判断字符串A中是否不包含能匹配B表达式的子字符串

/正则/        如果在“//”中可以写入字符,也可以支持正则表达式

awk内置变量

awk内置变量     作用

$0                     代表目前awk所读入的整行数据。

$n                     代表目前读入行的第n个字段

NF                     当前行拥有的字段(列)总数

NR                     当前awk所处理的行,是总数据的第几行

FS                      用户定义分隔符

ARGC         命令行参数个数

ARGV         命令行参数数组

FNR                   当文件中的当前记录数

OFMT        数值的输出格式(默认%.6g)

OFS                   输出字段的分隔符(默认空格)

ORS                   输出记录分隔符(默认为换行符)

RS                     输入记录分隔符(默认为换行符)

awk函数

awk编程也允许在编程时使用函数

语法:

fuction      函数名      (参数列表) {

       函数体

}

awk中调用脚本

注:对于小的单行程序来说,将脚本作为命令行自变量传递给awk是非常简单的,而对于多行程序就比较难处理。当程序是多行的时候,使用外部脚本是很适合的。首先在外部文件中写好脚本,然后可以使用awk的-f选项,使其读入脚本并且执行。

语法:-f 脚本文件  文件目录

sed文档处理工具

注:sed主要是用来讲数据进行选取,替换,删除,新增的命令

sed语法:

sed [选项] ‘[动作]’ 文件名

选项:

-n:  一般sed命令会把所有数据都输出到屏幕,如果加入此选择,则只会把经过sed命令处理的行输出到屏幕。

-e:  允许对输入数据应用多条sed命令编辑。

-f 脚本文件名: 从sed脚本中读入sed操作。和awk命令的-f非常类似。

-r:  在sed中支持扩展正则表达式。

-i:  用sed的修改结果直接修改读取数据的文件,而不是由屏幕输出

动作:

num a \: 追加,在当前行后添加一行或多行。添加多行时,除最后一行外,每行末尾需要用“\”代表数据未完结。num表示第几行

c \: 行替换,用c后面的字符串替换原数据行,替换多行时,除最后一行外,每行末尾需用“”代表数据未完结。

num i \: 插入,在当期行前插入一行或多行。插入多行时,除最后一行外,每行末尾需要用“”代表数据未完结。num表示第几行

d ; 删除,删除指定的行。

p : 打印,输出指定的行。

s : 字串替换,用一个字符串替换另外一个字符串。格式为“行范围s/"旧字串/新字串/g”(和vim中的替换格式类似)。

字符处理命令

sort排序命令:

sort [选项] 文件名

选项:

-f: 忽略大小写

-b: 忽略每行前面的空白部分

-n: 以数值型进行排序,默认使用字符串型排序

-r: 反向排序

-u: 删除重复行。就是uniq命令

-t: 指定分隔符,默认是分隔符是制表符

-k n[,m]: ―按照指定的字段范围排序。从第n字段开始,m字段结束(默认到行尾)

uniq取消重复行:

uniq [选项] 文件名

选项:

-i:忽略大小写

wc统计命令:

wc [选项] 文件名

选项:

-l:只统计行数

-w:只统计单词数

-m:只统计字符数

目录
相关文章
|
1月前
|
存储 安全 Linux
|
1月前
|
Linux 应用服务中间件 Shell
linux系统服务二!
本文详细介绍了Linux系统的启动流程,包括CentOS 7的具体启动步骤,从BIOS自检到加载内核、启动systemd程序等。同时,文章还对比了CentOS 6和CentOS 7的启动流程,分析了启动过程中的耗时情况。接着,文章讲解了Linux的运行级别及其管理命令,systemd的基本概念、优势及常用命令,并提供了自定义systemd启动文件的示例。最后,文章介绍了单用户模式和救援模式的使用方法,包括如何找回忘记的密码和修复启动故障。
44 5
linux系统服务二!
|
1月前
|
Linux 应用服务中间件 Shell
linux系统服务!!!
本文详细介绍了Linux系统(以CentOS7为例)的启动流程,包括BIOS自检、读取MBR信息、加载Grub菜单、加载内核及驱动程序、启动systemd程序加载必要文件等五个主要步骤。同时,文章还对比了CentOS6和CentOS7的启动流程图,并分析了启动流程的耗时。此外,文中还讲解了Linux的运行级别、systemd的基本概念及其优势,以及如何使用systemd管理服务。最后,文章提供了单用户模式和救援模式的实战案例,帮助读者理解如何在系统启动出现问题时进行修复。
44 3
linux系统服务!!!
|
1月前
|
Linux Shell 数据安全/隐私保护
|
1月前
|
Linux 数据库
Linux服务如何实现服务器重启后的服务延迟自启动?
【10月更文挑战第25天】Linux服务如何实现服务器重启后的服务延迟自启动?
199 3
|
1月前
|
关系型数据库 MySQL Linux
Linux系统如何设置自启动服务在MySQL数据库启动后执行?
【10月更文挑战第25天】Linux系统如何设置自启动服务在MySQL数据库启动后执行?
93 3
|
2月前
|
Linux 编译器 C语言
【Linux快速入门(一)】Linux与ROS学习之编译基础(gcc编译)
【Linux快速入门(一)】Linux与ROS学习之编译基础(gcc编译)
|
2月前
|
Ubuntu Linux 网络安全
Linux中服务管理问题
【10月更文挑战第4天】
28 2
|
2月前
|
监控 Unix Shell
shell脚本编程学习
【10月更文挑战第1天】shell脚本编程
78 12
|
2月前
|
网络协议 Linux
linux学习之套接字通信
Linux中的套接字通信是网络编程的核心,允许多个进程通过网络交换数据。套接字提供跨网络通信能力,涵盖本地进程间通信及远程通信。主要基于TCP和UDP两种模型:TCP面向连接且可靠,适用于文件传输等高可靠性需求;UDP无连接且速度快,适合实时音视频通信等低延迟场景。通过创建、绑定、监听及读写操作,可以在Linux环境下轻松实现这两种通信模型。
41 1