我的第一次shell

最近我们的项目需要进行优化,整体架构进行改造。

然后我们红超哥就看我骨骼惊奇,说小伙子你想不想当做掌门人呀。(我说不想哈哈)

想不想也没用了,红超哥说我们现在的架构有所改变,需要你写一套自动部署脚本。(弱小的我没有说出一个不字)

Shell可以干啥

  • 如果说小伙伴们使用过Linux操作系统那肯定使用过shell命令,cdls 再或者你们一定看过 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的更多相关文章

  1. shell解析命令行的过程以及eval命令

    本文说明的是一条linux命令在执行时大致要经过哪些过程?以及这些过程的大致顺序. 1.1 shell解析命令行 shell读取和执行命令时的大致操作过程如下图: 以执行以下命令为例: echo -e ...

  2. (转)shell解析命令行的过程以及eval命令

    shell解析命令行的过程以及eval命令   本文说明的是一条linux命令在执行时大致要经过哪些过程?以及这些过程的大致顺序. 1.1 shell解析命令行 shell读取和执行命令时的大致操作过 ...

  3. shell查询MySQL并将结果写入文件中

    背景 说下需求,自己搭建的一个接口开放平台,包含API文档和功能测试,部分内网地址需要修改hosts文件 准备 新建表 然后查看服务器中hosts文件 命令:cat /etc/hosts 我们要做的就 ...

  4. 第一次用shell脚本来自动运行带参程序

    将目录下的part-开头的文件带入程序处理 #!bin/sh FILES=/data5/follow_relation_list_part_00000/part-* file="" ...

  5. linux shell程序

    shell程序介绍 1.查看我们的Linux(centos6.5为例)有多少我们可以使用的shell: [root@localhost bin]# cat /etc/shells /bin/sh /b ...

  6. shell 计算2

    转载 http://www.th7.cn/system/lin/201309/44683.shtml expr bc 在Linux下做算术运算时你是如何进行的呢?是不是还在用expr呢?你会说我还会b ...

  7. 最全的linux命令大全,shell运维手册

    shell实例手册 0 说明{ 手册制作: 雪松} 1 文件{        ls -rtl                 # 按时间倒叙列出所有目录和文件 ll -rt    touch file ...

  8. Linux安全基础:shell及一些基础命令

    1.什么是shell?Shell是用户和Linux操作系统之间的接口.Linux中有多种shell,其中缺省使用的是Bash. 2.shell的分类(1)bash bash shell 是 Bourn ...

  9. MySQL 使用XtraBackup的shell脚本介绍

    mysql_backup.sh是关于MySQL的一个使用XtraBackup做备份的shell脚本,实现了简单的完整备份和增量备份.以及邮件发送备份信息等功能.功能目前还比较简单,后续将继续完善和增加 ...

随机推荐

  1. java中对于浮点型数据操作

    java的基本数据类型-浮点型:单精度(float)和双精度(double). float:单精度浮点数在机内占4个字节.有效数字8位.表示范围:-3.40E+38 ~ +3.40E+38; doub ...

  2. 面试必看!靠着这份字节和腾讯的面经,我成功拿下了offer!

    准备 敲定了方向和目标后就开始系统准备,主要分为以下几个方面来准备. 算法题 事先已经看过别人的社招面经知道头条每轮技术面都有算法题,而这一块平时练习的比较少,校招时刷的题也忘记了很多.因此系统复习的 ...

  3. guitar pro 系列教程(十一):Guitar Pro菜单工具之MIDI效果的提升

    对于新手的一些朋友,看谱,编曲时使用Guitar Pro时,因为对其功能不是很了解而显得困难重重,导致出现的音频效果不是很理想,因此,小编今天要做的便是,单独把Guitar Pro里的MIDI效果如果 ...

  4. zabbix 用Telegram报警!!!

    第一步:先在Telegram 注册个机器人!!! @BotFather在Telegram中添加联系人并按"开始",然后键入: /newbot输入你要新建的机器人名称在电报中@你的机 ...

  5. # 夏普R shv39 0基础精简优化指南

    手机介绍 夏普AQUOS R是目前市面上用户数量和好评数量都非常多的一款产品.它性价比极高,适合各个年龄段的用户选择来满足办公或者家用或者娱乐等不同方面的需求.目前闲鱼价格在400左右,搭载骁龙835 ...

  6. 【Updating】汇编语言学习记录02

    换码指令.字符的输出 前置知识: XLAT 指令:将BX指定的缓冲区中.AL指定的位移处的一个字节数据取出赋给AL,实际相当于(AL) = (DS:(BX+AL)).注意,不是单纯地赋予AL+BX,而 ...

  7. LeetCode双周赛#35

    1589. 所有排列中的最大和 #差分 #贪心 题目链接 题意 给定整数数组nums,以及查询数组requests,其中requests[i] = [starti, endi] .第i个查询求 num ...

  8. Codeforces Round #674 (Div. 3) F. Number of Subsequences 题解(dp)

    题目链接 题目大意 给你一个长为d只包含字符'a','b','c','?' 的字符串,?可以变成a,b,c字符,假如有x个?字符,那么有\(3^x\)个字符串,求所有字符串种子序列包含多少个abc子序 ...

  9. 如何使用Python 进行数据可视化

    微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 在进行数据分析的时候,经常需要将数据进行可视化,以方便我们对数据的认识和理解. 0,Matplotl ...

  10. RestTemplate 统一添加 Header

    一.添加拦截器 public class HeaderRequestInterceptor implements ClientHttpRequestInterceptor { private fina ...