零基础也能操作Linux,简单的shell脚本编写边学边用

Posted 软件测试呀

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了零基础也能操作Linux,简单的shell脚本编写边学边用相关的知识,希望对你有一定的参考价值。


在软件测试之初,shell脚本就是为了理解这个概念,而当时基本上没有用到这个技能,大部分工作都点点点。

现在因为行业的原因,我们经常要在Linux服务器上做一些常见的操作。

如果你没有遇到百度,你会慢慢学会一些以前没有接触过的Linux命令,也会开始阅读关于shell脚本的书籍。如果你看书没有实战经验或者练习,你会有一个概念。

Linux命令用的比较多,所以自然想到shell脚本,想用它来解决工作中的一些重复性操作,于是边学边用,效果还不错。

工作场景

我们测试的时候会把软件包拷贝到管理平台的软件仓库中,如果仓库中有,就要覆盖掉。

手动操作的流程是这样的:

wget【url】:下载软件包,压缩包格式的;

tar -zxvf xxx.tar.gz:解压软件包到当前文件;

进入到解压好的文件中,里面有2个文件夹,然后依次拷贝,这里使用scp命令,-r是递归目录的意思,scp -r xxx/ /opt/xxx。

这里为啥没有cp呢?因为我发现cp覆盖时,老是提示我,需要我手动确认,太繁琐了。所以这里使用了scp命令,这个命令经常用于两个服务器之间的远程拷贝。

这个软件包更换流程,做的次数多了也熟练和熟悉了,突然有一天,要告诉一个不懂Linux命令的人,让他去完成软件包更换工作,这就有点难上加难了。

想到了自己也经常做这个操作,也不想对别人进行小白教学,那就编写个简单的shell脚本吧。

设计思路

将下载地址作为位置参数传入脚本。

根据当前时间,具体到分钟吧,在脚本所在文件创建一个文件夹,名称就用上那个时间,避免文件夹重名啥的。

进入这个文件夹,下载压缩包。

解压压缩包,然后删除压缩包,为下一步做准备。

解压后就是一个文件夹,我们获取一下这个文件夹名字,然后进去。

拷贝文件,完成。

具体实现如下:

#!/bin/bash  
#获取当前时间  
cur_date=`date +%Y%m%d-%H-%M`  
tmp_dir=service_$cur_date  
#根据时间,创建文件夹  
mkdir $tmp_dir  
cd $tmp_dir  
echo "进入目录:"$tmp_dir  
#下载  
echo "下载文件到"$tmp_dir  
wget $1  
# 解压  
echo "正在解压文件"  
sleep 3  
tar -zxvf *.tar.gz  
echo "解压完成,开始删除压缩包"  
rm -rf *.tar.gz  
for i in `ls`  
do  
        echo "软件包的文件夹名:"$i  
        tmp_dir_package=$i   
done  
cd $tmp_dir_package  
echo "进入包目录:"$tmp_dir_package  
echo "开始拷贝软件包到ole软件仓库/opt/"  
scp -r package/ /opt/  
scp -r repository/ /opt/  
echo "软件包拷贝完成,别忘了去sole软件仓库刷新啊!!!"  
sleep 3

好了,一个简单的脚本就写好了。

脚本知识点

反引号的使用,反引号的作用就是将反引号内的Linux命令先执行,然后将执行结果赋予变量。
位置参数的使用。
创建文件夹、删除、解压、echo、sleep。
scp拷贝,远程拷贝。
for循环。
wget下载。

房子要一层一层盖,知识要一点一点学。大家在学习过程中要好基础,多上手实操,话不多说,这里狠狠上一次干货!我熬夜整理好的各阶段(功能、接口、自动化、性能、测开)技能学习资料+实操讲解,非常适合私下里学习,比找资料自学高效多了,分享给你们。

领取关 w/x/g/z/h:软件测试小dao

敲字不易,如果此文章对你有帮助的话,点个赞收个藏来个关注,给作者一个鼓励。也方便你下次能够快速查找。

以上是关于零基础也能操作Linux,简单的shell脚本编写边学边用的主要内容,如果未能解决你的问题,请参考以下文章

编写简单的Shell脚本

Linux操作系统基础操作之shell脚本编写

Shell脚本基础知识

如何零基础开始学习Linux运维

Linux Shell脚本快速入门

linux基础学习-17-linux操作系统之Shell编程基础讲解