Shell编程学习

文本操作

cat命令

(1)查看文件内容:例子

cat file.txt

(2)把多个文件合并成一个:例子

cat file.txt file2.txt > new file.txt

(3)创建编辑新文件:例子

cat > file.txt [后面接要编辑的内容]

(4)非交互式地编辑或追加内容到文件尾部:例子
        

cat >>file.txt << EOF

        welcome to my blog

        EOF

(5)清空文件内容:

cat /dev/null > file.txt 命令就可以将文件内容清空,但是文件还是存在

(6)执行cat的完整命令生成test.txt文件内容

cat >test.txt<<EOF # 必须要使用两个小于号,EOF表示结束标记,即读到EOF就结束
>hello
>linux centos
>EOF # EOF必须成对出现,也可以使用其他的成对标签替换,结尾的EOF必须定格编写

grep命令

grep option pattern file
#    参数    模式    文件

grep命令的常用参数

-v:显示不匹配的行,也是我们常说的排除某些行,显示不包含匹配文本的所有行

-n:显示匹配的行及行号

-i:不区分大小写(只适用于单字符),默认是区分大小写的

-c:只统计匹配的行数,注意不是匹配的次数

-E:使用扩展的egrep命令

--color=auto:为grep过滤的匹配字符串添加颜色

-w:以单词为单位进行过滤

-o:只输出匹配的内容

sed流编辑器

sed是字符流编辑器。ed是操作,过滤和转换文本内容的强大工具。sed的常用功能包含对文件实现快速增删改查,其中查询的功能中最常用的两大功能是过滤和取行。

# 用法
sed [选项] [sed内置命令字符] [输入文件]

sed命令的参数选项

-n:取消默认sed的输出,常与sed内置命令的p连用

-i:直接修改文件内容,而不是输出到终端。如果不使用“-i”选项则sed只是修改存储在内存中的数据,并不会影响磁盘上的文件

-e:允许多次编辑

sed的内置命令字符可用来实现对文件的不同操作功能,例如对文件的增删改查等

a:表示追加文本,在指定行后添加一行或多行文本

d:表示匹配行的文本

i:表示插入文本,在指定行前添加一行或多行文本

p:表示打印匹配行的内容,通常p会与选项-n一起使用

s/regexp/replacement/g:匹配regexp部分内容,用replacement替换regexp匹配的内容,regexp部分可以使用正则表达式,在replacement部分可以使用特殊字符“&”和“/l-/9”等匹配regexp的部分内容,在实战场景中,s/regexp/replacement/g结尾常与g匹配作全局的替换

awk命令

awk不仅仅是linux系统中的一个命令,而且还是一种编程语言,可以用来处理数据和生成报告。处理的数据可以是一个或多个文件,它是linux系统最强大的文本处理工具,awk常用功能具体如下

指定分隔符显示某几列:awk -F “GET|HTTP” '{print $2}' access.log直接获取显示出日志文件的url这一列

通过正则表达式取出想要获取的内容:awk '$6~/Failed/{print $11}' /var/log/secure分析生产环境中的日志找出谁在破解用户的密码

显示某个范围内的内容:awk'NR==20,NR==30' filename显示文件的20-30行

通过awk进行统计计算:awk'{sum+=$0}END{print sum}'ett.txt进行总和计算(高级功能)

awk数组计算与去重:awk'{array{$1}++}END(for in array) print key,array[key]}'access.log对日志进行统计与计数(高级功能)

格式

awk [option] 'pattern{action}' file ...

awk [参数] '条件{动作}' file...

-F:指定字段分隔符

-v:定义或修改一个awk内部的变量

$0:当前整行记录

$n:当前记录的第n个列,字段间由FS或-F参数指定分隔符

NF:当前记录中列的个数,也就是包含多少列

$(NF-n) :倒数第n+1列,n为数字

NR:已经读出了记录数,也就是行号,从1开始

Cron定时任务

Cron是Linux系统中以后台进程模式周期性执行命令或指定程序任务的服务软件。默认情况下,安装完Linux操作系统之后,Cron服务软件便会启动,服务对应的进程名字为Crond,Crond服务会定期检查系统中是否有需要执行的任务工作计划。如果有,则会根据其预先设定的定时任务规则自动指定改定时任务工作。这个Crond定时任务服务就相当于我们平时使用的闹钟。

使用案例:每秒执行一次脚本

while true
do
    echo "hello"
    sleep 1
done

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值