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版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下:
随机推荐
- Spring REST实践之Spring Web MVC
Spring概要 Spring Framework提供了依赖注入模型和面向切面编程,简化了基础型代码的编写工作以及更好的能够与其它框架和技术整合起来.Spring Framework由data acc ...
- 高分辨率 2x图像: -webkit-min-device-pixel-ratio 的常见值对照
-webkit-min-device-pixel-ratio的常见值对照 原文地址:http://zhangyaochun.iteye.com/blog/1816582 前言: 本文来自于对 http ...
- 索引的实现:B+树
[ http://blog.csdn.net/stormbjm/article/details/12033673 ] 见<数据库系统概念>P323. [从B树.B+树.B*树谈到R ...
- VC++ 6.0中实现三叉切分窗口与多视图 [转]
一.引用 当用户需要同时对文当的不同部分进行编辑时,常常会用到切分窗口;这些窗口可以都是相同的视,或者一个窗口为列表视,而另一个为树型视图.应用程序框架有多种方式来表示多视图,切分窗口是其中的方式之一 ...
- javaWeb学习笔记
一. web.xml -------------------------------------------------------------------------------- ...
- Linux下getopt()函数的简单使用
最近在弄Linux C编程,本科的时候没好好学啊,希望学弟学妹们引以为鉴. 好了,虽然啰嗦了点,但确实是忠告.步入正题: 我们的主角----getopt()函数. 英雄不问出处,getopt()函数的 ...
- 习总强调网络安全 ,咱们国产SSL证书必须加快普及速度
上海(2014 年 2 月 27 日)—— 央视新闻联播 27 日报道中央网络安全和信息化领导小组于当日成立的消息及习总在该小组首次会议上的重要讲话.据悉,该小组由习总任小组长,李克强.刘云山任副组长 ...
- PostgreSQL中的数组与Any
建立表: CREATE TABLE sal_emp ( name text, pay_by_quarter integer[], schedule text[][] ); 插入数据: INSERT I ...
- Web开发者不可不知的15条编码原则
HTML已经走过了近20的发展历程.从HTML4到XHTML,再到最近十分火热的HTML5,它几乎见证了整个互联网的发展.但是,即便到现在,有很多基础的概念和原则依然需要开发者高度注意.下面,向大家介 ...
- CodeForces 176A Trading Business 贪心
Trading Business 题目连接: http://codeforces.com/problemset/problem/176/A Description To get money for a ...