shell简介

网友投稿 919 2022-10-16

本站部分文章、图片属于网络上可搜索到的公开信息,均用于学习和交流用途,不能代表睿象云的观点、立场或意见。我们接受网民的监督,如发现任何违法内容或侵犯了您的权益,请第一时间联系小编邮箱jiasou666@gmail.com 处理。

shell简介

一、shell简介

Shell脚本语言是实现Linux/UNIX系统管理及自动化运维所必备的重要工具,Linux/UNIX系统的底层及基础应用软件的核心大都涉及Shell脚本的内容。Shell是一个命令解释器,它的作用是解释执行用户输入的命令及程序等,用户每输入一条命令,Shell就解释执行一条。

二、shell编程所需的基础知识

1、能够熟练使用vim编辑器

2、要有一定的Linux命令基础,至少需要掌握80个以上Linux常用命令

3、要熟练掌握Linux正则表达式及三剑客命令

4、熟悉常见的Linux网络服务部署、优化、日志分析及排错。

三、shell脚本

当命令或程序语句不在命令行下执行,而是通过一个程序文件来执行时,该程序就被称为Shell脚本。如果在Shell脚本里内置了很多条命令、语句及循环控制,然后将这些命令一次性执行完毕,这种通过文件执行脚本的方式称为非交互的方式。Shell脚本类似于DOS系统下的批处理程序。

举例:写一个包含命令、变量和流程控制的语句来清除/var/log下messages日志文件的Shell脚本。

思路:脚本可以设计成如下几关:

第一关,必须是root才能执行脚本,否则给出友好提示并终止脚本运行。

第二关,成功切换目录(cd/var/log),否则给出友好提示并终止脚本运行。

第三关,清理日志(cat/dev/null>messages),若清理成功,则给出正确提示。

第四关,通关或失败,分别给出相应的提示(echo输出)。

四、shell脚本语言的种类

Shell脚本语言是弱类型语言(无须定义变量的类型即可使用),在Unix/Linux中主要有两大类Shell:一类是Bourne shell,另一类是C shell。

1、Bourne shell

又包括Bourne shell(sh)、Korn shell(ksh)、Bourne Again Shell(bash)三种类型。

Bourne Again Shell(bash)由GNU项目组开发,主要目标是与POSIX标准保持一致,同时兼顾对sh的兼容,bash从csh和ksh借鉴了很多功能,是各种Linux发行版默认配置的Shell,Linux系统上的/bin/sh往往是指向/bin/bash的符号链接。尽管如此,bash和sh还是有很多的不同之处:一方面,bash扩展了一些命令和参数;另一方面,bash并不完全和sh兼容,它们有些行为并不一致,但在大多数企业运维的情况下区别不大,特殊场景可以使用bash替代sh。

2、C shell

csh由Berkeley大学开发,随BSD UNIX发布,它的流程控制语句很像C语言,支持很多Bourne shell所不支持的功能,例如:作业控制、别名、系统算术、命令历史、命令行编辑等。

/bin/sh                  #<==linux里常用的shell,指向/bin/bash

/bin/bash              #<==linux里常用的shell,也是默认使用的shell

/usr/bin/sh            #<==

/usr/bin/bash       #<==

/sbin/nologin      #<==这是Linux里常用的Shell,用于禁止用户登录。

五、其他常用的脚本语言种类

1、php

PHP是网页程序语言,也是脚本语言。wordpress、dedecms、discuz等著名的开源产品都是用PHP语言开发的。

2、perl

缺点是不易读,团队协作困难,但它仍不失为一种很好的脚本语言,存世的大量相关程序软件(比如,xtrabackup热备工具、MySQL MHA集群高可用软件等)中都有Perl语言的身影。

3、Python

Python是近几年非常流行的语言,它不但可以用于脚本程序开发,也可以实现Web页面程序开发(例如:CMDB管理系统),甚至还可以实现软件的开发(例如:大名鼎鼎的OpenStack、SaltStack都是Python语言开发的)、游戏开发、大数据开发、移动端开发。

六、shell优势

对于一些常见的系统脚本,使用Shell开发会更简单、更快速,例如:让软件一键自动化安装、优化,监控报警脚本,软件启动脚本,日志分析脚本等,虽然PHP/Python语言也能够做到这些,但是,考虑到掌握难度、开发效率、开发习惯等因素,它们可能就不如Shell脚本语言流行及有优势了。对于一些常规的业务应用,使用Shell更符合Linux运维简单、易用、高效的三大基本原则。

PHP语言的优势在于小型网站系统的开发;Python语言的优势在于开发较复杂的运维工具软件、Web界面的管理工具和Web业务的开发(例如:CMDB自动化运维平台、跳板机、批量管理软件SaltStack、云计算OpenStack软件)等。我们在开发一个应用时应根据业务需求,结合不同语言的优势及自身擅长的语言来选择,扬长避短,从而达到高效开发及易于自身维护等目的。

七、常用操作系统默认的shell

linux下默认的shell是bash,Solaris和FreeBSD默认的是sh,AIX默认的是ksh。

查看默认的shell方法:

#echo $SHELL

#grep root /etc/passwd

上一篇:容器与虚拟化的结合:浅谈“安全容器”技术发展趋势
下一篇:SQL审核监控平台神器:inception+archer
相关文章

 发表评论

暂时没有评论,来抢沙发吧~