Shell脚本拓展学习(2)

11 篇文章 0 订阅

一、sed命令

SED是流编辑器(stream editor)的缩写。它可以用于执行不同的功能,如搜索,查找和替换,插入和删除。相对来说,查找和替换很常见,无需打开文件即可替换单词。

1.一次替换

aaron@ubuntu:~/Desktop$ sed 's/linuxmi/xxvi/' Demo.c

为了替换每次出现,我们在表达式的末尾添加“ g”

aaron@ubuntu:~/Desktop$ sed 's/linuxmi/xxvi/g' Demo.c

2.指定最多次替换

为了替换每次出现,我们在表达式的末尾添加“ g”

aaron@ubuntu:~/Desktop$ sed 's/linuxmi/xxvi/g' Demo.c

3.指定替换次数

aaron@ubuntu:~/Desktop$ sed 's/linux/xxvi/1g' Demo.c

4.指定行替换

aaron@ubuntu:~/Desktop$ sed '2 s/linux/xxvi/' Demo.c

5.打印替换的行

aaron@ubuntu:~/Desktop$ sed -n ' s/linux/xxvi/p' Demo.c

在这里插入图片描述

6.删除

(1)删除指定行

aaron@ubuntu:~/Desktop$ sed '5d' Demo.c

(2)删除末行

aaron@ubuntu:~/Desktop$ sed '$d' Demo.c

(3)删除指定行到末行

在这里插入图片描述

(4)删除指含目标字段的行

在这里插入图片描述

二、date命令

显示当前时间
格式化输出 +%Y-%m-%d
格式%s表示自1970-01-01 00:00:00以来的秒数
指定时间输出 --date=‘2009-01-01 11:11:11’
指定时间输出 --date=‘3 days ago’ (3天之前,3天之后可以用-3)
具体参考1
具体参考1

三、nohup命令

不挂断的运行命令,忽略所有挂断(hangup)信号

test.sh &

这样的话虽然可以在后台运行,但是当用户注销(logout)或者网络断开时,终端会收到Linux HUP信号(hangup)信号从而关闭其所有子进程

nohup test.sh &

nohup会忽略进程的hangup挂断信号,所以关闭当前会话窗口不会停止这个进程的执行。
nohup会在当前执行的目录生成一个nohup.out日志文件
具体参考

四、Crontab定时器

编辑使用crontab -e
一共6列,分别是:分 时 日 月 周 命令

1.查看使用

crontab -l

2.删除任务

crontab -r

3.查看crontab执行日志

tail -f /var/log/cron

必须打开rsyslog服务cron文件中才会有执行日志(service rsyslog status)
tail -f /var/spool/mail/root(查看crontab最近的执行情况)

4.查看cron服务状态

service crond status

5.启动cron服务

service crond start

具体参考

五、字符串操作

1.获取长度:

${#VAR_NAME}

2.字符串截取

${variable:offset:length}

或者${variable:offset}

3.取尾部的指定个数的字符

 ${variable: -length}

注意冒号后面有空格

4.大小写转换

(1)小–>大:

${variable^^}

(2)大–>小:

${variable,,}

2.数组操作

(1)赋值

1.一次对一个元素赋值a[0]=$RANDOM
2.一次对多个元素赋值a=(a b c d)
3.按索引进行赋值a=([0]=a [3]=b [1]=c)

(2)查看

使用read命令read -a ARRAY_NAME查看元素

1.${ARRAY[index]}
查看数组指定角标的元素
2.${ARRAY}
查看数组的第一个元素
3.${ARRAY[*]}或者${ARRAY[@]}
查看数组的所有元素

(3)获取数组的长度

${#ARRAY[*]}
${#ARRAY[@]}

${#ARRAY[0]}
${#ARRAY[0]}表示获取数组中的第一个元素的长度,等于${#ARRAY}

(4)截取

从数组中获取某一片段之内的元素(操作类似于字符串操作)
offset:偏移的元素个数
length:取出的元素的个数
1.${ARRAY[@]:offset:length}
取出偏移量后的指定个数的元素
2.${ARRAY[@]:offset}
取出数组中偏移量后的所有元素

(5)删除

数组删除元素:
unset ARRAY[index]

六、逻辑操作符

需要用到shell中的逻辑操作符
-a 与
-o 或
! 非

七、其他

-t表示输入等待的时间

read -t 5 -p "enter your name:" VAR_NAME

-s 表示安全输入,键入密码时不会显示

read  -s  -p "Enter your password: " pass

参考文章

内容略显粗糙,学识浅薄,希望能帮到您

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值