vim入门教程
1 键盘图
2 vim/vi工作模式
(1)命令模式用户刚刚启动 vi/vim,便进入了命令模式。
此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i被当作了一个命令。
以下是常用的几个命令:
i 切换到输入模式,以输入字符。
x 删除当前光标所在处的字符。
: 切换到底线命令模式,以在最底一行输入命令。
dd,按两下d,表示剪切这一行内容
p,表示将剪切的内容粘贴到这一行
gg,跳转到文本的第一行
G/shift + g,跳转到文本的最后一行
0/home,在当前行按下0,光标跳转到当前行的第一个字符
shift + 4/end,快速跳转到当前行的最后一个字符
若想要编辑文本:启动Vim,进入了命令模式,按下i,切换到输入模式。
命令模式只有一些最基本的命令,因此仍要依靠底线命令模式输入更多命令。
(2)输入模式在命令模式下按下i就进入了输入模式。
在输入模式中,可以使用以下按键:
字符按键以及Shift组合,输入字符
ENTER,回车键,换行
BACK SPACE,退格键,删除光 ...
bug错误排查手册
1 前提技术(1)工具使用
sublime
sublime教程/正则表达式语法
Linux
ansible
ansible快速上手教程
vim
vim入门教程
命令
在线查看命令解释
Linux命令大全
grep
查看日志:grep {search pattern} {dictory} | grep {search pattern} | grep {search pattern} | ...,可以不断的进行过滤
1# grep 'search pattern' /data/nginx/logs/example.com/app/Common.log.2021072616 | grep 'xxx'
find
curl(或者使用postman工具)
发送请求
网络相关
Charles(ios手机https抓包)
常见HTTP错误代码
git
git入门教程
postman
发送请求:get、post等
...
ansible入门快速上手使用教程
1 安装ansiblecentos安装:
1234# yum -y install epel-release //更新本地安装库# yum list all *ansible* //查看相应的版本# yum info ansible //查看ansible的信息# yum install ansible //开始安装
2 ansible的配置文件
/etc/ansible/ansible.cfg 主配置文件
/etc/ansible/hosts Inventory
/usr/bin/ansible-doc 帮助文件
/usr/bin/ansible-playbook 指定运行任务文件
3 定义一个Linux集群组(1)修改/etc/ansible/hosts123456789# cd /etc/ansible/# cp hosts{,.bak}# > hosts# cat hosts[webserver ...
使用Charles抓抓包,抓取IOS设备的请求(http/https)
1 Charles安装下载连接:https://www.charlesproxy.com/download/
破解Charles:
点击【Help】->【Register】,输入以下代码即可:
Registered Name : https://zhile.io
License Key:48891cf209c6d32bf4
2 HTTP抓包(1)查看电脑IP地址
(2)设置手机HTTP代理手机连上电脑,点击“设置->无线局域网->连接的WiFi”,设置HTTP代理:服务器为电脑IP地址:如192.168.1.169端口:8888
设置代理后,需要在电脑上打开Charles才能上网。(因为手机的所有请求必须走Charles转发,这也是Charles能抓包的原理,即利用中间人代理)
(3)电脑上打开Charles进行HTTP抓包手机上打开某个App或者浏览器什么的,如果不能上网,检查前面步骤是否正确。
点击“Allow”允许,出现手机的HTTP请求列表。抓包案例如下:
3 HTTPS抓包HTTPS的抓包需要在HTTP抓包基础上再进行设置。
如果不设置HTTPS ...
HTTP请求的常见错误代码
1**-消息
这一类型的状态码,代表请求已被接受,需要继续处理。这类响应是临时响应,只包含状态行和某些可选的响应头信息,并以空行结束。由于HTTP/1.0协议中没有定义任何1xx状态码,所以除非在某些试验条件下,服务器禁止向此类客户端发送1xx响应。这些状态码代表的响应都是信息性的,标示客户应该等待服务器采取进一步行动。
100 Continue:服务器已经接收到请求头,并且客户端应继续发送请求主体(在需要发送身体的请求的情况下:例如,POST请求),或者如果请求已经完成,忽略这个响应。服务器必须在请求完成后向客户端发送一个最终响应。要使服务器检查请求的头部,客户端必须在其初始请求中发送Expect: 100-continue作为头部,并在发送正文之前接收100 Continue状态代码。响应代码417期望失败表示请求不应继续。
101 Switching Protocols:服务器已经理解了客户端的请求,并将通过Upgrade消息头通知客户端采用不同的协议来完成这个请求。在发送完这个响应最后的空行后,服务器将会切换到在Upgrade消息头中定义的那些协议。
只有在切换 ...
理解restful协议
越来越多的人开始意识到,网站即软件,而且是一种新型的软件。
这种”互联网软件”采用客户端/服务器模式,建立在分布式体系上,通过互联网通信,具有高延时(high latency)、高并发等特点。
网站开发,完全可以采用软件开发的模式。但是传统上,软件和网络是两个不同的领域,很少有交集;软件开发主要针对单机环境,网络则主要研究系统之间的通信。互联网的兴起,使得这两个领域开始融合,现在我们必须考虑,如何开发在互联网环境中使用的软件。
RESTful架构,就是目前最流行的一种互联网软件架构。它结构清晰、符合标准、易于理解、扩展方便,所以正得到越来越多网站的采用。
但是,到底什么是RESTful架构,并不是一个容易说清楚的问题。下面,我就谈谈我理解的RESTful架构。
一、起源REST这个词,是Roy Thomas Fielding在他2000年的博士论文中提出的。
Fielding是一个非常重要的人,他是HTTP协议(1.0版和1.1版)的主要设计者、Apache服务器软件的作者之一、Apache基金会的第一任主席。所以,他的这篇论文一经发表,就引起了关注,并且立即对互联网开发 ...
使用postman卡顿,切换窗口之后在切换回来卡顿现象
1 操作修改C:\Users\{user-name}\AppData\Roaming\Postman\storage这个文件夹的名字或者直接删除,然后重启postman即可。
2 参考https://learnku.com/articles/53569
https://github.com/postmanlabs/postman-app-support/issues/4687#issuecomment-727541426
写在最后欢迎大家关注鄙人的公众号【麦田里的守望者zhg】,让我们一起成长,谢谢。
php中isset的empty区别?
1 错误在PHP中,经常会有需要判断某些变量是否为空的情况,这个时候,PHP中有两个函数可供使用:
isset:判断变量的变量值是否已经设置
empty:判断当前变量是否为空
这里需要注意,当使用empty的时候,如果这个变量的值为0,系统也会认为这个变量为空。如果想要使用避免一些错误,应该明白这个时候的逻辑到底是什么。建议使用isset代替empty。
我需要判断当data数组中的a变量为空的时候,就输出错误信息,但是我的这个a变量本身的值有可能是0,导致我在这个问题上纠结了很久,最后通过测试,发现了问题,然后我使用isset代替了empty,但是还是不行。
123if (empty($data['a'])) { //即使a不为空,也会进入到这个里面 return \Fam\Api\Api::fail('error');}
123if (isset($data['a'])) { //即使a不为空,也会进入到这个里面 return \Fam\Api\Api::fail('e ...
php显示时间的时区设置
1 date在PHP中,有一个系统函数:date(),该函数可以用来获取时间和日期,但是默认情况下不是显示的北京时间,所以需要进行一个时区的设置。设置方法如下:
(1) 方法1能正常显示,但是会报警告。
123456date.date_default_timezone_set("PRC");echo date("Y年m月d日 H:i:s");echo "<br/>";echo time();echo "<br/>";echo microtime();
(2) 方法2可以正常显示。
1234567<?phpini_set('date.timezone','PRC');echo date("Y年m月d日 H:i:s");echo "<br/>";echo time();echo "<br/>";echo microtime();
写在最后欢迎大家关注鄙 ...
php的关键语法介绍
1 变量(1)变量123$x; //不指定初始值$x = 1; //执行初始值 //php中的变量不需要特别执行变量的类型,有解析器自动识别
(2)常量12345678910<?php//1.使用define()函数声明//define("常量名",常量值),这里需要注意,使用define定义常量时,需要使用双引号,否则会有提示警告define(PI, 3.14);echo PI;echo "<br/>";//2.使用const关键字定义const PIS = 3.14;echo PIS;echo "<br/>";
(3)变量作用域
全局变量:只允许再全局空间再被访问,也就是说再函数内部不能被访问
局部变量:只允许再函数内部被访问
如果想要再函数内部访问全局变量
12345678910111213141516171819// 1.全局空间存在该变量<?php$a = 123;function test(){ global $a; echo $a; ...