01.学习shell编程需要的知识储备

1.vi、vim编辑器的命令,vimrc设置

2.命令基础,100多个命令

3.基础、高端的网络服务,nfs,rsync,inotify,lanmp,sersync,sshkey批量分发管理

02.shell脚本概念

1.什么是shell

shell是一个命令解释器,在操作系统的最外层,负责直接与用户对话,将用户的输入解释给操作系统,并输出操作系统各种各样的处理结果,输出到屏幕返回给用户。这种对话方式可与是交互式的(键盘输入命令,可以立即得到shell的回应),或者是非交互(脚本)的方式

2.什么是shell脚本

当命令或语句不在命令行中执行,而是通过一个程序文件执行时,该程序就被称为shell程序或shell脚本,shell程序类似Dos下的批处理程序(*.bat)

用户可以在shell脚本中输入一系列的命令或语句。这些命令、变量流程控制语句等有机结合在一起就形成功能强大的shell程序

3.示例

#!/bin/bash
echo "Hello World !"

03.shell程序在运维工作中的地位

shell擅长处理纯文本类型数据,linux中几乎所有配置文件、日志文件(nfs、rsync、httpd、nginx、lvs等)都是纯文本文件。shell脚本在linux中作用巨大

04.shell脚本语言的种类和说明

1.在unix/linux中主要有两大类

Bourne shell (包括sh、ksh、bash):Bourne shell (sh),Kor n shell (ksh),Bourne  Again shell (bash),POSIX shell (sh)

C shell (包括csh、tcsh):C shell,TENEX/TOPS C shell

2.shell脚本语言是弱类型语言,定义变量的时候不需要指定类型,处理的时候如果定义的不对,就会报错。比如让字符串和整型数想加

3.较为通用的shell有标准的Bourne shell(sh)和C shell,其中Bourne shell已被Bourne Again shell(bash)取代

4.shell的优势在于处理操作系统底层的业务(大量命令为它支撑,2000多个命令都是shell支撑)

05.常用操作系统的默认shell

Linux 是 Bourne Again shell (bash)

UNIX:Solaris、FreeBSD 缺省的是Bourne shell (sh),AIX 是Korn shell (ksh) ,HP-UX 是POSIX shell(sh)

查看命令:echo $SHELL(系统变量都是全大写)

06.shell脚本的建立和执行

1.shell脚本(bash shell程序)通常是在编辑器(如vi/vim)中编写,由Unix/linux命令、bash shell命令、程序结构控制语句和注释等内容组成

2.脚本开头第一行

3.shell脚本的执行方式:

1)作为可执行程序

代码保存为test.sh,并cd到相应目录:

chmod +x ./test.sh  #使脚本具有执行权限
./test.sh #执行脚本

注意,一定要写成./test.sh,而不是test.sh,运行其它二进制的程序也一样,直接写test.sh,linux系统会去PATH里寻找有没有叫test.sh的,而只有/bin, /sbin, /usr/bin,/usr/sbin等在PATH里,你的当前目录通常不在PATH里,所以写成test.sh是会找不到命令的,要用./test.sh告诉系统说,就在当前目录找。

2)作为解释器参数

这种运行方式是,直接运行解释器,其参数就是shell脚本的文件名,如:

/bin/sh test.sh

这种方式运行的脚本,不需要在第一行指定解释器信息,写了也没用。

