第一章 基础

shell的优势在于处理操作系统底层的业务,
Python,php的优势在于开发运维工具,web界面的管理工具以及web业务开发。
处理一键安装、优化、报警脚本
shell又叫命令解释器,它能识别用户输入的各种命令,并传递给操作系统,
Linux系统默认的shell是bash。

脚本的建立:
    脚本开头第一行  #!/bin/bash 或 #!/bin/sh
#!又称为幻数,在执行bash脚本的时候,内核会根据“#!后的解释器来确定该用哪个程序解释脚本中的内容
如果不设置,则为系统默认的解释器(为bash)
后面的行有#!表示注释。
用  bash test.sh  执行

脚本注释:
    跟在#后面内容表示注释,对脚本进行说明。
    用:<<BLOCK         BLOCK结构注释,注释内容比较长时避免每一行都要写#
    将BLOCK之间的代码重定向到一个不存在的命令,从而实现了多行注释。
    
脚本执行:
    当shell脚本以非交互方式(文件方式)运行时,会先查找环境变量ENV中的内容,该变量制定了一个环境文件(通常是.bashrc   .bash_profile  /etc/bashrc  /etc/profile等),然后从该环境变量文件开始执行,当读取了ENV文件后,shell才开始执行shell脚本中的内容。
crond 任务时把系统环境变量在脚本中重新定义!
shell脚本的执行通常可以采用以下三种方式:
    1、bash script-name 或 sh script-name
    2、path/script-name 或 ./script-name(当前路径下执行脚本)
    3、source script-name 或 . script-name
 执行说明:
第一种方法是当前脚本没有可执行权限时使用的方法
第二种需要先将脚本文件的权限改为可执行权限(chmod u+x script-name 或 chmod 755 script-name)
第三种方法是使用source或“.”点号读入或加载指定的脚本文件然后,依次执行指定shell脚本的中的所有语句。

这种方法可以将执行脚本中的变量和函数带到当前的shell中
类似于函数调用,脚本第二行应该写source或 . (而不是bash)则可以嵌套调用
步骤:
    在vim /etc/init.d/functions里面可以自己写函数
    own(){
    echo"hhhh"
    }
    然后在3.sh 里面写
    #!/bin/sh
    source /etc/init.d/functions
    own
    
    然后执行3.sh (输入命令sh 3.sh) 则结果为hhhh
    
#[]中括号两端要有空格[ hhhhh ]

脚本参数:
    $n 表示传递给脚本的第n个参数,即$1表示第一个参数。
    $# 命令行参数的个数(不包括$0,即排除脚本的名称)
    $0 当前脚本的名称
    $* 以参数1 参数2 ……的形式返回所有参数的值
    $@ 以参数1,参数2,……的形式返回所有参数的值
    $_ 保存之前执行的命令的最后一个数
    另外,用户传递的参数数量多于9个时,不能使用$10来引用第10个参数,应先保存$1的值,然后使用shift命令删除参数1,此时$10就变成了$9,$#的值将被更新以反应参数的剩余数量。

