背景

现在多数的服务器都是Linux系统的,需要通过shell来进行操作,而利用shell脚本,可以大大提高开发维护的效率。

知识剖析

什么是shell

shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便于运行程序的界面系统级程序,用户可以用shell来启动,挂起,停止甚至是编写一些程序。

shell还是一个功能强大的编程语言,易编写,易调试。shell是解释执行的脚本语言,在shell中可以直接调用Linux命令。

shell的两种主要语法有bourne和C,这两种语法彼此不兼容。bourne家族主要包括sh,ksh,Bash, psh,zsh,C家族主要用在unix,包括csh,tsh. 查看当前shell的类型的方法是:echo $SHELL

概念辨析,shell是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。

shell脚本(shell script),是一种为shell编写的脚本程序,业界所说的shell通常都是指shell脚本。

shell有两种执行方式

交互式:解释执行用户的命令,用户输入一条命令,shell就执行一条。

批处理:用户事先写一个shell脚本,其中有很多命令,让shell一次把这些命令执行完,而不必一条一条地敲命令。

编码

首先,创建shell脚本文件:vim xxxx.sh ,后缀为.sh

脚本执行有两种方式:1.赋予执行权限,chmod 755 xxxx.sh     2. 通过Bash调用执行脚本bash hello.sh

特殊符号

$ 调用变量的值

` `  反引号,引用系统命令

$( )   引用系统命令

'  '  单引号,在其中的特殊符号没有特殊含义。

"  "   双引号,在其中的特殊符号没有特殊含义,但有三个除外:$  ,  ``  ,  \

管道符

命令1  |  命令2     命令1的正确输出作为命令2的操作对象。

输入输出重定向

命令 > 文件   ,以覆盖的方式,把命令输出到指定的文件中

命令 >> 文件   ,以追加的方式,把命令输出到指定的文件中。

输出重定向

命令 < 文件

命令 < 标识符

以下是在任务三中统计ngiinx响应时间的脚本:

#!/bin/bash

#nginx logs

H=100

cd /usr/local/nginx/logs/

tail -n $H access.log|awk '{print $25,$26,$7 }'

echo "统计了 $H 条数据"

echo "响应时间0.01秒以内"

tail -n $H access.log|awk 'BEGIN{sum=0}{if($26<0.01)sum++;}END{print sum}'

echo "响应时间0.01~0.02秒"

tail -n $H access.log|awk 'BEGIN{sum=0}{if(($26>=0.01)&&($26<0.02))sum++;}END{print sum}'

echo "响应时间0.02~0.03秒"

tail -n $H access.log|awk 'BEGIN{sum=0}{if(($26>=0.02)&&($26<0.03))sum++;}END{print sum}'

echo "响应时间0.03~0.04"

tail -n $H access.log|awk 'BEGIN{sum=0}{if(($26>=0.03)&&($26<0.04))sum++;}END{print sum}'

echo "响应时间0.04及以上"

tail -n $H access.log|awk 'BEGIN{sum=0}{if($26>=0.04)sum++;}END{print sum}'

echo "访问量"

tail -n $H access.log|awk '{print $7}' | wc -l

tail -n $H access.log|awk '{print $11}' |sort | uniq -c |wc -l

echo "#######统计完成######"