shell编程01—shell基础的更多相关文章

  1. (C#)Windows Shell 编程系列1 - 基础,浏览一个文件夹

    原文 (C#)Windows Shell 编程系列1 - 基础,浏览一个文件夹 (本系列文章由柠檬的(lc_mtt)原创,转载请注明出处,谢谢-) Windows Shell 编程,即 Windows ...

  2. 【Shell编程】Shell程序设计

    1.Shell简介   作为Linux灵感来源的Unix系统最初是没有图形化界面的,所有的任务都是通过命令行来实现的.因此,Unix的命令行系统得到了很大的发展,逐步成为一个功能强大的系统.   Sh ...

  3. 【shell编程】之基础知识-语法

    一.shell变量 1.定义变量 定义变量时,变量名不加美元符号($,PHP语言中变量需要), 如: your_name="runoob.com" 注意,变量名和等号之间不能有空格 ...

  4. 【shell编程】之基础知识了解shell

    一.什么是shell Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁.Shell 既是一种命令语言,又是一种程序设计语言. Shell 是指一种应用程序,这个应用程序提供了 ...

  5. Linux - 简明Shell编程01 - 第一个脚本(HelloShell)

    脚本地址 https://github.com/anliven/L-Shell/tree/master/Shell-Basics 示例脚本及注释 #!/bin/bash echo "hell ...

  6. Shell编程-条件测试 | 基础篇

    什么是Shell Shell是一个命令解释器,它会解释并执行命令行提示符下输入的命令.除此之外,Shell还有另一个功能,如果要执行多条命令,它可以将这组命令存放在一个文件中,然后可以像执行Linux ...

  7. 【shell编程】之基础知识-常用命令

    一.Shell echo命令 Shell 的 echo 指令与 PHP 的 echo 指令类似,都是用于字符串的输出.命令格式: echo string 您可以使用echo实现更复杂的输出格式控制. ...

  8. Linux shell编程02 shell程序的执行 及文件权限

    第一个shell脚本 1.       shell编程的方式 交互式shell编程 非交互式shell编程:执行的语句存放到一个文件 shell脚本:可以任意文件名,建议扩展名为sh 2.       ...

  9. shell编程技术之-基础知识

    一.脚本结构 linux下shell的脚本,是将一系列命令序列写在一个文本文件,而这个文本文件时可执行的.相对命令行来说,开发效率提高.因此他的构架有2部分构成#!和命令序列.其中#!指明此脚本是用哪 ...

随机推荐

  1. Java基础9一面向对象

    继承 1.特点 a) 要有一定的层次结构,并且具备可传递性. b) 判断两者之间是否有继承关系通过is-a来判断. c) 子类继承了父类,那么子类就继承了父类中所有的属性和方法,但是父类中的私有属性和 ...

  2. winform右键菜单

    public partial class Form1 : Form { ContextMenuStrip cms; Bitmap bm ; public Form1() { InitializeCom ...

  3. 项目随笔之springmvc中freemark如何获取项目路径

    转载:http://blog.csdn.net/whatlookingfor/article/details/51538995 在SpringMVC框架中使用Freemarker试图时,要获取根路径的 ...

  4. AndroidStudio/Intellij 快捷键

    说明 三年来一直使用Eclipse作为自己的IDE, 现在是时候走出自己的safety zone, 开始使用传说中的Intellij了. Eclipse/Intellij IDE环境为: OS X 1 ...

  5. span可编辑 属性 html 可编辑td

    <span contenteditable="true">11111111111111111</span> <!DOCTYPE html PUBLIC ...

  6. 认识图片放大工具PhotoZoom的菜单栏

    使用PhotoZoom能够对数码图片无损放大,备受设计师和业内人员的青睐,它的出现时一场技术的革新,新颖的技术,简单的界面,优化的算法,使得它可以对图片进行放大而没有锯齿,不会失真.本文为您一起来认识 ...

  7. JDK源码中的英文注释翻译(Class)

    public final class Class<T> implements java.io.Serializable, GenericDeclaration, Type, Annotat ...

  8. JS 公鸡2文一只、母鸡1文一只、小鸡0.5文一只若一共有100文钱买100只鸡有多少种方法

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  9. mac 安装卸载python

    第 1 步,删除框架: sudo rm -rf /Library/Frameworks/Python.framework/Versions/x.x第 2步,删除应用目录: sudo rm -rf &q ...

  10. Vue学习之路第十八篇:私有过滤器的使用

    1.上篇已经介绍了全局过滤器的使用,“全局”顾名思义就是一次定义处处使用,可以被一个页面里不同的Vue对象所使用,如下代码所示: <body> <div id="app1& ...