什么是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脚本的更多相关文章

  1. 在Linux下如何用Shell脚本读写XML?现有一个config.xml(转)

    在Linux下如何用Shell脚本读写XML?现有一个config.xml <?xml version="1.0" encoding="UTF-8"?&g ...

  2. 自学Linux命令行与Shell脚本之路

    自学Linux命令行与Shell脚本之路[第一回]:初识Linux   1.1 自学Linux Shell1.1-Linux初识 1.2 自学Linux Shell1.2-Linux目录结构 1.3  ...

  3. linux的基本操作(shell 脚本的基础知识)

    shell 脚本的基础知识 日常的linux系统管理工作中必不可少的就是shell脚本,如果不会写shell脚本,那么你就不算一个合格的管理员.目前很多单位在招聘linux系统管理员时,shell脚本 ...

  4. Linux命令行与shell脚本编程大全.第3版(文字版) 超清文字-非扫描版 [免积分、免登录]

    此处免费下载,无需账号,无需登录,无需积分.收集自互联网,侵权通知删除. 点击下载:Linux命令行与shell脚本编程大全.第3版 (大小:约22M)

  5. 《Linux命令行与shell脚本编程大全 第3版》创建实用的脚本---11

    以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下:

  6. 《Linux命令行与shell脚本编程大全 第3版》高级Shell脚本编程---47

    以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下:

  7. 《Linux命令行与shell脚本编程大全 第3版》Shell脚本编程基础---57

    以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下:

  8. 《Linux命令行与shell脚本编程大全 第3版》Linux命令行---57

    以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下:

  9. 《Linux命令行与shell脚本编程大全 第3版》Linux命令行---56

    以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下:

随机推荐

  1. hdoj 1729 Stone Games(SG函数)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1729 看了题目感觉像Nim,但是有范围限制,有点不知道SG函数该怎么写 看了题解,最后才明白该怎么去理 ...

  2. effective c++ (一)

    条款01:把C++看作一个语言联邦 C++是一种多重范型编程语言,一个同时支持过程(procedural),面向对象(object-oriented),函数形式(functional),泛型形式(ge ...

  3. 【转】Android-Universal-Image-Loader 图片异步加载类库的使用(超详细配置)

    Android-Universal-Image-Loader 原文地址:http://blog.csdn.net/vipzjyno1/article/details/23206387 这个图片异步加载 ...

  4. Mathematics for Computer Graphics数学在计算机图形学中的应用 [转]

    最近严重感觉到数学知识的不足! http://bbs.gameres.com/showthread.asp?threadid=10509 [译]Mathematics for Computer Gra ...

  5. Unity学习笔记(一)——基本概念之场景(Scene)

    场景,顾名思义就是我们在游戏中所看到的物品.建筑.人物.背景.声音.特效等,基本上和我们玩游戏时所看到的游戏“场景”是同一个概念. Unity 3D中,“场景”是一个视图,我们通过“场景”这个视图,来 ...

  6. C++之vector中元素删除

    今天在删除vector中的元素中遇到一个问题,这里记录下来以便以后查阅. 预备知识:用到了erase()函数,对于一个容器c来说,假设迭代器为p,那么执行: c.erase(p)之后就删除了容器c中p ...

  7. 第七届ACM趣味程序设计竞赛第四场(正式赛) 题解

    Final Pan's prime numbers 题目连接: http://acm.uestc.edu.cn/#/problem/show/1272 题意 给你n,要求你在[4,n]范围内找到一个最 ...

  8. Codeforces Round #308 (Div. 2) C. Vanya and Scales dfs

    C. Vanya and Scales Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/552/p ...

  9. iis7负载均衡

    Windows平台分布式架构实践 - 负载均衡(下)   Windows平台分布式架构实践 - 负载均衡   Windows平台分布式架构实践 - 负载均衡   概述 最近.NET的世界开始闹腾了,微 ...

  10. this class is not key value coding-compliant for the key XXX错误的解决方法

    转自:http://www.cnblogs.com/zhangronghua/archive/2012/03/16/iOSError1.html 今天在听iOS开发讲座时,照着讲座的demo输入代码, ...