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. nginx.conf完整配置实例

        #user nobody; worker_processes 1;   #error_log logs/error.log; #error_log logs/error.log notice; ...

  2. php 租房子(练习题)

    一.题目要求 1.功能描述   出租房屋数据管理及搜索页面 2.具体要求 (1) 创建数据库HouseDB,创建表House,要求如下: 二.题目做法 1.建立数据库 2.封装类文件 <?php ...

  3. 2017-2-23 C#基础 中间变量

    用中间变量做这个题 1."请输入年份:"(1-9999) "请输入月份:"(1-12) "请输入日期:"(要判断大小月,判断闰年) 判断输入 ...

  4. SVN服务搭建

    yum方式搭建: 1,安装SVN服务端 直接用apt-get或yum安装subversion即可(当然也可以自己去官方下载安装) sudo apt-get install subversion 2,创 ...

  5. MySQL备份说明

    第一次发布博客,发现目录居然不会生成,后续慢慢熟悉博客园的设置.回正文--- 1 使用规范 1.1 实例级备份恢复 使用innobackupex,在业务空闲期执行,考虑到IO影响及 FLUSH TAB ...

  6. mysql 安装及卸载 主从配置

    1.查询rpm -qa | grep mysql* 组件 出现类似安装包 mysql-server-5.1.71-1.el6.x86_64 mysql-libs-5.1.71-1.el6.x86_64 ...

  7. 免费企业ERP系统OA+ERP

    AIO5基于B/S架构而研发,集成了OA(办公自动化).SCM(供应链管理).FM(财务管理)三大主力单元.支持手机APP. 协助中小型企业全面管理采购.销售业务, 规范仓库进出,处理与合作伙伴的往来 ...

  8. 关于 myBatis 中的 jdbcType的细节问题

    前几天上线了一个 版本,第二天到公司的时候,在cat上发现了一个长sql查询非常耗时,几乎把线上的项目搞崩溃了.我马上开始排查问题.最终发现 球队的ID传过来的时候是String 类型的,但是在执行s ...

  9. 【曝】苹果应用商店逾千款iOS应用存安全漏洞

    据国外网站Ibtimes报道,知名网络安全公司FireEye日前警告称,由于一款名为“JSPatch”.可帮助开发者修改应用程序的软件上存在安全漏洞,导致苹果应用商店内1000多款使用了该框架的iOS ...

  10. 初探LVS NAT与DR

    1. LB.LVS介绍LB集群是load balance 集群的简写,翻译成中文就是负载均衡集群 LVS是一个实现负载均衡集群的开源软件项目 LVS架构从逻辑上可分为调度层(Director).ser ...