shell编程

shell编程-服务管理

会有一股神秘感。 提交于 2020-01-30 01:34:49
linux 服务的分类:rpm包默认安装的服务(httpd),源码包安装的服务(tomcat) 查询已安装的服务 rpm包安装的服务 chkconfig --list 查看服务自启动状态,可以看到所有rpm包安装的服务 源码包安装的服务 查看服务安装的位置,一般在/usr/local/下 rpm安装服务和源码包安装服务的区别 rpm安装服务和源码包安装服务的区别就是安装位置的不同 源码包安装在指定的位置,一般是在/usr/local/ rpm包安装在默认位置中 /etc/rc.d/init.d 注意: service命令只能启动rpm包安装的服务,无法启动源码包安装的服务,因为service启动时寻找的目录就是 /etc/rc.d/init.d/ rpm包安装服务的默认位置 /etc/init.d : 启动脚本的位置 /etc/sysconfig/ 初始化环境配置文件位置 /etc/ 配置文件的位置 /etc/xinetd.conf xinetd配置文件 /etc/xinet.d/基于xinetd服务的启动脚本 /var/lib 服务产生的数据放在这里 /var/log/ 日志 独立服务的启动 /etc/init.d/独立服务名 start |stop|status|restart service 独立服务名 start |stop | status| restart

shell视频讲解

爷,独闯天下 提交于 2020-01-29 23:14:39
编程语言: 机器语言 汇编语言 高级语言 高级语言: 静态语言:编译型语言,有一个程序开发环境,不需要借助特定的二进制程序,写完代码需要一个编译器将其直接转换成二进制可以独立运行的。通常都是强类型的语言,强类型通常指的都是变量类型。关键字能直接被编译器转换成二进制码。程序在执行之前就要完全转换成二进制码。(事先转换成可执行格式) c语言、c++、JAVA、c# 强类型:变量在使用前,必须事先声明,甚至还要初始化 动态语言:解释性语言,通常都是弱类型语言。程序只有在一条一条执行的时候才进行转换成二进制码。(边解释边执行) Python、ASP、PHP、shell、perl 弱类型:变量随用随声明,甚至不区分类型。(默认存储都是字符串) 解释器通常都是静态语言开发的 面向对象和面向过程: 面向过程(shell、c):把编程立足点主要在于问题解决的过程本身 面向对象(JAVA、Python):把实现的项目抽象成一个一个的对象,并且定义对象之间的动作来完成的。 变量:内存空间,使用变量名来引用变量的时候叫命名的内存空间 内存是编址的存储单元,每一个字节都有一个全局唯一的地址(物理内存)来找到它。 变量: 存储字符10和存储数值10有什么不同: 字符10:两个ASCⅡ码,一个ASCⅡ占8位,两个占16位。 数值10:转换成二进制位1010,但是最小存储单位是8位。所以就有了变量类型。

shell编程基础

不羁岁月 提交于 2020-01-29 04:30:00
1.1 命名规则 命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。 中间不能有空格,可以使用下划线(_)。 不能使用标点符号。 不能使用bash里的关键字(可用help命令查看保留关键字)。 1.2 使用变量 使用一个定义过的变量,只要在变量名前面加美元符号($)即可 加花括号是为了帮助解释器识别变量的边界,推荐给所有变量加上花括号,这是个好的编程习惯 已定义的变量,可以被重新定义 使用 readonly 命令可以将变量定义为只读变量,只读变量的值不能被改变 使用 unset 命令可以删除变量, 不能删除只读变量 1.3 变量类型 局部变量 局部变量在脚本或命令中定义,仅在当前shell实例中有效,其他shell启动的程序不能访问局部变量 环境变量 所有的程序,包括shell启动的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行。必要的时候shell脚本也可以定义环境变量。 shell变量 shell变量是由shell程序设置的特殊变量。shell变量中有一部分是环境变量,有一部分是局部变量,这些变量保证了shell的正常运行 1.4 Shell字符串 字符串是shell编程中最常用最有用的数据类型(除了数字和字符串,也没啥其它类型好用了),字符串可以用单引号,也可以用双引号,也可以不用引号。单双引号的区别跟PHP类似 字符串的拼接 获取字符串长度 echo

模块二、shell脚本逻辑结构

