ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

Shell脚本拓展学习(2)

2021-04-09 18:01:40  阅读:170  来源: 互联网

标签:脚本 Shell 删除 指定 拓展 Desktop sed ARRAY 替换


Shell脚本拓展学习(2)

一、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.

(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

参考文章

学习为用,内容略显粗糙,希望可以帮到您

师承上官可编程,陈立臣

标签:脚本,Shell,删除,指定,拓展,Desktop,sed,ARRAY,替换
来源: https://blog.csdn.net/Aaronlxx/article/details/115554222

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有