Linux系统最重要的工具——Shell学习笔记
一、为什么学习Shell脚本语言
1.Shell脚本语言是实现Linux/UNIX系统管理及自动化运维必备的重要工具,Linux/UNIX系统底层及
基础应用软件的核心大都涉及Shell脚本的内容。
2.每一个合格的运维工程师都需要熟练编写Shell脚本语言,并能够阅读系统及各类软件附带的Shell
脚本内容。只有这样才能提升运维人员的工作效率,适应日益复杂的工作环境,减少不必要的重复工作
,从而为个人的职场发展奠定较好的基础。
二、流程控制
过程式编程语言:
顺序执行
选择执行
循环执行
三、Shell实战
1.脚本就是命令的堆叠
2.条件选择if语句
1)单分支
if 判断条件;then
条件为真的分支代码
fi
2)双分支
if 判断条件;then
条件为真的分支代码
else
条件为假的分支代码
fi
3)多分支
if 判断条件;then
条件为真的分支代码
elif 判断条件;then
条件为真的分支代码
else
条件为假的分支代码
fi
3.递归运算
例:阶乘
1)定义函数
fact(){
if[ $n -eq 0 -o $ -eq 1 ];then
echo 1
else
echo $[n*(fact (n-1))]
fi
}
2)调用函数
fact $n
3)保存运行测试
4.echo $?
? 判断命令执行是否成功,执行成功返回0,执行失败返回非空值,127表示指令未找到。
例题:ping -cl www.baidu.com && echo "www.baidu.com is up" || echo "www.baidu.com is down"
5.编译型语言和解释型语言的执行方式对比
#!官方称为shebang 用于定义该文件由哪个解释器来执行
程序设计语言分为编译型和解释型两种,C、Java等是编译型语言,shell和python为解释型语言。
编译型语言编写的程序执行效率比解释型语言的执行效率要高,编译型语言提前编排了程序逻辑,
C编译后将代码转换成了汇编语言。而Java将代码转化为了字节码,能被JAVA虚拟机读取。
而解释型语言如Shell只有在执行的时候才去考虑如何执行命令
python比较特殊,有两种执行方式,即可以解释执行也可以编译执行(可被python虚拟机读取)。
(未完,持续更新)
Linux系统最重要的工具——Shell学习笔记的更多相关文章
- 《Linux系统free命令的使用》学习笔记
free命令用于显示当前系统的内存空闲和使用情况,其中包括物理内存,交换分区内存,内核缓冲区内存以及高速缓存,free的参数报错一下: -b ——字节的方式显示内存使用情况 [root@redhat ...
- [转]linux 系统监控、诊断工具之 IO wait
1.问题: 最近在做日志的实时同步,上线之前是做过单份线上日志压力测试的,消息队列和客户端.本机都没问题,但是没想到上了第二份日志之后,问题来了: 集群中的某台机器 top 看到负载巨高,集群中的机器 ...
- linux系统下重启tomcat的shell脚本
linux系统下重启tomcat的shell脚本: #!/bin/shtomcat_home=/opt/apache-tomcat- #找到tomcat进程的id并kill掉 ps -ef |grep ...
- 在 Linux 系统下使用 PhotoRec 工具来恢复已删除或丢失的文件
PhotoRec – Recover Deleted or Lost Files in Linux 在 Linux 系统下使用 PhotoRec 工具来恢复已删除或丢失的文件 当你在系统中有意或无意地 ...
- shell学习笔记
shell学习笔记 .查看/etc/shells,看看有几个可用的Shell . 曾经用过的命令存在.bash_history中,但是~/.bash_history记录的是前一次登录前记录的所有指令, ...
- 《Linux内核分析》第三周学习笔记
<Linux内核分析>第三周学习笔记 构造一个简单的Linux系统MenuOS 郭垚 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.stud ...
- [转帖][Bash Shell] Shell学习笔记
[Bash Shell] Shell学习笔记 http://www.cnblogs.com/maybe2030/p/5022595.html 阅读目录 编译型语言 解释型语言 5.1 作为可执行程序 ...
- GNU工具链学习笔记
GNU工具链学习笔记 1..so为动态链接库,.a为静态连接库.他们在Linux下按照ELF格式存储.ELF有四种文件类型.可重定位文件(Relocatable file,*.o,*.a),包含代码和 ...
- 《Linux内核分析》第八周学习笔记
<Linux内核分析>第八周学习笔记 进程的切换和系统的一般执行过程 郭垚 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163 ...
随机推荐
- gin框架中的渲染
各种数据格式的响应 json.结构体.XML.YAML类似于java的properties.ProtoBuf 点击查看代码 // json响应 func someJson(context *gin.C ...
- 【程序5】输入三个整数x,y,z,请把这三个数由小到大输出
我自己写的: x = int(input('x:')) y = int(input('y:')) z = int(input('z:')) L = [x,y,z] print(sorted(L)) 官 ...
- 用python设计猜大小的游戏
import random def roll_dice(numbers = 3,points = None): print("------摇骰子------") if points ...
- 利用JavaScript与正则表达式判断输入账号格式是否正确
在学习了HTML DOM对象后,做几个小练习来巩固一下所学内容. 正则表达式: 正则表达式,又称规则表达式.(英语:Regular Expression,在代码中常简写为regex.regexp或RE ...
- kubernetes之添加删除node
添加node 1.master生成token [root@node-01 ~]# kubeadm token create --print-join-command kubeadm join 172. ...
- Android开发-页面绘制
今天主要绘制了记账页面 记账页面用到的布局是TableLayout加Viewpager联动的方式,通过设置一个标题头可以实现页面的左右滑动,viewpager中添加两个fragment. 需要制作两个 ...
- 计算机网络再次整理————UDP例子[六]
前言 简单的说,UDP 没有 TCP 用的广泛,但是还有很多是基于UDP的程序的,故而简单介绍一下. 正文 秉承节约脑容量的问题,只做简单的介绍和例子,因为自己几乎也没怎么用过UDP. 只是了解和知晓 ...
- 《手把手教你》系列技巧篇(六十四)-java+ selenium自动化测试 - cookie -中篇(详细教程)
1.简介 今天按照原计划宏哥要用实例来给小伙伴或童鞋们来演示一下,如何利用cookie实现跳过验证码进行登录.这个场景是自动登陆.有很多系统的登陆信息都是保存在cookie里的,因此只要往cookie ...
- sms短信网关对接
因为工作的需求,需要对接短信网关,业务上就是一个注册用户时,需要发送手机验证码;可能别的公司都是使用第三方接口,但是大点的公司,为了安全,他们都有自己的短信消息中心(SMSC) 1.业务需求 - 1. ...
- LNMP架构——源码编译安装
LNMP架构--源码编译安装 1.编译安装nginx服务 2.编译安装mysql服务 3.编译安装php解析环境 1.编译安装nginx服务: systemctl stop firewalld sys ...