您当前的位置:首页 > 电脑百科 > 程序开发 > 语言 > C/C++/C#

每一个程序员都应该学点shell脚本知识

时间:2021-12-16 09:36:43  来源:  作者:梦回故里归来

什么是shell

shell是C语言编写的程序,它在用户和操作系统之间架起了一座桥梁,用户可以通过这个桥梁访问操作系统内核服务。

每一个程序员都应该学点shell脚本知识

 

它既是一种命令语言,同时也是一种程序设计语言,你可以通过它来编写程序。

shell 都能做什么

监控系统运行:linux可以说是运行最稳定的操作系统,这一方面得益于它完美的内核,另一方面就是有很多shell脚本命令可以监控系统的运行,当出现问题之前,提前报警。

启动停止服务:linux中的各种程序几乎大部分都是通过服务来提供给用户使用的,而shell脚本就可以控制服务的启动和停止,控制服务的重启等。

备份导入数据库:数据库的资料是非常重要的,我们应该经常备份它们,这样当我们的数据或者设备出现问题的时候,我们可以轻松地通过备份数据对数据库进行还原。而shell脚本就可以进行数据库的备份和导入导出。

日志的记录分析:平时我们的应用程序会写入很多日志,操作系统本身也会写入很多日志,这个时候我们需要shell脚本对日志进行分析,定时清理那些不需要的日志,这样才能保证系统不会被日志文件填满。

每一个程序员都应该学点shell脚本知识

 

文件重命名:当我们在一个文件夹中有大量的文件的时候,如果我们想要对它们进行批量重命名的话,那么shell脚本就可以帮你做这件事,你只需要一个脚本,就可以批量修改文件的命名,当然你可以批量修改图片的尺寸。

环境配置:当我们使用一个新环境的时候,我们往往需要进行配置我们的环境,我们需要安装相对应的工具,需要配置环境变量,如果这些都是手动配置就太麻烦了,使用shell脚本,我们既可以自动化部署这些配置信息。

每一个程序员都应该学点shell脚本知识

 

自动化部署:对于运营人员来说,经常需要操作的就是在多台机器上配置环境,这个时候如果手动去配置根本不现实,这个时候shell脚本就可以帮助我们批量部署,自动化部署我们的集群。

不同种类的shell

  • Bourne shell

Bourne shell (sh) 由 AT&T 贝尔实验室的 Steve Bourne 编写,是最初的 UNIX shell。由于其紧凑性和速度,它是 shell 编程的首选 shell。Bourne shell 的缺点是它缺乏交互式使用的功能,例如调用以前的命令(历史)的能力。Bourne shell 也缺乏内置的算术和逻辑表达式处理。

  • C Shell

由加州大学伯克利分校的Bill Joy编写的 UNIX 增强Shell,用于交互式使用的集成功能,例如别名和命令历史记录,内置算术和类似C 的表达式语法。

  • Bourne-Again Shell

与 Bourne shell 兼容的shell,结合了来自 Korn 和 C shell 的常用功能,具有命令调用和编辑自动映射的箭头按键。

  • Korn Shell

David Korn 在贝尔实验室编写出来,它是Bourne shell的超集,它比c shell更快,兼容Bourne shell,它包含了算术函数,字符串运算等功能。

去哪里学习练习

linux和macos 都自带了shell,你可以不需要安装任何软件就可以使用它们,对于windows用户,现在有wsl,cgwin,mingw等很多环境可以供你学习,当然,你也可以使用Docker来安装一个精简linux,它同样包含shell,你也可以使用它来学习。

每一个程序员都应该学点shell脚本知识

 

还是那句话,学习编程的最佳方式就是不停地敲代码,你只有不停地练习,才能够让自己的技术变得更加精湛。学习shell也一样,你也需要不停地编写脚本来练习,只有通过无数次练习,你才能说掌握它,否则你在你的简历上只能写上了解额不是精通。

总结

实践是检验真理的唯一标准,我们学习任何编程语言,学习任何技能知识,都是需要以实践为前提。

我们需要通过实践编写那些常用的脚本,比如数据库备份,资源报警,环境搭建等。通过这些实践例子,我们才能够更深刻地了解shell,才能在日常工作中将shell融会贯通。

shell能做的可不仅仅是文中列举的这些工作,它能做得还很多,你需要自己不断地去发现,去认知它。



