Shell在日常工作中的应用实践

这篇具有很好参考价值的文章主要介绍了Shell在日常工作中的应用实践。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

作者:京东物流 李光新

1 Shell可以帮我们做什么

作为一名测试开发工程师,在与linux服务器交互过程中,大都遇到过以下这些问题:

•一次申请多台服务器,多台服务器需要安装相同软件,配置相同的环境,同样的操作需要重复多次;

•工作中经常会使用命令行命令来完成我们的一些操作,但是有些命令使用率很高,而且很长,每次都全部敲进去势必会浪费很多时间(比如查日志)

长此以往,以上两个问题可能会导致:重复性工作,个人能力得不到任何提高,浪费时间,而且还容易出错,作为一名技术人员,当同一个操作重复了三次,我们就应该考虑是否可以通过工具来帮我们实现。

而shell脚本正好擅长,把复杂问题分解成简单的小问题,然后再把各个部分功能组合起来解决复杂问题。 当然,有些命令我们只能节省三五秒的时间,短期看不到时间的节省,但是从长期来看这个价值将是巨大的。我们可以将这些时间专注于更有意义,更重要的事情 - 提高生命质量。

2 功能介绍

Shell脚本语言的优势在于处理偏操作系统底层的业务,例如,Linux系统内部很多应用是用shell脚本语言开发的,因为有众多的Linux系统命令为它作支撑,特别是Linux正则表达式和三剑客grep、awk、sed等命令。

对于一些常见的系统脚本,使用shell开发会更简单、更快速。就像让软件一键自动化安装、优化,监控报警脚本,软件启动脚本,日志分析脚本等,虽然PHP和Python语言也能做到这些,但是由于掌握难度、开发效率和开发习惯等,可能就不如shell脚本语言流行及有优势了。

shell是一个C语言编写的脚本语言,它是用户与linux的桥梁,用户输入命令交给shell来处理,shell将相应的操作传递给内核,内核把处理的结果输出给用户。

可参考如下流程示意图:

Shell在日常工作中的应用实践

简单来说:shell就是一个用户跟操作系统之间交互的命令解释器

3 基本用法

下面首先来介绍下日常使用较多的基本指令:

3.1 文件拷贝

Shell在日常工作中的应用实践

3.2 文件合并

有时候,要遇到将多个文件合并成一个的需求,除了重复的复制和粘贴,还可以通过简单指令来辅助实现。

cat命令

默认地,cat命令可以直接接收多个参数,这样,通过重定向可以很方便地合并文件:

效果如下:

Shell在日常工作中的应用实践

Shell在日常工作中的应用实践

4 案例分享

4.1 自动添加注释

下面我们从日常工作入手,和大家一起来看下,shell有哪些提高工作效率的应用场景~

首先,我们编写的脚本有时候并不仅仅是我们个人使用,可能是团队内部使用,所以通常在脚本正式编写前,通常需要添加部分注释,注明脚本的作用,创建日期,创建人等信息;

而如果编写脚本比较多的话,这些重复性工作就会成为我们的负担,所以,我们又可以将这些交给shell来帮我们实现,用shell脚本来解决创建shell脚本的重复性工作

下面给大家分享一个shell脚本的模板文件,把它拷贝到用户的根目录下并命名成 .vimrc 名称,这样我们以后再次打开以 .sh结尾的文件时就会成自动生成一些注释信息,只要稍稍修改一下即可如图所示:

vimrc文件是vim的环境设置文件,在启动vim时,当前用户根目录下的.vimrc文件会被自动读取,该文件可以包含一些设置甚至脚本,所以,一般会在.vimrc文件中根据个人喜好进行一些自定义设置;

下面脚本我都注释了具体含义,可参考:

Shell在日常工作中的应用实践

实现效果展示:

Shell在日常工作中的应用实践

4.2 内存使用率监控预警

日常工作中,经常会遇到由于服务器被日志打满而不得不重启的场景,而对于一些必要的单据,就需要时常注意日志的备份,所以可以编写如下一个脚本,来做提醒;

如下脚本实现了,当服务器内存使用率超过90%时,提示保存日志操作,如果未超过90%,则不作任何处理;

Shell在日常工作中的应用实践

实现效果展示:

Shell在日常工作中的应用实践

4.3 后台服务启动/停止/重启脚本

对于一些小范围使用,暂未接入j-one部署的服务器,每次后台服务代码更新,代码部署都是一项比较繁琐的工作,而这就到了shell发挥威力的时候了。

实现原理就是,将停止服务和启动服务需要执行的命令写进脚本,通过shell交互来实现,外加一些必要的判断逻辑,比如:

1.执行启动服务时判断服务是否正在启动中;

2.执行停止服务时判断根据交互条件筛选出的服务是否只有一个;

3.执行重启服务时判断服务是否正在启动中;

4.保证中间所有交互过程中的唯一性,避免失误将其他人的服务停止

实现脚本如下:

Shell在日常工作中的应用实践

实现效果展示:

该脚本可在团队内部通用,只需要输入任务类型编号和对应任务关键字两步即可,脚本在执行过程中会自动提示你确认执行任务对象是否正确,以免误伤;

1)停止服务

Shell在日常工作中的应用实践

2)启动服务:

Shell在日常工作中的应用实践

3)重启服务

Shell在日常工作中的应用实践

大大减少了团队服务部署的工作量~

4.4 函数化封装

对于一些比较复杂的功能,或者需要多次执行的功能,shell也支持将功能封装为函数,直接执行函数即可;

比如服务器的部署基本可以分为以下几个步骤:

•服务部署目录创建

•服务配置部署

•服务应用部署

•服务应用启动

