Shell简介
Shell是Unix/Liunx系统下的脚本编程语言,属于一种解释性计算机语言,与Python语言一样是解释执行,并不需要编译后执行,故而Shell也是可以编写程序的。
Shell本身也是一个程序,在Unix/Liunx系统中,Shell是连接着unix/Liunx内核和用户及其他应用程序的中间件,简单来说Shell是Unix/Liunx内核和用户之间的桥梁,是两者之间交流沟通的工具。我们学习Liunx时,所使用的终端就是一个shell的交互终端。
Shell脚本的功能是十分强大的,特别对于Unix/Liunx系统的日常管理是完全能够满足需求的。比如对于运维师(负责Unix/Liunx服务器的运行和维护)而言,系统的日常工作:字符串或者文本检索,文件的创建与查找,更改系统的设置,监控服务器性能以及安全,发送对应的报警信息,大规模的软件自动部署(例如LAPM自动一键部署),因此对于一名专业的系统服务器运维师而言,Shell脚本是必须掌握的。
云主宰苍穹—Shell桥梁作用Shell语言简介
Shell脚本语言是一种常用与服务端的计算机语言,自然没有通用计算机语言C、C++、Java、C#、Python功能强大。古语有言,麻雀虽小,然五脏俱全也。Shell脚本也有基本的编程元素:
1、字符串、变量、数组、算术运算加减乘除、逻辑运算、还有注释;
2、分支结构if—else,循环结构for、while,until等流程控制语句;
3、Shell同时也支持自定义的函数,主要为了方便模块化管理。
Shell常用分类
Liunx系统一般都自带的有默认的Shell程序软件,如同编译器GCC,C语言标准库,文本编辑器Vi/Vim、Emacs一样在安装Liunx系统是就存在的。一般常用的Shell有bash、sh、csh、ash等等。
1、bashshell是Liunx默认的shell,有GNU组织开发;
2、sh全称Bourneshell,有ATT公司SteveBourne开发;
3、csh是伯克莱大学BillJoy设计,因语言类似C语言故而称Cshell;
4、ash的优点就是占用的资源极少,属于轻量级的shell,适用于低内存的系统,比如嵌入式开发系统。
5、查看Shell
Shell是一个程序,一般都是放在/bin或者/user/bin目录下,当前Linux系统可用的Shell都记录在/etc/shells文件中。
在Liunx终端,输入命令:echo$SHELL,即可查看当前Liunx系统的默认shell。
6、Shell提示符
在BashShell中,对于普通用户的提示符是一个美元符号$,而对于超级用户Root的提示符则是一个井字符号#,shell提示符的作用是提示或者等待用户输入shell命令。
服务端运维师
在IT领域里面,UNIX/Liunx、Mac和Windows三国鼎立,瓜分了整个服务端的系统,特别由于Liunx的开源以及免费,几乎整个服务端系统都是Liunx的天下了。
云主宰苍穹—服务器端系统占比随着Linux在服务器上的广泛应用:用来搭建Web服务器、数据库服务器、负载均衡服务器(CDN)、邮件服务器、DNS服务器、反向代理服务器、VPN服务器、路由器等。同时由于Linux服务器的大规模应用,市场急需一批专业的人才去管理,这群人就是Linux运维工程师(OPS)。OPS的主要工作就是搭建起运行环境,让程序员写的代码能够高效、稳定、安全地在服务器上运行,他们属于后勤部门。OPS的要求并不比程序员低,优秀的OPS拥有架设服务器集群的能力,还会编程开发常用的工具。Liunx鱼尾工程师(OPS)这项工作的细节内容包括:
1、安装操作系统,例如CentOS、Ubuntu、Kali等等Liunx发行版。
2、部署代码运行环境,例如网站后台语言采用PHP或者Python,就需要安装Nginx、Apache、MySQL、PHP运行时等,LAPM的批量部署。
3、及时修复漏洞,防止服务器被攻击,这包括Linux本身漏洞以及各个软件的漏洞,特对于服务器的安全问题。
4、根据项目需求升级软件,例如PHP7.0在性能方面获得了重大突破,如果现在服务器压力比较大,就可以考虑将旧版的PHP5.x升级到PHP7.0。
5、监控服务器压力,别让服务器宕机。例如淘宝双十一的时候就会瞬间涌入大量用户,导致部分服务器宕机,网页没法访问,甚至连支付宝都不能使用,高并发和高流量的访问。
6、分析日志,及时发现代码或者环境的问题,通知相关的程序猿进行修复。