核能气质少年 提交于 2020-01-29 01:19:23
七、if结构条件句知识与实践 (一)if条件句单双分支语法 1、单分支 if 条件 then 指令 fi 2、双分支 if 条件 then 指令 else 指令集2 fi (二)if条件句多分支语句 if 条件1 then 指令1 elif 条件2 then 指令2 elif 条件3 then 指令3 else 指令4 fi 实例: 如果不存在目录/backup,则创建。 [root@centos6-kvm3 scripts]# cat 07-01.sh #!/bin/bash path="/backup" [ -d $path ] || mkdir $path -p if [ -d $path ] then : else mkdir $path -p fi if [ !-d $path] then mkdir $path -p fi [root@centos6-kvm3 scripts]# 开发shell脚本判断内存是否充足,如果小于100,提示不足,如果大于100提示充足。 [root@centos6-kvm3 scripts]# cat 07-02.sh #!/bin/bash mem=`free -m | awk 'NR==3{print $NF}'` if [ $mem -lt 100 ] then echo "内存不充足!" else echo "内存充足!" fi

Linux Shell常用技巧(五)

不打扰是莪最后的温柔 提交于 2020-01-28 19:25:40
十一. awk编程: 1. 变量: 在awk中变量无须定义即可使用,变量在赋值时即已经完成了定义。变量的类型可以是数字、字符串。根据使用的不同,未初始化变量的值为0或空白字符串" ",这主要取决于变量应用的上下文。下面为变量的赋值负号列表: 符号 含义 等价形式 = a = 5 a = 5 += a = a + 5 a += 5 -= a = a - 5 a -= 5 *= a = a * 5 a *= 5 /= a = a / 5 a /= 5 %= a = a % 5 a %= 5 ^= a = a ^ 5 a ^= 5 /> awk '$1 ~ /Tom/ {Wage = $2 * $3; print Wage}' filename 该命令将从文件中读取,并查找第一个域字段匹配Tom的记录,再将其第二和第三个字段的乘积赋值给自定义的Wage变量,最后通过print命令将该变量打印输出。 /> awk ' {$5 = 1000 * $3 / $2; print}' filename 在上面的命令中,如果$5不存在,awk将计算表达式1000 * $3 / $2的值,并将其赋值给$5。如果第五个域存在,则用表达式覆盖$5原来的值。 我们同样也可以在命令行中定义自定义的变量,用法如下: /> awk -F: -f awkscript month=4 year=2011

Linux Shell常用技巧(五)

ⅰ亾dé卋堺 提交于 2020-01-28 04:53:15
十一. awk编程: 1. 变量: 在awk中变量无须定义即可使用,变量在赋值时即已经完成了定义。变量的类型可以是数字、字符串。根据使用的不同,未初始化变量的值为0或空白字符串" ",这主要取决于变量应用的上下文。下面为变量的赋值负号列表: 符号 含义 等价形式 = a = 5 a = 5 += a = a + 5 a += 5 -= a = a - 5 a -= 5 *= a = a * 5 a *= 5 /= a = a / 5 a /= 5 %= a = a % 5 a %= 5 ^= a = a ^ 5 a ^= 5 /> awk '$1 ~ /Tom/ {Wage = $2 * $3; print Wage}' filename 该命令将从文件中读取,并查找第一个域字段匹配Tom的记录,再将其第二和第三个字段的乘积赋值给自定义的Wage变量,最后通过print命令将该变量打印输出。 /> awk ' {$5 = 1000 * $3 / $2; print}' filename 在上面的命令中,如果$5不存在,awk将计算表达式1000 * $3 / $2的值,并将其赋值给$5。如果第五个域存在,则用表达式覆盖$5原来的值。 我们同样也可以在命令行中定义自定义的变量,用法如下: /> awk -F: -f awkscript month=4 year=2011

shell脚本-编程原理

北城以北 提交于 2020-01-26 04:23:47
1、 shell脚本语言介绍 优点:调用os(操作系统)的命令行,来实现所有功能 缺点:没有库调用(区分python) 变量:全局变量、局部变量、本地变量、传参   /etc/shells/ --查看当前系统支持的shell程序   echo $SHELL -- 查看当前会话的shell程序   /etc/passwd -- 制定了用户默认支持的shell程序 shell的执行: 1)bash命令来执行脚本 -n 查看shell脚本的逻辑错误(单词查不出) -x 逐行显示执行的脚本程序(方便排错) 2)授权 chmod +x filename.sh 使用全路径执行脚本,即可./filename.sh 2、变量 环境变量($HOME、$SHELL、) 局部变量 declare命令 -- 定义变量类型 本地变量 local在函数中使用 变量类型: 数值型:int 整型、浮点型(float)、布尔值(true/false) 字符串: 1)普通字符及字符串 2)数组 编程语言的分类: 强类型语言 -- 数值必须被定义,才能进行处理或运算 弱类型语言 -- 编程语言可以自动识别变量类型 【多态--一个数据具有多个属性,而最后使用的属性取决于和他进行运算事物数据】 传参 $? ---上一条命令执行状态(0 正确 1-255错误) $1 $2 .. ${10} --- 命令后面传入脚本的数据

