如何写SHELL脚本?尝试自己编写一个简单脚本
背景
现在多数的服务器都是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脚本?尝试自己编写一个简单脚本相关推荐
- 如何写shell脚本?尝试自己编写一个简单脚本。
1 背景介绍 每次发布tomcat项目的时候都要反复敲一些命令,重启tomcat之前先检查tomcat进程有没有停掉,没有还要手动kill该进程,单独部署一个项目还好,如果一次多个部署,就比较费劲了 ...
- redchat怎么编写shell脚本_如何写shell脚本?尝试自己编写一个简单脚本
1. 创建Shell脚本文件 2. 显示消息 3. 使用变量 4. 反引号 5. 重定向输入输出 6. 管道 7. 执行数学运算 8. 退出脚本 1. 创建脚本文件的时候,必须将文件的第一行指定要使用 ...
- linux系统写一个脚本,编写一个简单的linuxshell脚本
shell脚本和windows平台上的bat批处理是一样的,简化用户处理重复动作的操作,shell脚本由shell命令组成.下面是学习啦小编收集整理的编写一个简单的linuxshell脚本,希望对大家 ...
- 编写一个最简单的.php,学习猿地- 说明 如果我们要编写一个简单的PHP脚本,需要学习哪些...
说明 如果我们要编写一个简单的 PHP 脚本,需要学习哪些基础知识呢? PHP 基础 PHP 脚本可放置于文档中的任何位置. 标准 的 PHP 脚本以 <?php 开头,以 ?> 结尾: ...
- python脚本编写_如何用Python包编写一个简单的脚本,表达你对父母的爱?
全文共2800字,预计学习时长6分钟 在繁忙的工作生活中,我们经常忘记给所爱的人发WhatsApp.本教程将使用Python包Twilio编写一个简单的Python脚本来发送WhatsApp消息.我们 ...
- Python 在windows上跑图色脚本?简单又好玩,自己编写一个自动化脚本
Python 在windows上跑图色脚本?简单又好玩,自己编写一个自动化脚本 大家好 我又来开新坑了,如图这次准备用python弄个简单脚本(根据图色判断进行键鼠操作) 1.老规矩 先安排运行环境 ...
- 用 Go 编写一个简单的 WebSocket 推送服务
用 Go 编写一个简单的 WebSocket 推送服务 本文中代码可以在 github.com/alfred-zhon- 获取. 背景 最近拿到需求要在网页上展示报警信息.以往报警信息都是通过短信,微 ...
- python编写登录_通过Python编写一个简单登录功能过程解析
通过Python编写一个简单登录功能过程解析 需求: 写一个登录的程序, 1.最多登陆失败3次 2.登录成功,提示欢迎xx登录,今天的日期是xxx,程序结束 3.要检验输入是否为空,账号和密码不能为空 ...
- Linux环境使用命名空间编写一个简单的容器应用程序:namespace,container,cgroups
目录 使用命名空间编写一个简单的容器应用程序 创建一个子进程– fork vs clone 具有clone(2)的命名空间 简单示例 - CLONE_NEWPID 隔离网络接口 - CLONE_NEW ...
最新文章
- 【驱动】linux下I2C驱动架构全面分析
- python啥意思-星号*在Python中是什么意思?
- java 毕向东 内部类_java基础内部类(毕向东老师)
- 利用百度进行URL编码解码
- 特征筛选9——根据重要性SelectFromModel筛选特征(有监督筛选)
- 如何对建模型数据进行预处理
- UML教程5:协作图
- sql怎么实现2个表连接_多表上SQL连接:概述和实现
- 怎么修改PDF文件的内容?教你两招快来看看
- 单层感知器python_深度学习之单层感知器(一)
- 操作系统概念之定义和功能
- 软件开发量评估法之一---德尔菲评估法
- 微信小程序如何使用SCSS
- python spacy 安装超时_安装spacy失败
- 通过Excel制作下拉框筛选出成绩
- 产品经理三大领域的技术
- 不同直径的圆转一圈后,滚过的距离相同?谈一下亚里士多德车轮悖论与无穷小
- 奇异谱分解轴承故障诊断代码编写
- css如何实现10px字体
- GPS NMEA-0183标准详解(常用的精度以及经纬度坐标)
热门文章
- 如何解决PL/SQL Developer过期的情况
- 4W家庭理财 V2.1
- 历年计算机二级等级考试真题,[历年全国计算机等级考试二级QBASIC部分真题]全国计算机二级...
- 四川轻化工大学计算机网络技求术,四川轻化工大学
- GBase 8s V8.8 SQL 指南:教程-5.1.1
- 警务区的小生活 灵宝西站派出所第一警务区 焦帅宾
- 缺陷管理工具Jira安装参考
- 2021-2025年中国高频太阳能逆变器行业市场供需与战略研究报告
- ffmpeg进行多通道语音分离
- 新开淘宝店怎么增加店铺流量方法步骤