什么是shellshell是用C语言编写的程序,它在用户和操作系统之间架起了一座桥梁,用户可以通过这座桥梁访问操作系统内核服务.它既是一种命令语言,也是一种编程语言,您可以通过它编写程序。shell能做什么(一)监控系统运行:Linux可以说是最稳定的操作系统,一方面得益于其完善的内核,另一方面也有很多shell脚本命令可以监控系统的运作。在出现问题之前,提前报警。(2)启动和停止服务:Linux中的各种程序大部分都是通过服务提供给用户的,shell脚本可以控制服务的启动和停止,控制服务的重启等。(3)备份和导入数据库:数据库的数据非常重要,我们要经常备份,这样当我们的数据或者设备出现问题的时候,我们可以很方便的通过备份的数据来恢复数据库。shell脚本可以进行数据库备份和导入导出。(4)日志记录分析:通常我们的应用程序会写很多日志,操作系统本身也会写很多日志。这时候我们就需要shell脚本来分析日志,定期清理那些不需要的日志。确保系统不会被日志文件填满。(5)文件重命名:当我们在一个文件夹中有大量文件时,如果我们想批量重命名,那么shell脚本就可以帮你完成,只需要一个脚本,修改文件名就可以了批量修改,当然也可以批量修改图片大小。(6)环境配置:当我们使用一个新的环境时,我们往往需要配置我们的环境。我们需要安装相应的工具并配置环境变量。如果这些都是手动配置的话,那就太麻烦了。使用shellScript,我们可以自动部署这些配置信息。(7)自动化部署:对于运维人员来说,经常需要做的就是在多台机器上配置环境。这个时候手动配置是不现实的。这时候shell脚本就可以帮我们批量部署,自动部署我们的集群。不同种类的shell(1)BourneshellBourneshell(sh)由AT&T贝尔实验室的SteveBourne编写,是最初的UNIXshell。由于其紧凑性和速度,它是shell编程的首选shell。Bourneshell的缺点是它缺乏交互使用的特性,例如调用以前的命令(历史)的能力。Bourneshell也缺乏对算术和逻辑表达式的内置处理。(2)CShell由加州大学伯克利分校的BillJoy编写的UNIX增强shell,具有交互使用的集成功能,例如别名和命令历史记录、内置算法和类似C的表达式语法。(3)Bourne-AgainShellBourneshell兼容的shell,结合了Korn和Cshell的共同特征,带有用于命令调用和编辑自动映射的箭头键。(4)KornShellDavidKorn是在贝尔实验室编写的。它是Bourneshell的超集。它比cshell更快并且与Bourneshell兼容。它包括算术函数和字符串运算等功能。在哪里学习和实践linux和macos都有自己的shell,不用安装任何软件就可以使用。对于windows用户来说,有wsl、cgwin、mingw等多种环境供大家学习。当然你也可以用docker安装一个精简的linux,它也包含一个shell,你也可以用它来学习。还是那句话,学习编程最好的方法就是不断敲代码。只有不断地练习,才能使自己的技艺更加精湛。学习shell也是一样,你也需要不断的写脚本去练习,只有通过无数次的练习才能说你已经掌握了,否则简历上只能写你懂了,不能写熟练。综上所述,实践是检验真理的唯一标准。我们在学习任何一种编程语言和任何技能知识的时候,都需要以实践为前提。我们需要通过实践来编写那些常用的脚本,比如数据库备份、资源告警、环境搭建等。通过这些实际的例子,我们可以对shell有更深入的了解,并将shell融入到我们的日常工作中。shell能做的不仅仅是文中列出的任务,它能做的还很多,需要你自己不断的去发现和认识。
