我的第一次shell
我的第一次shell
最近我们的项目需要进行优化,整体架构进行改造。
然后我们红超哥就看我骨骼惊奇,说小伙子你想不想当做掌门人呀。(我说不想哈哈)
想不想也没用了,红超哥说我们现在的架构有所改变,需要你写一套自动部署脚本。(弱小的我没有说出一个不字)
Shell可以干啥
- 如果说小伙伴们使用过Linux操作系统那肯定使用过shell命令,cd 、 ls 再或者你们一定看过 rm -rf xxxx 哈哈,这些其实都是我们的shell命令,我们将程序部署到系统上面去的时候每次都需要输入一推命令,如果一天部署一个程序你还受得了,但是如果红超哥一定要我部署50个程序。那当然我也不会说一个不字 ,但是我们经常会出现多打一个字母,少打一个字母的情况,当前一个两个项目的工作量我还能接受,但是红超哥说的50个程序部署,那我也能完成。但是为了早点下班,多摸鱼。所以我们还是要弄自动化。
Shell是个啥
- Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。Ken Thompson 的 sh 是第一种 Unix Shell,Windows Explorer 是一个典型的图形界面 Shell。
- 不管他三七二二的先把菜鸟教程文档看一遍,你就已经是菜鸟了。然后就是编写脚本测试脚本。一步一步进化成为大鹏叉烧

