1,什么是Shell
     Shell 是kernel的一个外壳,是一个命令解析器,负责用户与内核的交互。
2,Shell脚本
     Shell脚本类似于批处理,可以方便的执行大量命令。
3,编写shell脚本
    (1),用编辑器打开一个文件,首行固定格式,加入:

#!/bin/bash。

#注释,第一行格式固定
            一个好的程序文件,添加注释是很重要的,即使很长时间不用,当再次使用时,也能很容易的回想起此程序的功能。
    (2),编写shell脚本。
            这个就是最主要学习的地方,至于怎么学习,学习什么,只有之后用心了。建议从最简单的Linux命令开始学习。
4,运行shell
     (1),赋予文件执行的权限。

chmod  +x  file1name

(2),执行shell文件
            在终端下输入:

./ filename

Remark:以上3,4两步都是在终端下操作。当然如果编写能力很强第3步可以在其他编辑器中编写。

以下为一些常用命令和符号

  • 管道操作符 (|) ,将一个命令的输出作为另外一个命令的输入。
grep "hello" file.txt | wc -l

在file.txt中搜索包含有”hello”的行并计算其行数。

在这里grep命令的输出作为wc命令的输入。

  • 重定向:将命令的结果输出到文件,而不是标准输出(屏幕)。

> 写入文件并覆盖旧文件