Tags:shell脚本   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
什么是shellshell是c语言编写的程序,它在用户和操作系统之间架起了一座桥梁,用户可以通过这个桥梁访问操作系统内核服务。 它既是一种命令语言,同时也是一种程序设计语言,你可以...【详细内容】
2021-12-16  Tags: shell脚本  点击:(16)  评论:(0)  加入收藏
如何在Linux环境中加密shell脚本?shell脚本包含密码,不希望其他具有执行权限的人查看shell脚本并获取密码。可以安装使用shc工具,普通用户无法读取shc创建的加密Shell...【详细内容】
2021-11-04  Tags: shell脚本  点击:(40)  评论:(0)  加入收藏
shell脚本是一个命令语言,面向的是操作系统执行。如果写过shell脚本的话,应该体会过编写过程的痛苦。因为shell并不是一个编程语言,并不支持常见的数组,JSON等数据结构,也不支持...【详细内容】
2021-08-09  Tags: shell脚本  点击:(109)  评论:(0)  加入收藏
日常工作中经常涉及Linux环境下的进程以及Docker容器相关的操作,现有几例常用的shell脚本,以供大家学习交流。 1进程的启动、关闭、重启 应用程序中有master、worker两种角色...【详细内容】
2021-05-06  Tags: shell脚本  点击:(227)  评论:(0)  加入收藏
一、脚本今天主要分享一个shell脚本,用来获取linux系统CPU、内存、磁盘IO等信息。#!/bin/bash# 获取要监控的本地服务器IP地址IP=`ifconfig | grep inet | grep -vE 'ine...【详细内容】
2021-03-16  Tags: shell脚本  点击:(204)  评论:(0)  加入收藏
每次启动Java程序jar包的时候,难道你还在手敲java -jar xxserver.jar……?边敲边想着都需要追加哪些参数?今天就推荐给大家一个几乎通用的Shell脚本,它支持Java程...【详细内容】
2021-01-18  Tags: shell脚本  点击:(161)  评论:(0)  加入收藏
相信大家在网上一搜,就能搜出很多这样的文章,但我这个不一样哦,我在脚本里加了些自定义的东西(如关闭版本号,修改nginx版本头信息,nginx性能优化等等),可以不用修改直接就可...【详细内容】
2020-12-24  Tags: shell脚本  点击:(132)  评论:(0)  加入收藏
在企业的Liunx运维中,经常需要应用到各种shell脚本,比如Mysql数据库备份Shell脚本和Mysql主从同步监控Shell脚本等等常用企业运维shell脚本。。下面分享两例,希望对大家有帮助...【详细内容】
2020-12-18  Tags: shell脚本  点击:(195)  评论:(0)  加入收藏
在编写脚本的过程中,很多时候都需要我们去设置IP地址,密码之类的变量,为了易用性,我们对这些变量的值都会提供选择范围或者设置随机值以及默认值等。那么如果我们要判断使用脚本...【详细内容】
2020-12-04  Tags: shell脚本  点击:(302)  评论:(0)  加入收藏
Jenkins是一款开源的CI&CD软件, 提供超过1000个插件来支持构建、部署、自动化, 满足任何项目的需要。JenkinsJenkins基于Java环境,可以部署在windows/Mac OS/linux上,通过其网页...【详细内容】
2020-11-06  Tags: shell脚本  点击:(610)  评论:(0)  加入收藏
▌简易百科推荐
一、简介很多时候我们都需要用到一些验证的方法,有时候需要用正则表达式校验数据时,往往需要到网上找很久,结果找到的还不是很符合自己想要的。所以我把自己整理的校验帮助类分...【详细内容】
2021-12-27  中年农码工    Tags:C#   点击:(0)  评论:(0)  加入收藏
引言在学习C语言或者其他编程语言的时候,我们编写的一个程序代码,基本都是在屏幕上打印出 hello world ,开始步入编程世(深)界(坑)的。C 语言版本的 hello world 代码:#include <std...【详细内容】
2021-12-21  一起学嵌入式    Tags:C 语言   点击:(10)  评论:(0)  加入收藏
读取SQLite数据库,就是读取一个路径\\192.168.100.**\position\db.sqlite下的文件<startup useLegacyV2RuntimeActivationPolicy="true"> <supportedRuntime version="v4.0"/...【详细内容】
2021-12-16  今朝我的奋斗    Tags:c#   点击:(21)  评论:(0)  加入收藏
什么是shellshell是c语言编写的程序,它在用户和操作系统之间架起了一座桥梁,用户可以通过这个桥梁访问操作系统内核服务。 它既是一种命令语言,同时也是一种程序设计语言,你可以...【详细内容】
2021-12-16  梦回故里归来    Tags:shell脚本   点击:(16)  评论:(0)  加入收藏
一、编程语言1.根据熟悉的语言,谈谈两种语言的区别?主要浅谈下C/C++和PHP语言的区别:1)PHP弱类型语言,一种脚本语言,对数据的类型不要求过多,较多的应用于Web应用开发,现在好多互...【详细内容】
2021-12-15  linux上的码农    Tags:c/c++   点击:(17)  评论:(0)  加入收藏
1.字符串数组+初始化char s1[]="array"; //字符数组char s2[6]="array"; //数组长度=字符串长度+1,因为字符串末尾会自动添&lsquo;\0&lsquo;printf("%s,%c\n",s1,s2[2]);...【详细内容】
2021-12-08  灯-灯灯    Tags:C语言   点击:(46)  评论:(0)  加入收藏
函数调用约定(Calling Convention),是一个重要的基础概念,用来规定调用者和被调用者是如何传递参数的,既调用者如何将参数按照什么样的规范传递给被调用者。在参数传递中,有两个很...【详细内容】
2021-11-30  小智雅汇    Tags:函数   点击:(19)  评论:(0)  加入收藏
一、问题提出问题:把m个苹果放入n个盘子中,允许有的盘子为空,共有多少种方法?注:5,1,1和1 5 1属同一种方法m,n均小于10二、算法分析设f(m,n) 为m个苹果,n个盘子的放法数目,则先对...【详细内容】
2021-11-17  C语言编程    Tags:C语言   点击:(46)  评论:(0)  加入收藏
一、为什么需要使用内存池在C/C++中我们通常使用malloc,free或new,delete来动态分配内存。一方面,因为这些函数涉及到了系统调用,所以频繁的调用必然会导致程序性能的损耗;另一...【详细内容】
2021-11-17  深度Linux    Tags:C++   点击:(37)  评论:(0)  加入收藏
OpenCV(Open Source Computer Vision Library)是一个(开源免费)发行的跨平台计算机视觉库,可以运行在Linux、Windows、Android、ios等操作系统上,它轻量级而且高效---由一系列...【详细内容】
2021-11-11  zls315    Tags:C#   点击:(50)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条