开搞之前
- 所以我先将菜鸟教程文档都看了一遍,然后在园子看了其他大佬写的shell博文,先吸收一点经验,减少一些没必要的弯路(而且最近红超哥也挺忙的,哈哈,不过虽然问红超哥虽好,但是程序人生中该踩的坑,还是要踩) 推荐博文
搞搞
因为写自己写的代码肯定需要给别人看的,所以我们需要先定义这个脚本是干嘛的。(#!/bin/bash告诉系统使用shell那种核心执行脚本)

日志信息一定要有。这个很重要,因为我们不像红超哥一样写代码一次过,所以我们还是需要使用日志记录我们的信息。
也可以更好的返回提示给执行脚本的人看到脚本执行情况。

在我编写的过程中会发现很多方法都是一样的,作为码农练习生的我肯定会想到封装啦。
然后我们的可以使用 . 或者source 进行包含外包shell脚本。

如果我们在之心执行教程出现换行符报错的问题我们可以通过 sed -i 's/\r$//' xxl.sh 进行转换。
或者将脚本字符格式进行修改LF格式就可以了。

我们在执行脚本的时候如果出现权限不够的是时候,我们可以使用 sudo sh xxx.sh 让脚本提升一下权限。
当我们的功能比较多的时候,尽量将功能封装成为一个一个的方法。

总结
- 这也是我第一次写shell脚本,总结的一些经验,后续还会持续补充一些自己的经验。
我的第一次shell的更多相关文章
- shell解析命令行的过程以及eval命令
本文说明的是一条linux命令在执行时大致要经过哪些过程?以及这些过程的大致顺序. 1.1 shell解析命令行 shell读取和执行命令时的大致操作过程如下图: 以执行以下命令为例: echo -e ...
- (转)shell解析命令行的过程以及eval命令
shell解析命令行的过程以及eval命令 本文说明的是一条linux命令在执行时大致要经过哪些过程?以及这些过程的大致顺序. 1.1 shell解析命令行 shell读取和执行命令时的大致操作过 ...
- shell查询MySQL并将结果写入文件中
背景 说下需求,自己搭建的一个接口开放平台,包含API文档和功能测试,部分内网地址需要修改hosts文件 准备 新建表 然后查看服务器中hosts文件 命令:cat /etc/hosts 我们要做的就 ...
- 第一次用shell脚本来自动运行带参程序
将目录下的part-开头的文件带入程序处理 #!bin/sh FILES=/data5/follow_relation_list_part_00000/part-* file="" ...
- linux shell程序
shell程序介绍 1.查看我们的Linux(centos6.5为例)有多少我们可以使用的shell: [root@localhost bin]# cat /etc/shells /bin/sh /b ...
- shell 计算2
转载 http://www.th7.cn/system/lin/201309/44683.shtml expr bc 在Linux下做算术运算时你是如何进行的呢?是不是还在用expr呢?你会说我还会b ...
- 最全的linux命令大全,shell运维手册
shell实例手册 0 说明{ 手册制作: 雪松} 1 文件{ ls -rtl # 按时间倒叙列出所有目录和文件 ll -rt touch file ...
- Linux安全基础:shell及一些基础命令
1.什么是shell?Shell是用户和Linux操作系统之间的接口.Linux中有多种shell,其中缺省使用的是Bash. 2.shell的分类(1)bash bash shell 是 Bourn ...
- MySQL 使用XtraBackup的shell脚本介绍
mysql_backup.sh是关于MySQL的一个使用XtraBackup做备份的shell脚本,实现了简单的完整备份和增量备份.以及邮件发送备份信息等功能.功能目前还比较简单,后续将继续完善和增加 ...
随机推荐
- linux利用screen进行shell下的屏幕协作
我们都知道linux是支持多终端并行处理的 但是某些时候我们可能有比较特殊的需求需要两个人同时处理一个终端,screen 正好能满足这个要求 首先需要安装screen软件: debian和ubuntu ...
- JLC PCB 嘉立创自动确认生产稿,不讲武德?耗子尾汁!!!
首先,开局一张图,嘉立创又不做人的一天.嘉立创不讲武德,耗子尾汁!!! 之前下单,勾选了确定生产稿和不加客编,结果生产稿出来还是给我加了客编.那我出10元的意思何在?让我自己花3元看我花的10元有没有 ...
- SpringBoot 之 @ControllerAdvice 拦截异常并统一处理
在spring 3.2中,新增了@ControllerAdvice 注解,可以用于定义@ExceptionHandler.@InitBinder.@ModelAttribute,并应用到所有@Requ ...
- docker搭建渗透环境并进行渗透测试
目录 docker简介 docker的安装 docker.centos7.windows10(博主宿主机系统)之间相互通信 -docker容器中下载weblogic12c(可以略过不看) docker ...
- 仿射密码-fanfie--affine
仿射密码 仿射密码 是一种专情密码,一对一替换 ~~ 加密函数是 e(x) = ax + b (mod m) 其中a和m 互质,m是字母的数目. 解码函数是 d(x) = a^-1(x - b) (m ...
- 装了IDM后看网页有时会自动弹出下载怎么办
我们在安装了IDM之后,浏览一些网站时可能会自动弹文件下载窗口,但有时内容并非我们要下载的.对此类自动弹下载对话框的情况,操作者可进行自定义设置.不仅可通过设置文件格式来禁止自动弹窗,也可通过设置特定 ...
- FL Studio录制面板作用介绍
在上一节教程中我们详细的讲解了一下FL Studio录制面板菜单的一些功能,今天我们将继续讲解该面板的知识.具体内容小编这里就不多说了,还是一起来看看吧! 1.录音倒数.该按钮在打开的情况下会在录音前 ...
- Vegas教程分享,制作古装墨迹笔刷开场效果
许多酷炫的古装大片,片头曲介绍人物的时候,都有一种墨迹笔刷的开场效果,那么这个特效如何利用Vegas去做呢? 1.导入素材文件 首先呢,导入相关文件素材到视频制作软件Vegas中,点击页面上方如图1箭 ...
- JS获取当前日期及 js获取当前时间和一星期前的时间
var myDate = new Date(); new Date() 代表当前 年 月 日 时 分 秒: myDate.getYear(); //获取当前年份(2位),getY ...
- Logstash使用mongodb插件报错: ArgumentError: wrong number of arguments (given 2, expected 1)
目录 背景 安装插件过程 背景 今天在使用logstash收集日志存储到mongodb的安装过程遇到了个错误,记录下来,错误就是下面这样: 配置文件很简单,由于是测试环境,命令行传入日志输入由ruby ...