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. wppay免登录付费查看隐藏内容/付费资源下载

    WPPAY是一款模板兔开发的免登录的付费查看内容/付费下载资源WordPress插件,WPPAY不需要用户注册登录即可支付查看隐藏内容,把整个流程做到极简.发布文章时要隐藏的内容可以利用短代码: [w ...

  2. RocketMQ之消息中间件需要解决的问题

    消息中间件需要解决哪些问题 1.Publish/Subscribe(发布订阅) 发布订阅是消息中间件最基本的功能 2.Message Priority(消息优先级) 在消息队列中,每条消息都有不同的优 ...

  3. javascirpt之 this、apply、call、bind

    this.apply.call.bind 这又是一个面试经典问题~/(ㄒoㄒ)/~~也是 ES5中众多坑中的一个,在 ES6 中可能会极大避免 this 产生的错误,但是为了一些老代码的维护,最好还是 ...

  4. 第九课: - 导出到CSV / EXCEL / TXT

    第 9 课 将数据从microdost sql数据库导出到cvs,excel和txt文件. In [1]: # Import libraries import pandas as pd import ...

  5. css3伸缩布局中justify-content详解

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. RecyclerView实现终极画廊效果 中间突出并且压住两侧布局

    先给大家上个gif 要不然下面很枯燥 忘记原来在哪里看到了..... 这个效果我找了NNNNNN长时间,,,我认为凭我现在的能力 写出来需要好久 所以 退而求其次找大神写好的... 你们不要小看了这个 ...

  7. date 格式化

    以这个为例:    yyyy-MM-dd HH:mm:ss 首先得写好你需要的模板 options.sign = options.sign || 'yyyy-MM-dd HH:mm:ss'; 其次就可 ...

  8. 2nd

    Java语言基础(常量的概述和使用) A:什么是常量 在程序执行的过程中其值不可以发生改变 B:Java中常量的分类 字面值常量 自定义常量(面向对象部分讲) C:字面值常量的分类 字符串常量 用双引 ...

  9. 函数GROUP_CONCAT

    这不得不说是mysql中一个特别好用的函数,之前生写这种确实好麻烦..感谢mysql有了这么好的函数..嘿嘿 举个例子吧. s_student 表 stuinfo表 sql如下: ok,简单粗暴,就这 ...

  10. 01--Qt扫盲篇

    Qt扫盲篇 1.What is Qt 一个跨平台应用程序和UI开发框架,主要偏向于UI框架方面,由诺基亚公司开发维护. 使用 Qt 只需一次性开发应用程序,无须重新编写源代码,便可跨不同桌面和嵌入式操 ...