>> 加到文件的尾部,保留旧文件内容。

  • 反短斜线(`)——键盘Esc键下面的按键对应的英文符号,使用反短斜线可以将一个命令的输出作为另外一个命令的一个命令行参数。
find . -mtime - -type f -print

用来查找过去24小时(-mtime –2则表示过去48小时)内修改过的文件。

如果您想将所有查找到的文件打一个包,则可以使用以下脚本:

#!/bin/sh
# The ticks are backticks (`) not normal quotes ('):
tar -zcvf lastmod.tar.gz `find . -mtime - -type f -print`
  • 通常用" [ ] "来表示条件测试。注意这里的空格很重要。要确保方括号的空格。
[ -f "somefile" ]

判断是否是一个文件

[ -x "/bin/ls" ] 

判断/bin/ls是否存在并有可执行权限

[ -n "$var" ]

判断$var变量是否有值

[ "$a" = "$b" ]

判断$a和$b是否相等

[ -r "$mailfolder" ]
判断$mailfolder是否可读
[ -d $TARGET_DIR ]
判断$TARGET_DIR是否是一个文件夹
  • 特殊的变量$1,该变量包含了传递给该程序的第一个参数值。
  • $? :是上一条命令的返回码。
[ $? -eq  ]
测试上一条命令的是否执行成功.
  • 特殊的变量$*,该变量包含了所有输入的命令行参数值。
  • 特殊的变量$#,表示命令参数个数。
  • 转义字符——反斜杆(\)。在向程序传递任何参数之前,程序会扩展通配符和变量。这里所谓扩展的意思是程序会把通配符(比如*)替换成合适的文件名,把变量替换成变量值。为了防 止程序作这种替换,您可以使用引号单引号更严格一些,它可以防止任何变量扩展;双引号可以防止通配符扩展但允许变量扩展;还有一种防止这种扩展的方法,那就是使用转义字符——反斜杆(\)。

shell脚本编写步骤及其常用命令和符号的更多相关文章

  1. Shell脚本基础及基本常用命令

    1.概述 脚本语言(shell.python):解释性语言,用解释器解释 运行效率低 | c.java:描述性语言,运行效率高 以.sh结尾会有高亮显示 执行: sh hello.sh 或者 chmo ...

  2. shell脚本编写方法

    shell脚本编写就如同一门语言,涉及到运行环境.基本语法.变量定义.函数.参数(系统参数).条件判定.执行流程控制 等等问题. 本文就以下几个方面进行描述: 运行环境: shell  shebang ...

  3. Shell awk文本处理,shell脚本编写

    Shell awk文本处理,shell脚本编写 一:内容包含awk.变量.运算符.if多分支 <a>语法糖: awk [options] 'commands' files option - ...

  4. shell脚本编写自动启动服务方法

    shell脚本编写自动启动服务方法 前言 ln :创建连接文件 默认创建的是硬连接,好比复制 ,但是两个文件会同步命令:ln ./java/android/aa.txt aaa s :创建的是软连接变 ...

  5. 7. Shell 脚本编写

    一.Shell 脚本编写 1.提示用户输入一个字符串,如果是 hello,打出 yes,并每秒输出 "hello,world",否则就输出 no,实现如下: #!/bin/bash ...

  6. Linux Shell脚本入门--wget 命令用法详解

    Linux Shell脚本入门--wget 命令用法详解 wget是在Linux下开发的开放源代码的软件,作者是Hrvoje Niksic,后来被移植到包括Windows在内的各个平台上.它有以下功能 ...

  7. 基于数组的shell脚本编写

    基于数组的shell脚本编写 2017年08月17日 22:56:36 momokuku123 阅读数:369 数据:变量,文件,数组 变量:存储单个元素的内存中的一块存储空间 数组:存储多个元素的内 ...

  8. Linux Shell脚本入门--cut命令

    Linux Shell脚本入门--cut命令 cut cut 命令可以从一个文本文件或者文本流中提取文本列. cut语法 [root@www ~]# cut -d'分隔字符' -f fields &l ...

  9. shell脚本中判断上一个命令是否执行成功

    shell脚本中判断上一个命令是否执行成功 shell中使用符号“$?”来显示上一条命令执行的返回值,如果为0则代表执行成功,其他表示失败.结合if-else语句实现判断上一个命令是否执行成功. 示例 ...

随机推荐

  1. canvas画时钟,重拾乐趣!

    canvas时钟--效果图 一.先来简单介绍画时钟需要的canvas知识 1.在HTML页面中添加canvas元素,必须定义canvas元素的id属性值以便接下来的调用. HTML代码: <ca ...

  2. 最新虚拟机SAP ECC6.0 EHP7带示例数据IDES版+BW740

    学习SAP,需要虚拟机,请联系QQ:858-048-581 版本:ECC6.0 EHP7.虚拟机操作系统:windows server 2008 64bit..数据库:SQL2008 R2.系统已经做 ...

  3. 规范 : angular ui router path & params

    在seo文章中提到url的path 必须是 why-us,而不是whyUS 所以定了规范,所有的path 必须why-us path ?后尾的是用来filter的,所以可以WhyUs 如果是不需要给s ...

  4. C# .NET更智能的数据库操作的封装

    前述: 对数据库操作的封装,相信网络上已经有一大堆,ORM框架,或者是.NET本身的EF,都很好的支持数据库操作.这篇文章是分享自己所思考的,对数据库操作的简单封装.我对于这篇文章,认为被浏览者所关注 ...

  5. java 类与类之间的关系 及uml图

    类与接口之间的关系 : 继承 类与类之间的关系 :继承关系  包含关系 类与对象之间的关系 : 实例 UML 类图中类与类之间的关系: 泛化关系(generalization) 关联关系(associ ...

  6. java基础:学员状态查询

    package kaoshi; /* * 学员状态查询 * @作者:向往的生活 * @时间:2017.3.7 */ import java.util.Scanner; public class Stu ...

  7. JavaScript学习12 JS中定义对象的几种方式【转】

    avaScript学习12 JS中定义对象的几种方式 转自:  http://www.cnblogs.com/mengdd/p/3697255.html JavaScript中没有类的概念,只有对象. ...

  8. KoaHub.js -- 基于 Koa.js 平台的 Node.js web 快速开发框架之koahub

    Installation $ npm install koahub Use with koa   var app = require('koa')();   var router = require( ...

  9. CCF2013123最大的矩形(C语言版)

    问题描述 在横轴上放了n个相邻的矩形,每个矩形的宽度是1,而第i(1 ≤ i ≤ n)个矩形的高度是hi.这n个矩形构成了一个直方图.例如,下图中六个矩形的高度就分别是3, 1, 6, 5, 2, 3 ...

  10. Android -- 自定义ScrollView实现放大回弹效果

    1,刚刚在别人开源的项目中看到了一个挺不错的用户体验,效果图如下: 2,那下面我们就来实现一下,首先看一下布局,由于一般只是我们包含头像的那部分方法,所以这里我们要把布局分成两部分,对应的布局文件效果 ...