CSS3的基础选择器有哪些
标签选择器
类选择器
为标签设置class属性,通过 .类名 的方式设置CSS样式。
123456789101112131415<!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> .red { color: red; } </style> </head> <body> <div class="red">码农浅知-高质量码农编程学习笔记</div> </body></html>
id选择器
为标签设置id属性,通过 #id名 的方式设置CS ...
实际工作中通过Shell脚本判断远程计算机的存活状态
案例需求
通过脚本判断远程计算机的存活状态
脚本应用场景
1、通过监控平台调用监控脚本对服务器进行监控
2、机器扫描
解决问题
1、运维人员实时掌控机器的状态,防止宕机或者由于压力过大造成请求处理延时,保障业务的稳定、高效运行
脚本思路
1、通过ICMP协议的ping命令ping目标主机
网络延迟,假报警如何解决?
2、分析ping结果
3、给出结论
全部ping结果为假,报宕机全部ping成功,报正常否则报警告
实现代码
123456789101112131415161718192021222324252627282930313233#!/bin/bash#1、ping 目标主机三次,并接收每次的状态值,ping成功返回1,不成功返回0for ((i=1;i<4;i++));do#测试代码 if ping -c1 $1 &>/dev/null;then #分析结果 export ping_count"$i"=1 else export ping_count"$i" ...
CSS3新增的3种选择器学习总结
属性选择器
属性选择器可以根据元素特定的属性来选择元素,这样就可以不借助类选择器或id选择器。
123456789E[att] —— 选择具有att属性的网页元素。E[att="val"] —— 选择具有att属性且属性值**等于**val的网页元素。E[att^="val"] —— 匹配具有att属性且属性值以val**开头**的网页元素。E[att$="val"] —— 匹配具有att属性且属性值以val**结尾**的网页元素。E[att*="val"] —— 匹配具有att属性且属性值**含有**val的网页元素。
示例
12345678910111213141516171819202122232425262728293031323334353637<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta ...
编程中常用的数据库与数据库管理系统浅析
数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今六十多年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据管理不再仅仅是存储和管理数据,而转变成用户所需要的各种数据管理的方式。数据库有很多种类型,从最简单的存储有各种数据的表格到能够进行海量数据存储的大型数据库系统都在各个方面得到了广泛的应用。
在信息化社会,充分有效地管理和利用各类信息资源,是进行科学研究和决策管理的前提条件。数据库技术是管理信息系统、办公自动化系统、决策支持系统等各类信息系统的核心部分,是进行科学研究和决策管理的重要技术手段。
数据库管理系统
1、数据存储方式
计算机数据(Data)的存储一般以硬盘为数据存储空间资源,从而保证计算机内的数据能够持续保存。对于数据的处理,一般会采用数据库相关的技术进行处理,从而保证数据处理的高效性。
采用数据库的管理模式不仅提高了数据的存储效率,而且在存储的层面上提高了数据的安全性。通过分类的存储模式让数据管理更加安全便捷,更能实现对数据的调用和对比,并且方便查询等操作的使用。
2、数据库管理系统
常见的数据库管理系统:
MyS ...
Shell脚本中函数的定义和使用保姆级教学
shell脚本中的代码是按照执行的优先级的顺序从上往下抒写的,代码量越大,在脚本调试的时候就越难排错,当因执行需要调整代码执行顺序的时候就需要不断的复制粘贴,或者删除部分代码来完成,这和从写一个脚本花费的时候相比甚至需要更长的时间。
代码量大后遇到的问题:
单个脚本代码量大 (300-500行)阅读修改耗时费力排错困难改变执行顺序困难
为了解决这些问题,我们可以把代码模块化,按需调用。
函数-函数介绍
shell中允许将一组命令集合或语句形成一段可用代码,这些代码块称为shell函数。给这段代码起个名字称为函数名,后续可以直接调用该段代码的功能。
将完成一个功能的一段代码进行命名、封装
函数的优点:
代码模块化,调用方便,节省内存
代码模块化,代码量少,排错简单
代码模块化,可以改变代码的执行顺序
函数-函数定义
1234567891011#语法一:函数名 () { 代码块 return N}语法二:function 函数名 { 代码块 return N}
函数中return说明:1.return可以结束 ...
Shell脚本中if表达式的用法深入理解
if高级用法
1、条件符号使用双圆括号,可以在条件中植入数学表达式 if (())
12345678#!/bin/bashif (( (5+5-5)*5/5 > 10 )) then echo "yes"else echo "no"fi
2、使用双方括号,可以在条件中使用通配符
通过代码看下 ,为字符串提供高级功能,模式匹配 r* 匹配r开头的字符串
123456789#!/bin/bashfor var in ab ac rx bx rvv vt do if [[ "$var" == r* ]] then echo "$var" fidone
简写if
省去了关键字,条件为真采用&&符号链接命令块,条件为假采用||链接命令块
简写if一般用在简单的判断中
123456789101112131415161718if [ ! -d /tmp/baism ] then mkdir / ...
Shell脚本中数组的介绍定义以及赋值方法学习
有这样一个现实问题:一个班级学员信息系统,要求存储学员ID、NAME、SCORE、AGE、GENDER,班级有50个人,思考如何解决交互中数据存储的问题。很多人可能直接说或定义变量接收数据不就行了!nice,你很棒!!解决方案如下:1)每个学生通过5个变量,一个班级50个学生,5*50=250,妥妥的!我定义250个变量接收就可以了,美美哒!
兄弟,现在不是全班了是全校的学生需要录入你这个信息系统,你写变量吧!!当我提出这个需求的时候,作为开发你会不会想骂娘呢?
2)使用数组来定义,我只需要定义5个数组来接收所有用户的数据就可以了,5个数组就能解决一切,你觉得你会不会想了解下数组是什么呢?
数组介绍
数组可以让用户一次赋予多个值,需要读取数据时只需通过索引调用就可以方便读出了。
普通数组:只能使用整数作为数组索引(元素的索引)关联数组:可以使用字符串作为数组索引(元素的索引)
数组定义
1数组名称=(元素1 元素2 元素3 ...)
数组赋值方式
一次附一个值
1234#变量名=变量值array[0]=v1array[1]=v2array[3]=v3
一次附 ...
Shell脚本特性脚本构成脚本语法详解
编程语言介绍
编程语言是指计算机能理解的语言,人类通过使用计算机语言可以给计算机批量下达任务,让其按照人类的思想去完成工作。最常见的语言有:汇编语言、C语言、java语言、php语言、Python语言、golang语言等等。
编程语言分类:
编译型语言
程序在执行之前需要一个专门的编译过程,把程序编译成为机器语言文件,运行时不需要重新翻译,直接使用编译的结果就行了。程序执行效率高,依赖编译器,跨平台性差些。如C、C++、java
解释型语言
程序不需要编译,程序在运行时由解释器翻译成机器语言,每执行一次都要翻译一次。因此效率比较低。比如Python/JavaScript/ Perl /ruby/Shell等都是解释型语言。
shell介绍
shell在计算机中起到什么作用呢?为什么要求shell呢,我们可以看看计算机操作系统的组成:
看图之前问大家个问题,两个人在电话聊天:只会说法语的法国人,只会说汉语的你。如何沟通呢?
请个翻译在你两中间
同理,系统内核只知道二进制
如果你想给计算机内核下任务,让其驱动硬件干活,那么有两种选择
...
Nginx性能调优压缩缓存并发优化学习
调优的必要性
在聊调优之前,我们先要知道为何调优,业务运行和调优的关系。
业务运行:线上业务正常运行,承载了公司业务。监控业务:通过监控业务对线上业务进行监控,及时发现问题。优化业务:通过监控分析,发现业务问题或者瓶颈,及时对业务或者软件就行调整、优化。测试优化:优化完成后,需要对现有的优化进行测试,保证业务在当前优化模式中稳定、高效,能够解决当前问题。这就是业务运行的一个流程,也是我们保证业务稳定、高效、高可用的运维之道。
调优的维度和见解分歧
调优类的文章是最难写的,因为我只能告诉你调优的选项,无法告诉你具体的阈值,因为不同的业务运行在不同的机器,所消耗的资源是不同的;又因为场景不同,对应的调优项及阈值是千变万化的,就好比你和你上铺的兄弟都是感冒了,去医院看病开的药却是截然不同的。正是如此,才会出现当很多人看到调优的文章,看到了具体的调优项或者阈值就会浮现出两个字,我不好意思说,配个图吧!大家意会就好。
并发优化
nginx工作模式:主进程+工作进程
123456789#启动工作进程数量worker_processes 4;#指定运行的核的编号,采用掩码的方式设置编号 ...
Nginx深入学习URL重写方法
URL重写介绍
和apache等web服务软件一样,rewrite的主要功能是实现URL地址的重定向。Nginx的rewrite功能需要PCRE软件的支持,即通过perl兼容正则表达式语句进行规则匹配的。默认参数编译nginx就会支持rewrite的模块,但是也必须要PCRE的支持。
Rewrite功功能是Nginx服务器提供的一个重要功能。几乎是所有的web产品必备技能,用于实现URL重写。URL重写是非常有用的功能,比如它可以在我们在改变网站结构后,不需要客户端修改原来的书签,也不需要其他网站修改对我们网站的友情链接,还可以在一定程度上提高网站的安全性,能够让我们的网站显得更专业。
应用场景
域名变更 (京东)
用户跳转 (从某个连接跳到另一个连接)
伪静态场景 (便于CDN缓存动态页面数据)
URL重写原理
URL 模块语法
set 设置变量if 负责语句中的判断return 返回返回值或URLbreak 终止后续的rewrite规则rewrite 重定向URL
set指令 自定义变量
123456789101112Syntax:set $variable valu ...
CSS3的复合选择器详细介绍
后代选择器
后代选择器又称为包含选择器,可以选择父元素中的后代元素。
语法:
元素1 元素2,元素3…元素n { 样式 } —— 选择元素1中 的所有后代元素2、元素3…元素n
123456789101112131415161718<!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> body div, strong { color: red; } </style> </head> <body> <div>码农浅知-高质量码农编程学习笔记</div> <span> ...
Nginx服务器分发轮询算法分析及实战案例分析
分发算法介绍
如何将用户请求按照一定的规律分发给业务服务器。主要分为Nginx集群默认算法和基于请求头分发算法。
nginx集群默认算法
nginx的upstream 目前支持4种方式的分配
轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。用于处理静态页面
weight
指定权重,数值大的服务器,获得的请求的数量越多,用于后端服务器性能不均的情况。用于处理静态页面
ip_hash
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务,好处是可以解决session的问题。可以处理动态网站。
url_hash(第三方)
按访问url的hash结果来分配请求,使每个url定向到同一个后端服务 ,后端服务器为缓存时比较有效。
nginx有很多第三方模块,各位可以去下载使用
1https://www.nginx.com/resources/wiki/modules/
nginx业务服务器状态
每个设备的状态设置参数:
down
表示当前的server暂时不参与负载;
weight
默认为1, ...