本篇内容主要讲解“实用的Shell脚本有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“实用的Shell脚本有哪些”吧!
1 特殊文件名的远程拷贝
服务器之间拷贝文件经常使用scp命令,其命令格式:
(1)scp filename [user@]host:dir
(2)scp [user@]host:dir1/filenamedir2
格式(1)将本地文件filename拷贝到远程服务器host的dir目录下,格式(2)将远程服务器host的dir1目录下的文件filename,拷贝到本地dir2目录下。
如果拷贝的文件名包含特殊字符,比如ecs-eos-base:1.0.tar,冒号:属于特殊字符。直接使用格式(1)的命令进行拷贝,命令将ecs-eos-base识别为主机名称而命令运行报错,如下:
[root@PHY91 docker]# scp ecs-eos-base:1.0.tar root@PHY94:/root/docker/
ssh: Could not resolve hostname ecs-eos-base: Temporary failure in name resolution
此时使用./表示当前目录即可解决该报错,命令如下:
[root@PHY91 docker]#
scp ./ecs-eos-base:1.0.tar root@PHY94:/root/docker/
ecs-eos-base:1.0.tar 100% 84MB 172.7MB/s 00:00
使用./代表当前目录,scp命令就不会将ecs-eos-base识别为主机名称。
2 Base64编码和解码
在Centos或Redhat Linux操作系统中,如果要进行字符串的Base64编码和解码,可以使用base64命令即可简单实现。
(1)编码
[root@PHY91 ~]# echo “PHY91” | base64
UEhZOTEK
(2)解码
[root@PHY91 ~]# echo “UEhZOTEK” | base64 -d
PHY91
base64既可以编码解码字符串,也可以对文件内容进行编码和解码。-d参数是表示解码。
对文件编码解码命令如下:
[root@PHY91 test]#
echo “12345” >
test.txt
[root@PHY91 test]#
base64 test.txt
MTIzNDUK
[root@PHY91 test]#
base64 test.txt >
test2.txt
[root@PHY91 test]#
more test2.txt
MTIzNDUK
[root@PHY91 test]#
base64 -d test2.txt
12345
3 版本号自增长的实现
使用docker build进行应用镜像构建时,为便于镜像版本管理,每次构建的镜像版本号会增加1。可以使用脚本实现版本号的自增1,首先创建一个version.txt文件,内容如下:
[eos@host-132 eos]$ more version.txt
1.0.0
获取版本号命令如下:
version=cat version.txt
版本号赋值给version变量。
版本号自动增加1,脚本命令如下:
echo $version | awk -F’.’ ‘{print($1"."$2"."($3+1));}’ > version.txt
命令说明:
(1)使用awk命令,分隔符为点“.”;
(2)$1,$2和$3分别是版本号的第1,2,3个数字;
(3)$3+1表示版本号增加1。
4 sed配置运行环境
在动静完全分离的web应用项目中,前端使用nginx部署静态资源即可,项目前端代码的基准URL(baseUrl)需要根据不同运行环境(开发、测试、生产)进行相应的修改,例如baseUrl赋值的js代码如下:
define([“jquery”],
function ($) {
return {
到此,相信大家对“实用的Shell脚本有哪些”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。