SHELL基础

时间秒杀一切 提交于 2020-01-23 22:59:30
Shell对于运维人员的重要性 Linux 在服务器上的应用非常广泛,可以用来搭建Web服务器、数据库服务器、负载均衡服务器(CDN)、邮件服务器、DNS服务器、反向代理服务器、VPN服务器、路由器等。用 Linux 作为服务器系统不但非常高效和稳定,还不用担心版权问题,不用付费 正是由于 Linux 服务器的大规模应用,才需要一批专业的人才去管理,这群人就是 Linux 运维工程师(OPS)。 OPS 的主要工作就是搭建起运行环境,让程序员写的代码能够高效、稳定、安全地在服务器上运行,他们属于后勤部门。OPS 的要求并不比程序员低,优秀的 OPS 拥有架设服务器集群的能力,还会编程开发常用的工具。 OPS 这项工作的细节内容包括: 安装操作系统,例如 CentOS、Ubuntu 等。 部署代码运行环境,例如网站后台语言采用 PHP,就需要安装 Nginx、Apache、MySQL、PHP运行时等。 及时修复漏洞,防止服务器被攻击,这包括Linux本身漏洞以及各个软件的漏洞。 根据项目需求升级软件,例如 PHP 7.0 在性能方面获得了重大突破,如果现在服务器压力比较大,就可以考虑将旧版的 PHP 5.x 升级到 PHP 7.0。 监控服务器压力,别让服务器宕机。例如淘宝双十一的时候就会瞬间涌入大量用户,导致部分服务器宕机,网页没法访问,甚至连支付宝都不能使用。 分析日志

shell脚本day03-编程原理

隐身守侯 提交于 2020-01-23 21:35:09
一、编程介绍   (计算机只能识别二进制指令)   早期编程:驱动和硬件默认不能使用,但不同厂家设备之间需要进行指令沟通,我们需要驱动来进行翻译;更趋紧与硬件开发的工程师,要学习汇编语言,而汇编语言被厂家所限制。C,C++的底层就是汇编语言 现在编程基于高级语言,以及超高级语言,更好的让程序员能够实现汇报功能。高级语言、超高级语言需要翻译成计算机可读的语言(二进制指令) 汇编语言的分类 解释型---逐行解释,逐行执行 shell python java 编译型---一次编译,全部行 C C++ C# java 面向对象---侧重于数据的编程语言 面向过程---侧重于指令 编程语言的执行方式:       【按行执行】 顺序执行 循环执行---for(遍历) while(循环条件) until(和while相反) 选择执行---分支 if case 二、shell脚本语言介绍   shell语句是面向过程的,侧重于指令集。     优点:调用os(操作系统)的命令行,来实现所有功能;   缺点:没有库调用(区别于python)   shell语句的基本组成成分: 命令(重点!) 变量(全局变量、局部变量、本地变量) 逻辑关系 数据-变量(转参)   shell没有内嵌函数,没有函数库调用,没有调用库的接口 三、shell的第一句话(重要)    #!/bin/bash /

shell编程之if语句

本小妞迷上赌 提交于 2020-01-22 16:19:07
目录 shell编程之if判断 1.整数比较 2.字符串比较 3.举例 1.数字比较 2.字符串比较 4.Other shell编程之if判断 1.整数比较 -eq 等于,如:if [ "$a" -eq "$b" ] -ne 不等于,如:if [ "$a" -ne "$b" ] -gt 大于,如:if [ "$a" -gt "$b" ] -ge 大于等于,如:if [ "$a" -ge "$b" ] -lt 小于,如:if [ "$a" -lt "$b" ] -le 小于等于,如:if [ "$a" -le "$b" ] < 小于(需要双括号),如:(("$a" < "$b")) <= 小于等于(需要双括号),如:(("$a" <= "$b")) > 大于(需要双括号),如:(("$a" > "$b")) >= 大于等于(需要双括号),如:(("$a" >= "$b")) 2.字符串比较 = 等于,如:if [ "$a" = "$b" ] == 等于,如:if [ "$a" == "$b" ],与=等价 3.举例 1.数字比较 #!/bin/bash i=6 a=10 if [ $a -eq 10 ] then echo "a = 10" fi if [ $a -ne $i ] then echo "a != $i" fi if [ $a -gt $i ] then echo "a