阿里云
为了无法计算的价值
打开APP
阿里云APP内打开
学习中心> Linux Shell 编程入门与实战> 正文

Linux Shell 编程入门与实战

5课时 |
12828人已学 |
免费
课程介绍

Linux企业运维实战系列课程之Linux进阶学习。

Shell脚本编程基础

目录:

一、本章内容

二、编程基础

三、程序的执行方式

四、编程基本概念

五、Shell脚本基础

六、创建Shell脚本

七、脚本规范

八、Shell脚本示例

一、本章内容

编程基础:Shell编程类别,特点,与其他语言的区别,如java,C语言

脚本基本格式:Shell编程基本语法

变量

运算(加减乘除运算)

条件测试

配置用户环境:涉及到的相关配置文件

Shell脚本编程基础的实现是将之前学过的:计算机基础知识,Linux基础,文件管理,标准IO和管道,用户组和权限管理,文本处理工具的功能综合起来,去实现更自动化的任务,而非手工执行每条命令去执行部分特殊操作,而是将命令组合起来。

二、编程基础

程序:指令+数据

例:  vim f1  其中vim是程序,f1是要修改管理的数据

程序本身没有较大意义,其最主要功能为处理数据

程序编程风格:

过程式:以指令为中心,数据服务于指令(关注过程;程序按预定好的步骤一步一步实现;一般不过于复杂,可以统筹地控制每个流程;C语言是面向过程的语言)

对象式:以数据为中心,指令服务于数据(更适合开发大型软件。举例:如果工程较大,不可能细化到每个步骤,如一些人协作完成的大工程,总负责人把任务下发给工人,只需关注工人而不用关注工人具体做的每一件事,此时关注的是结果而非过程;java,python都是面向对象的语言)

Shell程序:提供了编程能力,解释执行

三、程序的执行方式

计算机:运行二进制指令

编程语言:

低级:汇编

高级:通常情况下使用高级语言

编译:高级语言-->编译器(程序员手工完成)-->目标代码(二进制格式数据)

Java,C#(微软开发语言)

解释:高级语言-->解释器(又称翻译器,计算机自动完成,不需要人工参与,能够直接运行)-->机器代码

Shell,perl,python

计算机只能理解0 1 

通过编译与解释两种方法把单词数字等转换为0 1

Shell脚本本质将内部命令与外部命令集合,按顺序执行

四、编程基本概念

编程逻辑处理方式:

顺序执行(按照预先设定的次序执行)

循环执行(把某段代码重复执行多次;如将磁盘上各文件逐个处理,             需要用到循环逻辑,循环最总会结束,可能发生循环异常)

选择执行(达到一定条件进行判断)

Shell编程:过程式(只适合管理小程序,可以用于运维工作),解释执行(不安全,只要拿到文本就能理解内容)

 

编程语言的基本结构:

各种系统命令的组合(将多个命令组合在一起)

数据存储:变量,数组

表达式:a + b

语句:if

例如用shell语句写hello world: 

cat > hello.sh echo”hello world”

chmod + x hello.sh  //加执行权限 

hello.sh 运行程序

报错:

command not found...   //找不到外部文件   echo$PATH  /

找文件

解决方法:直接输入绝对路径  /data/hello.sh

相对路径  ./hello.sh   

显示主机名:echo my hostname is hostname

.sh 后缀表示是Shell 程序

Shell编程:将命令按顺序执行

五、shell脚本基础

shell脚本:

包含一些命令或声明,并符合一定格式的文本文件

格式要求:首行shebang机制   

解释: echo $SHELL 

/bin/bash  //该程序帮助把文本内容转化为二进制形式

> f1  //创建空文件,前提需要特定的语法不同设备支持shell语法不同,当写Shell脚本时,需要告诉系统使用的你是哪种Shell语言,即shebang机制  

 #!/bin/bash

     #!/usr/bin/python  //用于python

     #!/usr/bin/perl    //用于perl

     标准写法:   #!/bin/bash  //是程序,不是文件夹。表示下面内容是以bash的shell语言写的。

Shell语言能批量执行命令,按顺序执行。适合运维工程师解决简单的,逐步性的运维工作。

例如:每天的备份;文件的复制;自动化的文本处理等

shell脚本的用途有:

自动化常用命令

执行系统管理和故障排除

创建简单的应用程序

处理文本或文件

(不适合管理复杂的环境)

六、创建shell脚本

第一步:使用文本编辑器来创建文本文件

第一行必须包括shell声明序列:#!

      #!/bin/bash

添加注释(增强可读性)

      注释以#开头

例如: 

#Author:wang

#Data:2018-04-06

#Version:1.0

#Description:The first script

代码比较复杂的情况下,可在代码之前添加注释,解释下面代码的功能

第二步:运行脚本

给予执行权限,在命令上指定脚本的绝对或相对路径

show hostname    (执行权限)

另一种运行方式:

bash hello.sh  (文件即使没有执行权限也可以运行)

其他方式:

cat hello.sh | bash  //只要有标准输出均可实现

cat hello.sh  

将该代码内容放到一个网站上:vim/var/www/html/hello.sh 

cat/var/www/html/hello.sh

现在访问其地址 192.168.30.128为默认网站 访问192.168.30.128/hello.sh,默认情况下自动下载该文件(hello.sh)

在别的计算机上可用 curl 内容

执行该文件 curl  |bash

实现远程主机的文件在本机执行,该方法可运用在远程调用脚本上。可用该方式将脚本放在远程的机器上,用自己的机器执行。

远程主机的程序在本机执行前提需要搭建共享服务,该内容之后讲解。

例如搭建了个人博客,脚本在个人博客上。

如果需要在某一台机器上运行该脚本,只需访问该路径并bash,不需要将程序下载到本机。

./hello.sh  //写上路径;

更加传统的方式;前提要加执行权限

直接运行解释器,将脚本作为解释器程序的参数运行。

七、脚本规范

脚本代码开头约定

  1. 第一行一般为调用使用的语言
  2. 程序名,避免更改文件名为无法找到正确的文件(尽可能写有含义的英文单词组合,不要使用汉字,汉字接入性较弱,尽量避免使用拼音)
  3. 版本号
  4. 更改后的事件
  5. 作者相关信息
  6. 该程序的作用,及注意事项
  7. 最后是各版本的更新简要说明 

描述信息与更新说明应用注释的形式在Shel程序中写出

八、脚本的基本结构

脚本的基本结构

#!SHEBANG

CONFIGURATION_VARIABLES   //变量

FUNCTION_DEFINITIONS      //函数

MAIN_CODE                //主程序

九、Shell脚本示例

#!/bin/bash

#------------------------

#Filename:  hello.sh

#Revision:  1.1

#Date:  2017/06/01

#Author:  wang

#Email:  wang@gmail.com

#Website:  www.magedu.com

#Description:  This is the first script

#-----------------------------

#Copyright:   2017 wang

#License:   GPl   //程序允许修改,但必须一GPI形式发布

echo “hello world”

我的学习进度
请登录后查看您的学习进度!
立即登录
本课程相关云产品