Linux系统shell编程自学_第一章基础的更多相关文章

  1. 《openssl编程》:第一章基础知识

    第一章 基础知识 1.1 对称算法 对称算法使用一个密钥.给定一个明文和一个密钥,加密产生密文,其长度和明文大致相同.解密时,使用读密钥与加密密钥相同. 对称算法主要有四种加密模式: (1) 电子密码 ...

  2. 【Hadoop离线基础总结】linux的shell编程

    linux的shell编程 基本了解 概述 Shell是一个用C语言编写的程序,通过shell用户可以访问操作系统内核服务,它类似于DOS下的command和后来的cmd.exe.Shell既是一种命 ...

  3. linux及安全《Linux内核设计与实现》第一章——20135227黄晓妍

    <linux内核设计与实现>第一章 第一章Linux内核简介: 1.3操作系统和内核简介 操作系统:系统包含了操作系统和所有运行在它之上的应用程序.操作系统是指整个在系统中负责完成最基本功 ...

  4. Linux 下shell 编程学习脚手架

    linux body { font-family: Helvetica, arial, sans-serif; font-size: 14px; line-height: 1.6; padding-t ...

  5. Linux下Shell编程

    Linux的shell编程 1.什么是shell? 当一个用户登录Linux系统之后,系统初始化程序init就为每个用户执行一个称为shell(外壳)的程序. shell就是一个命令行解释器,它为用户 ...

  6. ArcGIS for Desktop入门教程_第一章_引言 - ArcGIS知乎-新一代ArcGIS问答社区

    原文:ArcGIS for Desktop入门教程_第一章_引言 - ArcGIS知乎-新一代ArcGIS问答社区 1 引言 1.1 读者定位 我们假设用户在阅读本指南前应已具备以下知识: · 熟悉W ...

  7. .Neter玩转Linux系列之四:Linux下shell介绍以及TCP、IP基础

    基础篇 .Neter玩转Linux系列之一:初识Linux .Neter玩转Linux系列之二:Linux下的文件目录及文件目录的权限 .Neter玩转Linux系列之三:Linux下的分区讲解 .N ...

  8. .net架构设计读书笔记--第一章 基础

    第一章 基础 第一节 软件架构与软件架构师  简单的说软件架构即是为客户构建一个软件系统.架构师随便软件架构应运而生,架构师是一个角色. 2000年9月ANSI和IEEE发布了<密集性软件架构建 ...

  9. Laxcus大数据管理系统2.0(2)- 第一章 基础概述 1.1 基于现状的一些思考

    第一章 基础概述 1.1 基于现状的一些思考 在过去十几年里,随着互联网产业的普及和高速发展,各种格式的互联网数据也呈现爆炸性增长之势.与此同时,在数据应用的另一个重要领域:商业和科学计算,在各种新兴 ...

随机推荐

  1. hadoop安装和配置

    这里只是涉及了hadoop的一些思路,所以完全分布式配置文件并没有哦!以后会把详细的配置过程和使用环境补充在另外一篇博客中 hadoop的安装: --------------------------- ...

  2. @EnableAsync annotation metadata was not injected

    [问题描述] @EnableAsync annotation metadata was not injected spring配置初始化时候报错 nested exception is java.la ...

  3. PHP连接LDAP进行登录验证

    基于安全性考虑,准备把PHP做的自动化平台加入ldap登录验证,具体做法如下: 了解背景: LDAP 的全称是"轻量级目录访问协议(Lightweight Directory Access ...

  4. video 在微信中,安卓全屏和ios上如何内联播放?H5同层播放器相关接入规范

    今天在做一个分享页面的时候需要播放视屏用了video,然后各种坑开始了: <video src="http://xxx.mp4 " id="myVideo" ...

  5. C# 的基本数据类型

    bool System.Boolean 4Byte 32bit布尔型变量 逻辑值,true或者false,默认值为false byte System.Byte 1Byte 8bit无符号整数无符号的字 ...

  6. WebAPI 实现前后端分离

    随着Web技术的发展,现在各种框架,前端的,后端的,数不胜数.全栈工程师的压力越来越大. 现在的前端的框架,既可以做各种Web,又可以做各种APP,前端框架更新换代越来越快,越来越多. 传统的模式 前 ...

  7. 【三十】php之PDO抽象层

    1.PDO介绍(php data object) PHP 数据对象 (PDO) 扩展为PHP访问数据库定义了一个轻量级的一致接口. PDO 提供了一个数据访问抽象层,这意味着,不管使用哪种数据库,都可 ...

  8. centos 6 网卡名称修改

    centos6 中网卡的名字有时不是eth0,这时就会带来诸多不便,为此需要修改网卡的名称. 修改网卡名称vim /etc/sysconfig/network-scripts/ifcfg-eno167 ...

  9. 【ASP.NET Core】在Win 10 的 Linux 子系统中安装 .NET Core

    在上一篇文章中,老周扯了一下在 Windows 10 中开启 Linux 子系统,并且进行了一些简单的设置.本篇咱们就往上面安装 .net core . 老周假设你从来没有用过 Linux,所以,接着 ...

  10. ThreadPoolExecutor的分析(二)

    说明:本作者是文章的原创作者,转载请注明出处:本文地址:http://www.cnblogs.com/qm-article/p/7859620.html 内部类Worker的分析 从源码可知.该内部类 ...