一、为什么学习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学习笔记的更多相关文章

  1. 《Linux系统free命令的使用》学习笔记

    free命令用于显示当前系统的内存空闲和使用情况,其中包括物理内存,交换分区内存,内核缓冲区内存以及高速缓存,free的参数报错一下: -b ——字节的方式显示内存使用情况 [root@redhat ...

  2. [转]linux 系统监控、诊断工具之 IO wait

    1.问题: 最近在做日志的实时同步,上线之前是做过单份线上日志压力测试的,消息队列和客户端.本机都没问题,但是没想到上了第二份日志之后,问题来了: 集群中的某台机器 top 看到负载巨高,集群中的机器 ...

  3. linux系统下重启tomcat的shell脚本

    linux系统下重启tomcat的shell脚本: #!/bin/shtomcat_home=/opt/apache-tomcat- #找到tomcat进程的id并kill掉 ps -ef |grep ...

  4. 在 Linux 系统下使用 PhotoRec 工具来恢复已删除或丢失的文件

    PhotoRec – Recover Deleted or Lost Files in Linux 在 Linux 系统下使用 PhotoRec 工具来恢复已删除或丢失的文件 当你在系统中有意或无意地 ...

  5. shell学习笔记

    shell学习笔记 .查看/etc/shells,看看有几个可用的Shell . 曾经用过的命令存在.bash_history中,但是~/.bash_history记录的是前一次登录前记录的所有指令, ...

  6. 《Linux内核分析》第三周学习笔记

    <Linux内核分析>第三周学习笔记 构造一个简单的Linux系统MenuOS 郭垚 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.stud ...

  7. [转帖][Bash Shell] Shell学习笔记

    [Bash Shell] Shell学习笔记 http://www.cnblogs.com/maybe2030/p/5022595.html  阅读目录 编译型语言 解释型语言 5.1 作为可执行程序 ...

  8. GNU工具链学习笔记

    GNU工具链学习笔记 1..so为动态链接库,.a为静态连接库.他们在Linux下按照ELF格式存储.ELF有四种文件类型.可重定位文件(Relocatable file,*.o,*.a),包含代码和 ...

  9. 《Linux内核分析》第八周学习笔记

    <Linux内核分析>第八周学习笔记 进程的切换和系统的一般执行过程 郭垚 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163 ...

随机推荐

  1. golang中的反射解析结构体标签tag

    package main import ( "fmt" "reflect" ) type resume struct { // 反射解析结构体标签tag Nam ...

  2. linux中三剑客之一grep命令

    目录 一:grep语法格式: 二:参数: 三:正则表达式 1.linux正则表达式 2.普通正则表达式 四:正则与grep实战案例实战: grep简介: linux 三剑客之一,文本过滤器(根据文本内 ...

  3. python if-elif-else 判断

    #!/usr/bin/python #coding=utf-8 #好好学习,天天向上 age=12 if age<4: price=0 elif age<18: price=40 elif ...

  4. 阿里巴巴发布最佳实践 | 阿里巴巴DevOps实践指南

    编者按:本文源自阿里云云效团队出品的<阿里巴巴DevOps实践指南>,扫描上方二维码或前往:https://developer.aliyun.com/topic/devops,下载完整版电 ...

  5. Arduino+ESP32 之 SD卡读写

    背景知识: ESP32有两种使用SD卡的方法,一种是使用SPI接口访问SD卡,另一种是使用SDMMC接口访问SD卡 . Arduino core for the ESP32中SPI方式占用4个IO口, ...

  6. plsql 视图中 为什么使用替代触发器

    /* 什么是视图? 视图:数据库对象,存的是一个查询命令:当作一个虚拟的数据表来使用: 应用场景: 简化查询操作:不能直接在视图上进行create,insert,update操作: 创建视图? 需要管 ...

  7. Ubuntu Typora安装

    Ubuntn Typora安装 现在好像开始收费了,网上给的方法都是从官网下载的,感觉迟早不能用,因为要钱了 官网好像给的安装方法如下,可是好像不太好用 # or run: # sudo apt-ke ...

  8. LDAP概念和原理介绍 (转)

    相信对于许多的朋友来说,可能听说过LDAP,但是实际中对LDAP的了解和具体的原理可能还比较模糊,今天就从"什么是LDAP"."LDAP的主要产品"." ...

  9. Linux常用命令,面试常考

    Linux常用命令 网络工具 查看监听端口的进程: lsof -i :8080 或者 netstat -tupln|grep 8080 复制 软连接创建 ln -s 源文件 目标文件

  10. Loadrunner 11 中的Java Vuser

    Java vuser是自定义的java虚拟用户脚本,脚本中可以使用标准的java语言. 1.安装jdk 注意,lr11最高支持jdk1.6 2.配置环境变量 3.在lr中选择java vuser协议 ...