shell编程模块课程目标(上)

简介: shell编程模块课程目标

SHELL编程模块课程目标


① Shell的基本语法结构


如:变量定义、条件判断、循环语句(for、until、while)、分支语句、函数和数组等;


② 基本正则表达式的运用;


③ 文件处理三剑客:grep、sed、awk工具的使用;


④ 使用shell脚本完成一些较复杂的任务,如:服务搭建、批量处理等。


一、SHELL介绍


前言:


计算机只能认识(识别)机器语言(0和1),如(11000000 这种)。但是,我们的程序猿们不能直接去写01这样的代码,所以,要想将程序猿所开发的代码在计算机上运行,就必须找"人"(工具)来翻译成机器语言,这个"人"(工具)就是我们常常所说的**编译器或者解释器**。


##1. 编程语言分类


编译型语言:

程序在执行之前需要一个专门的编译过程,把程序编译成为机器语言文件,运行时不需要重新翻译,直接使用编译的结果就行了。程序执行效率高,依赖编译器,跨平台性差些。如C、C++


解释型语言:

程序不需要编译,程序在运行时由**解释器**翻译成机器语言,每执行一次都要翻译一次。因此效率比较低。比如Python/JavaScript/ Perl /ruby/Shell等都是解释型语言。


总结

编译型语言比解释型语言速度较快,但是不如解释型语言跨平台性好。如果做底层开发或者大型应用程序或者操作系开发一般都用编译型语言;如果是一些服务器脚本及一些辅助的接口,对速度要求不高、对各个平台的兼容性有要求的话则一般都用解释型语言。


总结:


shell就是人机交互的一个桥梁

shell的种类

[root@MissHou~]#cat/etc/shells/bin/sh#是bash的一个快捷方式/bin/bash#bash是大多数Linux默认的shell,包含的功能几乎可以涵盖shell所有的功能/sbin/nologin#表示非交互,不能登录操作系统/bin/dash#小巧,高效,功能相比少一些/bin/csh#具有C语言风格的一种shell,具有许多特性,但也有一些缺陷/bin/tcsh#是csh的增强版,完全兼容csh


思考:终端和shell有什么关系?


㈠ 什么是shell脚本?

一句话概括

简单来说就是将需要执行的命令保存到文本中,按照顺序执行。它是解释型的,意味着不需要编译。


准确叙述

若干命令 + 脚本的基本格式 + 脚本特定语法 + 思想= shell脚本


㈡ 什么时候用到脚本?

重复化、复杂化的工作,通过把工作的命令写成脚本,以后仅仅需要执行脚本就能完成这些工作。


㈢ shell脚本能干啥?

①自动化软件部署 LAMP/LNMP/Tomcat…


②自动化管理 系统初始化脚本、批量更改主机密码、推送公钥…


③自动化分析处理 统计网站访问量


④自动化备份 数据库备份、日志转储…


⑤自动化监控脚本


㈣ 如何学习shell脚本?

尽可能记忆更多的命令(记忆命令使用功能和场景)

掌握脚本的标准的格式(指定魔法字节、使用标准的执行方式运行脚本)

必须==熟悉掌握==脚本的基本语法(重点)

㈤ 学习shell脚本的秘诀

多看(看懂)——>模仿(多练)——>多思考(多写)


㈥ shell脚本的基本写法

1)脚本第一行,魔法字符==#!==指定解释器【必写】


#!/bin/bash 表示以下内容使用bash解释器解析


注意:

如果直接将解释器路径写死在脚本里,可能在某些系统就会存在找不到解释器的兼容性问题,所以可以使用:#!/bin/env 解释器


2)脚本第二部分,注释(#号)说明,对脚本的基本信息进行描述【可选】


#!/bin/envbash#以下内容是对脚本的基本信息的描述#Name: 名字#Desc:描述describe#Path:存放路径#Usage:用法#Update:更新时间#下面就是脚本的具体内容commands...


3)脚本第三部分,脚本要实现的具体代码内容


㈦ shell脚本的执行方法

标准脚本执行方法(建议)

