Linux系统shell编程自学_第一章基础
第一章 基础
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编程自学_第一章基础的更多相关文章
- 《openssl编程》:第一章基础知识
第一章 基础知识 1.1 对称算法 对称算法使用一个密钥.给定一个明文和一个密钥,加密产生密文,其长度和明文大致相同.解密时,使用读密钥与加密密钥相同. 对称算法主要有四种加密模式: (1) 电子密码 ...
- 【Hadoop离线基础总结】linux的shell编程
linux的shell编程 基本了解 概述 Shell是一个用C语言编写的程序,通过shell用户可以访问操作系统内核服务,它类似于DOS下的command和后来的cmd.exe.Shell既是一种命 ...
- linux及安全《Linux内核设计与实现》第一章——20135227黄晓妍
<linux内核设计与实现>第一章 第一章Linux内核简介: 1.3操作系统和内核简介 操作系统:系统包含了操作系统和所有运行在它之上的应用程序.操作系统是指整个在系统中负责完成最基本功 ...
- Linux 下shell 编程学习脚手架
linux body { font-family: Helvetica, arial, sans-serif; font-size: 14px; line-height: 1.6; padding-t ...
- Linux下Shell编程
Linux的shell编程 1.什么是shell? 当一个用户登录Linux系统之后,系统初始化程序init就为每个用户执行一个称为shell(外壳)的程序. shell就是一个命令行解释器,它为用户 ...
- ArcGIS for Desktop入门教程_第一章_引言 - ArcGIS知乎-新一代ArcGIS问答社区
原文:ArcGIS for Desktop入门教程_第一章_引言 - ArcGIS知乎-新一代ArcGIS问答社区 1 引言 1.1 读者定位 我们假设用户在阅读本指南前应已具备以下知识: · 熟悉W ...
- .Neter玩转Linux系列之四:Linux下shell介绍以及TCP、IP基础
基础篇 .Neter玩转Linux系列之一:初识Linux .Neter玩转Linux系列之二:Linux下的文件目录及文件目录的权限 .Neter玩转Linux系列之三:Linux下的分区讲解 .N ...
- .net架构设计读书笔记--第一章 基础
第一章 基础 第一节 软件架构与软件架构师 简单的说软件架构即是为客户构建一个软件系统.架构师随便软件架构应运而生,架构师是一个角色. 2000年9月ANSI和IEEE发布了<密集性软件架构建 ...
- Laxcus大数据管理系统2.0(2)- 第一章 基础概述 1.1 基于现状的一些思考
第一章 基础概述 1.1 基于现状的一些思考 在过去十几年里,随着互联网产业的普及和高速发展,各种格式的互联网数据也呈现爆炸性增长之势.与此同时,在数据应用的另一个重要领域:商业和科学计算,在各种新兴 ...
随机推荐
- CSS3 Media Queries 特性的妙用
第一招: 在网页中,pixel与point比值称为 device-pixel-ratio,普通设备都是1,iPhone 4是2,有些Android机型是1.5. 那么-webkit-min-devic ...
- HashMap分析之红黑树树化过程
概述 HashMap是Java程序员使用频率最高的用于映射(键值对)处理的数据类型.随着JDK(Java Developmet Kit)版本的更新,JDK1.8对HashMap底层的实现进行了优化,例 ...
- 【Python3之函数对象】
函数对象 函数(Function)作为程序语言中不可或缺的一部分,但函数作为第一类对象(First-Class Object)却是 Python 函数的一大特性. 那到底什么是第一类对象(First- ...
- Hadoop源码篇---解读Mapprer源码Input输入
一.前述 上次分析了客户端源码,这次分析mapper源码让大家对hadoop框架有更清晰的认识 二.代码 自定义代码如下: public class MyMapper extends Mapper&l ...
- python如何玩“跳一跳”!(windows安桌版本请进!)
最近"跳一跳",很火爆,有木有? 看了一下网上的教程,动作搭建了一下环境,就可以用脚本自动跑起来啦!!! 下面说一下android手机的实现过程: 首先,是python环境的搭建 ...
- linux下一键安装redis并设置为后台进程及开机启动
1.下载适合你的版本的redis(下载页面https://redis.io/download),我下载的是4.0.6版本 wget http://download.redis.io/releases/ ...
- Java学习笔记26(Math类、Arrays类、BigInteger类、BigDecimal类)
Math类:数学工具类,做一些数学计算,开方,对数,三角函数等 所有方法都是静态方法,不需要建立对象,直接用类名调用即可 示例: 这里写几个在日常开发中会用到的,比如三角函数之类的平时不会用到,了解即 ...
- Nodejs(pkg方式安装)卸载 及命令行模式的重新安装
直接在terminal下运行以卸载node和nvm: sudo rm -rf /usr/local/{bin/{node,npm},lib/node_modules/npm,lib/node,shar ...
- C# Main函数详解
2018-01-15 22:10:59 一.Main()方法的简介 1.唯一性.一般情况下,一个C#可执行程序只有一个Main函数,作为程序入口.但是在某些情况(如单元测试中),程序拥有多个Main ...
- js中常用的操作字符串的方法大全
charCodeAt()返回一个整数,代表指定字符的Unicode编码 fromCharCode()从一些Unicode字符串得到一个字符串 charAt()根据指定下标位置返回对应字符,如果下标超 ...