linux初学 :简易的shell脚本
什么是shell
Shell本身是一个用C语言编写的程序,它是用户使用Unix/Linux的桥梁,用户的大部分工作都是通过Shell完成的
Shell有两种执行命令的方式:
交互式(Interactive):解释执行用户的命令,用户输入一条命令,Shell就解释执行一条。
批处理(Batch):用户事先写一个Shell脚本(Script),其中有很多条命令,让Shell一次把这些命令执行完,而不必一条一条地敲命令。
第一个脚本:
vi hello.sh 一般shell脚本都以.sh为结尾
#!/bin/bash
echo 'hello world'
// #!是一个约定的标记,告诉系统该脚本使用哪个解释器来执行
echo 命令用于向窗口输出文本
./hello.sh,即可打印hello world字符串了
下面我们写一个停止mysql的脚本:
vi mysql_stop.sh #!/bin/bash
pid=`ps -ef|grep mysql|grep -v grep|awk '{print $2}'` // =号后的符号是左tab键上边的那个符号,不是单引号,千万不要加错``两个符号之间代表是命令,变量名和‘=’后不能有空格
//ps -ef|grep mysql用来查询mysql的进程,grep -v grep用来屏蔽grep的进程,awk用来取查询结果的第二列的值,即进程号
kill - $pid
//kill -9 用来杀进程,$pid是用来取变量值,要加$符号
如上,一个停止mysql的脚本就完成了,我们只需要运行mysql_stop.sh这个脚本就可以停止mysql了
假设mysql未启动,这个脚本再运行的时候就会报错了,那么我们需要在shell脚本里加入if判断语句
#!/bin/bash
pid=`ps -ef|grep mysql|grep -v grep|awk '{print $2}'`
if [ $pid ] //if语句开始,[]括号中是条件,[]中前后一定要有空格
then //then if语句的结构,条件满足时执行then后的内容
kill - $pid
else //else 后为条件不满足时,执行的内容
echo 'mysql started'
fi //fi 代表if语句的结束,一定要加,否则脚本运行时会报错
还有一种情况是ps查询出的进程有很多个,那我们如何杀掉进程呢,这时需要用到xargs命令
#!/bin/bash
pid=`ps -ef|grep lampp|grep -v grep|wc -l`
if [ $pid -ge ] // -ge是shell的函数之一,相当于“大于等于”,shell中只能用shell特定的运算函数,可查看详细列表,该条件的意思是查询到的lampp进程行数大于2时执行then的内容
then
ps -ef|grep lampp|grep -v grep|awk '{print $2}'|xargs kill -
//以上语句中,xargs的意义:将awk取到的所有进程号全部传给kill -9 ,杀掉全部进程
else
echo 'lampp stopped'
fi
所以,shell中常用的几种命令大家要牢记了
linux初学 :简易的shell脚本的更多相关文章
- 在Linux下如何用Shell脚本读写XML?现有一个config.xml(转)
在Linux下如何用Shell脚本读写XML?现有一个config.xml <?xml version="1.0" encoding="UTF-8"?&g ...
- 自学Linux命令行与Shell脚本之路
自学Linux命令行与Shell脚本之路[第一回]:初识Linux 1.1 自学Linux Shell1.1-Linux初识 1.2 自学Linux Shell1.2-Linux目录结构 1.3 ...
- linux的基本操作(shell 脚本的基础知识)
shell 脚本的基础知识 日常的linux系统管理工作中必不可少的就是shell脚本,如果不会写shell脚本,那么你就不算一个合格的管理员.目前很多单位在招聘linux系统管理员时,shell脚本 ...
- Linux命令行与shell脚本编程大全.第3版(文字版) 超清文字-非扫描版 [免积分、免登录]
此处免费下载,无需账号,无需登录,无需积分.收集自互联网,侵权通知删除. 点击下载:Linux命令行与shell脚本编程大全.第3版 (大小:约22M)
- 《Linux命令行与shell脚本编程大全 第3版》创建实用的脚本---11
以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下:
- 《Linux命令行与shell脚本编程大全 第3版》高级Shell脚本编程---47
以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下:
- 《Linux命令行与shell脚本编程大全 第3版》Shell脚本编程基础---57
以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下:
- 《Linux命令行与shell脚本编程大全 第3版》Linux命令行---57
以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下:
- 《Linux命令行与shell脚本编程大全 第3版》Linux命令行---56
以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下:
随机推荐
- 使用Map List 封装json数据
<dependency> <groupId>net.sf.json-lib</groupId> <artifactId>json-lib</art ...
- ]用EnumChildWindows遍历窗口的方法
最近项目有需要,得到一个非自己实现的窗口控件对象.于是想起曾经做过类似功能.总结如下: 调用EnumChildWindows(this->m_hWnd, EnumChildProc, NULL) ...
- halcon的性能
·满足您各类机器视觉应用需求的完善的开发库 ·包含匹配,识别,定位及1D,2D,3D测量等多种高级算法 ·强大,易用的工具加速您的开发进程 ·与Linux/UNI及Windows(包括×64)兼容,避 ...
- 一个模拟"显示桌面.scf"程序的JS小函数
有时候我们或许有这样的一个需求,用JS模拟这样一个动作,同时按下组合快捷键:Windows旗帜键+D键,下面这个函数就可以帮到我们了. function f_ToggleDesktop() { var ...
- head first-----------adpter pattern
head first-----------------深入浅出适配器模式 适配器模式:将一个类的接口,转换成客户想要的另外一个接口,适配器然原本接口不兼容的类可以合作无间.从而可以不用更改旧 ...
- Spark MLlib Deep Learning Convolution Neural Network (深度学习-卷积神经网络)3.1
3.Spark MLlib Deep Learning Convolution Neural Network (深度学习-卷积神经网络)3.1 http://blog.csdn.net/sunbow0 ...
- Codeforces Round #276 (Div. 1) D. Kindergarten dp
D. Kindergarten Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/problemset/proble ...
- 开源图形库 c语言-图形图像库 集合[转]
开源图形库 c语言-图形图像库 集合[转] Google三维API O3D O3D 是一个开源的 Web API 用来在浏览器上创建界面丰富的交互式的 3D 应用程序.这是一种基于网页的可控3D标准. ...
- android设置动态壁纸 (Wallpaper) 介绍
当进入改壁纸的设置页面 但是还没有设置时 09-21 07:55:05.575: INFO/System.out(1337): service onCreate09-21 07:55:05.614: ...
- 关于Web端即JS端编程
主要的技术是 HTML/JS/CSS/XML Web就是JS/DOM编程. 页面的数据来源: XML, JSON, HTML, Text, 第三方页面或者数据. 不一定都要跟服务器进行交互. JS端 ...