如何写SHELL脚本?尝试自己编写一个简单脚本相关推荐

  1. 如何写shell脚本?尝试自己编写一个简单脚本。

    1 背景介绍 每次发布tomcat项目的时候都要反复敲一些命令,重启tomcat之前先检查tomcat进程有没有停掉,没有还要手动kill该进程,单独部署一个项目还好,如果一次多个部署,就比较费劲了 ...

  2. redchat怎么编写shell脚本_如何写shell脚本?尝试自己编写一个简单脚本

    1. 创建Shell脚本文件 2. 显示消息 3. 使用变量 4. 反引号 5. 重定向输入输出 6. 管道 7. 执行数学运算 8. 退出脚本 1. 创建脚本文件的时候,必须将文件的第一行指定要使用 ...

  3. linux系统写一个脚本,编写一个简单的linuxshell脚本

    shell脚本和windows平台上的bat批处理是一样的,简化用户处理重复动作的操作,shell脚本由shell命令组成.下面是学习啦小编收集整理的编写一个简单的linuxshell脚本,希望对大家 ...

  4. 编写一个最简单的.php,学习猿地- 说明 如果我们要编写一个简单的PHP脚本,需要学习哪些...

    说明 如果我们要编写一个简单的 PHP 脚本,需要学习哪些基础知识呢? PHP 基础 PHP 脚本可放置于文档中的任何位置. 标准 的 PHP 脚本以 <?php 开头,以 ?> 结尾: ...

  5. python脚本编写_如何用Python包编写一个简单的脚本,表达你对父母的爱?

    全文共2800字,预计学习时长6分钟 在繁忙的工作生活中,我们经常忘记给所爱的人发WhatsApp.本教程将使用Python包Twilio编写一个简单的Python脚本来发送WhatsApp消息.我们 ...

  6. Python 在windows上跑图色脚本?简单又好玩,自己编写一个自动化脚本

    Python 在windows上跑图色脚本?简单又好玩,自己编写一个自动化脚本 大家好 我又来开新坑了,如图这次准备用python弄个简单脚本(根据图色判断进行键鼠操作) 1.老规矩 先安排运行环境 ...

  7. 用 Go 编写一个简单的 WebSocket 推送服务

    用 Go 编写一个简单的 WebSocket 推送服务 本文中代码可以在 github.com/alfred-zhon- 获取. 背景 最近拿到需求要在网页上展示报警信息.以往报警信息都是通过短信,微 ...

  8. python编写登录_通过Python编写一个简单登录功能过程解析

    通过Python编写一个简单登录功能过程解析 需求: 写一个登录的程序, 1.最多登陆失败3次 2.登录成功,提示欢迎xx登录,今天的日期是xxx,程序结束 3.要检验输入是否为空,账号和密码不能为空 ...

  9. Linux环境使用命名空间编写一个简单的容器应用程序:namespace,container,cgroups

    目录 使用命名空间编写一个简单的容器应用程序 创建一个子进程– fork vs clone 具有clone(2)的命名空间 简单示例 - CLONE_NEWPID 隔离网络接口 - CLONE_NEW ...

最新文章

  1. 【驱动】linux下I2C驱动架构全面分析
  2. python啥意思-星号*在Python中是什么意思?
  3. java 毕向东 内部类_java基础内部类(毕向东老师)
  4. 利用百度进行URL编码解码
  5. 特征筛选9——根据重要性SelectFromModel筛选特征(有监督筛选)
  6. 如何对建模型数据进行预处理
  7. UML教程5:协作图
  8. sql怎么实现2个表连接_多表上SQL连接:概述和实现
  9. 怎么修改PDF文件的内容?教你两招快来看看
  10. 单层感知器python_深度学习之单层感知器(一)
  11. 操作系统概念之定义和功能
  12. 软件开发量评估法之一---德尔菲评估法
  13. 微信小程序如何使用SCSS
  14. python spacy 安装超时_安装spacy失败
  15. 通过Excel制作下拉框筛选出成绩
  16. 产品经理三大领域的技术
  17. 不同直径的圆转一圈后,滚过的距离相同?谈一下亚里士多德车轮悖论与无穷小
  18. 奇异谱分解轴承故障诊断代码编写
  19. css如何实现10px字体
  20. GPS NMEA-0183标准详解(常用的精度以及经纬度坐标)

热门文章

  1. 如何解决PL/SQL Developer过期的情况
  2. 4W家庭理财 V2.1
  3. 历年计算机二级等级考试真题,[历年全国计算机等级考试二级QBASIC部分真题]全国计算机二级...
  4. 四川轻化工大学计算机网络技求术,四川轻化工大学
  5. GBase 8s V8.8 SQL 指南:教程-5.1.1
  6. 警务区的小生活 灵宝西站派出所第一警务区 焦帅宾
  7. 缺陷管理工具Jira安装参考
  8. 2021-2025年中国高频太阳能逆变器行业市场供需与战略研究报告
  9. ffmpeg进行多通道语音分离
  10. 新开淘宝店怎么增加店铺流量方法步骤