则该四个步骤可以通过shell脚本封装为四个函数,如下:

Shell在日常工作中的应用实践

将每个模块编写为函数,最后,只需要调用main函数,即可执行上述一系列操作;

以此类推,安装nginx,Java,jenkins等各种软件操作,也可以封装成多个函数,实现自动化一键完成~

5 结语

综上,linux服务器上,所有的重复性工作都可以交给shell来打理,日常工作中增加一个万能助手,何乐而不为呢

shell脚本小巧且功能强大,以上只是给大家分享了些日常使用到的脚本,其他功能大家也可以举一反三,通过各种流程控制组合来实现,让shell来帮我们做工具人,我们就可以腾出更多的时间来做更重要且更有意义的事情了,与君共勉。

本文正在参加「金石计划」文章来源地址https://www.toymoban.com/news/detail-419425.html

到了这里,关于Shell在日常工作中的应用实践的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 软件测试人员每天的工作日常

    我现在每天9点左右从家里出发,9点半左右到公司,到公司之后,首先用养生壶煮一壶好茶,工作忙碌时也要记得多喝水,然后一边听着煮茶声一边写着当天的工作计划,工作计划主要包括当天工作内容、学习计划和总结。 计划并不是每天都能完成,在工作结束之后根据实际

    2024年02月12日
    浏览(32)
  • 大数据工程师的日常工作内容是干嘛?

    本文来源:知乎 大家好,我是脚丫先生 (o^^o) 最近小伙伴们,有问到大数据工程师岗位平常的日常工作都是干嘛的? 大数据或者说想入门大数据,技术肯定是第一重要的,不会大数据的技术谈什么大数据。那么大数据的技术怎么学,要知道大数据是依赖Java的,首先要保证J

    2023年04月16日
    浏览(30)
  • 日常工作中常用的抓包工具都有哪些呢?

    大家好,今天我们一起来聊聊,在我们的日常工作中都有哪些抓包工具呢?你们平时工作中都在哪一款工具呢?一起学习交流。 一、Wireshark 这款抓包工具目前是使用最多的,分析网络交互非常方便 二、Fiddler,多数是使用在抓包手机的相关网络交互的网络包,目前也是非常流

    2024年01月20日
    浏览(43)
  • 【主流技术】日常工作中关于 JSON 转换的经验大全(Java)

    目录 前言 一、JSON 回顾 1.1结构形式 二、其它类型 - JSON相关 2.1 JavaBean 转 JsonObject 2.2 JavaBean 转 Json 字符串 2.3 List 转 JsonArray 2.4 List 转Json 字符串 2.5Map 转 Json 字符串 三、JSON 相关 - 其它类型 3.1 Json 字符串转 JavaBean 3.2 Json 字符串转 JsonObject 3.3 Json 字符串转 List 3.4Json字符串转M

    2024年03月11日
    浏览(33)
  • 程序员日常|为什么我在开发工作中偏爱这款键盘?

    最近一直不断地有粉丝朋友们私信我,问我该如何给自己挑选一款适合程序员工作的键盘,于是今天来给大家介绍下我用的键盘。 程序员作为一个需要长时间敲代码的职业,没有一个趁手的键盘是不行的,往小了说是折损工作效率,往大了说就是在损伤自己的手,是对自己的

    2024年02月02日
    浏览(35)
  • ChatGPT会对我们日常生活带来什么影响?这些技术会改变我们学习阅读工作方式吗?

    AI 这个话题很火,我也一直在关注着,很多人甚至觉得 AI 会改变世界,也许你会好奇:ChatGPT 会在三年内终结编程吗?AI有可能改变人的学习方式吗?AI 能否取代打工人?本文会对相关问题从我们可见日常问题进行解答。 希望从:AI 辅助提高了人的阅读效率吗、AI能帮助人更

    2024年02月03日
    浏览(63)
  • 人工智能在日常生活中的应用

            在我们的日常生活中,人工智能已经成为一种无处不在的力量,从智能家居到在线助手,再到高度个性化的服务和推荐,它无声地改变着我们的生活方式和习惯。随着技术的不断进步和普及,人工智能正以前所未有的速度和规模渗透到我们生活的每一个角落,开启

    2024年03月17日
    浏览(33)
  • AI在日常生活中的应用:从语音助手到自动驾驶

    🎉欢迎来到AIGC人工智能专栏~探索AI在日常生活中的应用 ☆* o(≧▽≦)o *☆嗨~我是IT·陈寒🍹 ✨博客主页:IT·陈寒的博客 🎈该系列文章专栏:AIGC人工智能 文章作者技术和水平有限,如果文中出现错误,希望大家能指正🙏 📜 欢迎大家关注! ❤️ 欢迎来到我的博客!今天

    2024年02月11日
    浏览(23)
  • 有效实践:优化项目工作中的文件协同

    在项目工作过程中,每天都会产出大量文件,团队需要频繁进行文件协同工作。文件协同在现代办公生活中扮演着至关重要的角色。文件协同可以帮助团队成员共享信息、协调工作、提高工作效率。 然而传统的文件协同方式不仅效率低下,而且容易出现错漏。那么该 如何做

    2024年02月14日
    浏览(44)
  • 【DevOps】Git 图文详解(九):工作中的 Git 实践

    本系列包含: Git 图文详解(一):简介及基础概念 Git 图文详解(二):Git 安装及配置 Git 图文详解(三):常用的 Git GUI Git 图文详解(四):Git 使用入门 Git 图文详解(五):远程仓库 Git 图文详解(六):Git 利器 - 分支 Git 图文详解(七):标签管理 Git 图文详解(八)

    2024年02月04日
    浏览(26)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包