1) 编写人生第一个shell脚本[root@MissHoushell01]#catfirst_shell.sh#!/bin/envbash#以下内容是对脚本的基本信息的描述#Name: first_shell.sh#Desc: num1#Path: /shell01/first_shell.sh#Usage:/shell01/first_shell.sh#Update:2019-05-05echo"hello world"echo"hello world"echo"hello world"2) 脚本增加可执行权限[root@MissHoushell01]#chmod+xfirst_shell.sh3) 标准方式执行脚本[root@MissHoushell01]#pwd/shell01[root@MissHoushell01]#/shell01/first_shell.sh或者[root@MissHoushell01]# ./first_shell.sh注意:标准执行方式脚本必须要有可执行权限。


非标准的执行方法(不建议)

直接在命令行指定解释器执行

[root@MissHoushell01]#bashfirst_shell.sh[root@MissHoushell01]#shfirst_shell.sh[root@MissHoushell01]#bash-xfirst_shell.sh+echo'hello world'helloworld+echo'hello world'helloworld+echo'hello world'helloworld-x:一般用于排错,查看脚本的执行过程-n:用来查看脚本的语法是否有问题


使用source命令读取脚本文件,执行文件里的代码

[root@MissHoushell01]#sourcefirst_shell.shhelloworldhelloworldhelloworld


**小试牛刀:**写一个木有灵魂的脚本,要求如下:


删除/tmp/目录下的所有文件


然后在/tmp目录里创建3个目录,分别是dir1~dir3


拷贝/etc/hosts文件到刚创建的dir1目录里


最后打印"报告首长,任务已于2019-05-05 10:10:10时间完成"内容


echo "报告首长,任务已于$(date +'%F %T')"

相关文章
|
6天前
|
Unix Shell Linux
LeetCode刷题 Shell编程四则 | 194. 转置文件 192. 统计词频 193. 有效电话号码 195. 第十行
本文提供了几个Linux shell脚本编程问题的解决方案,包括转置文件内容、统计词频、验证有效电话号码和提取文件的第十行,每个问题都给出了至少一种实现方法。
LeetCode刷题 Shell编程四则 | 194. 转置文件 192. 统计词频 193. 有效电话号码 195. 第十行
|
6天前
|
Shell Linux
Linux shell编程学习笔记30:打造彩色的选项菜单
Linux shell编程学习笔记30:打造彩色的选项菜单
|
4天前
|
Shell Linux 开发工具
|
4天前
|
监控 Unix Shell
shell脚本编程学习
shell脚本编程
22 12
|
6天前
|
Shell Linux
Linux shell编程学习笔记82:w命令——一览无余
Linux shell编程学习笔记82:w命令——一览无余
|
1月前
|
存储 Unix Shell
shell脚本编程基础
【9月更文挑战第4天】
36 12
|
1月前
|
Shell Linux
Shell 编程 编写hello word
Shell 编写hello word
41 5
|
2月前
|
Shell KVM 虚拟化
Shell 数组编程
【8月更文挑战第22天】 Shell 数组编程
43 10
|
2月前
|
Shell 数据处理 C++
【震撼揭秘】Python正则VS Shell正则:一场跨越编程边界的史诗级对决!你绝不能错过的精彩较量,带你领略文本处理的极致魅力!
【8月更文挑战第19天】正则表达式是文本处理的强大工具,在Python与Shell中有广泛应用。两者虽语法各异,但仍共享许多基本元素,如`.`、`*`及`[]`等。Python通过`re`模块支持丰富的功能,如非捕获组及命名捕获组;而Shell则依赖`grep`、`sed`和`awk`等命令实现类似效果。尽管Python提供了更高级的特性和函数,Shell在处理文本文件方面仍有其独特优势。选择合适工具需根据具体需求和个人偏好决定。
29 1
|
2月前
|
监控 Shell Linux
探索Linux操作系统下的Shell编程之魅力
【8月更文挑战第4天】本文旨在通过一系列精心设计的示例和分析,揭示在Linux环境下进行Shell编程的独特之处及其强大功能。我们将从基础语法入手,逐步深入到脚本的编写与执行,最终通过实际代码案例展现Shell编程在日常系统管理和自动化任务中的应用价值。文章不仅适合初学者构建扎实的基础,同时也为有一定经验的开发者提供进阶技巧。
44 11