好脑子不如烂笔头-Linux/Mac/服务器开发
工作中的琐碎问题解决方法,总是记不住? 是的你没必要都记着啊 做个烂笔头文章记录下来 。
运维方法篇
Unix系统工具篇
-
Mac zsh: command not found zsh 所有命令在终端失效
**多半是你修改PATH**的环境变量导致的PATH=/bin:/usr/bin:/usr/local/bin:${PATH} export PATH
-
看端口号使用占用情况
netstat netstat -tunlp
用于显示 tcp,udp 的端口和进程等相关情况。
-t (tcp) 仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化为数字
-l 仅列出在Listen(监听)的服务状态
-p 显示建立相关链接的程序名 -
配置bash 展示分支版本号
function git-branch-name { git symbolic-ref --short -q HEAD 2>/dev/null } function git-branch-prompt { local branch=`git-branch-name` if [ $branch ]; then printf " %s" $branch; fi } #PS1="\u \[\033[0;36m\]\W\[\033[0m\]\[\033[0;32m\]\$(git-branch-prompt)\[\033[0m\] \$ "
-
vim的查找与替换
查找
在normal模式下按下**/即可进入查找模式,输入要查找的字符串并按下回车。 Vim会跳转到第一个匹配。按下n查找下一个**,按下N查找上一个。
默认情况下查找是大小写敏感的,选择大小写不敏感可以用 \c
例如: 查找 userId 大小写不敏感/userId\c
替换
在normal模式下按以下操作进行查找和替换。:{作用范围}s/{目标}/{替换}/{替换标志} 例如:%s/foo/bar/gc 会在全局范围(%)查找foo并替换为bar,所有出现都会被替换(g)替换前要求确认。
作用范围
:s 当前行内查找 “: 注意应为无空格"
:%s 全文查找
:’<,’>s 选区范围内
:5,12s 5-12行内查找
:.,+2s 当前行往后2行
替换标志
g即是替换标志之一,表示全局global替换
空替换标志表示只替换从光标位置开始,目标的第一次出现
i表示大小写不敏感查找,I表示大小写敏感
:%s/foo/bar/i
# 等效于模式中的\c(不敏感)或\C(敏感)
c表示需要确认,例如全局查找"foo"替换为"bar"并且需要确认
:%s/foo/bar/gc
5.目录文件大小查看
du -h --max-depth=0 *
Mac的一些工具
待更新
数据库篇
1、mysql数据存储表情
1)、数据库连接配置
<property name="connectionProperties" value="useUnicode=true;characterEncoding=utf8;connectTimeout=5000;socketTimeout=60000;autoReconnect=true;failOverReadOnly=false"/>
<property name="connectionInitSqls" value="set names utf8mb4"/>
2)、数据表设置:
ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
压测
AB
- 安装AB
sudo yum -y install httpd
- 命令格式
命令参数详解ab -order param "host:port/path" 例如: ab -n 1000 -c 200 "请求路径“ -n 请求的总次数 -c 并发数
* -n 测试会话中所执行的请求个数,默认仅执行一个请求 * -c 一次产生的请求个数,即同一时间发出多少个请求,默认为一次一个 * -t 测试所进行的最大秒数,默认为无时间限制....其内部隐含值是[-n 50000],它可以使对服务器的测试限制在一个固定的总时间以内 -p 包含了需要POST的数据的文件 -P 对一个中转代理提供BASIC认证信任。用户名和密码由一个:隔开,并以base64编码形式发送。无论服务器是否需要(即, 是否发送了401认证需求代码),此字符串都会被发送。 * -A 对服务器提供BASIC认证信任。用户名和密码由一个:隔开,并以base64编码形式发送。无论服务器是否需要(即,是否发送了401认证需求代码),此字符串都会被发送。 -T POST数据所使用的Content-type头信息 * -v 设置显示信息的详细程度-4或更大值会显示头信息,3或更大值可以显示响应代码(404,200等),2或更大值可以显示警告和其他信息。 * -q 如果处理的请求数大于150,ab每处理大约10%或者100个请求时,会在stderr输出一个进度计数。此-q标记可以抑制这些信息。 -w 以HTML表格的形式输出结果,默认是白色背景的两列宽度的一张表 -i 执行HEAD请求,而不是GET。 -x 设置<table>属性的字符串,此属性被填入<table 这里> -y 设置<tr>属性的字符串 -z 设置<td>属性的字符串 * -C 对请求附加一个Cookie行,其典型形式是name=value的参数对,此参数可以重复 -H 对请求附加额外的头信息,此参数的典型形式是一个有效的头信息行,其中包含了以冒号分隔的字段和值的对(如"Accept-Encoding: zip/zop;8bit") -X 对请求使用代理服务器 * -k 启用HTTP KeepAlive功能,即在一个HTTP会话中执行多个请求,默认为不启用KeepAlive功能 -d 不显示"percentage served within XX [ms] table"的消息(为以前的版本提供支持) -S 不显示中值和标准背离值,且均值和中值为标准背离值的1到2倍时,也不显示警告或出错信息,默认会显示最小值/均值/最大值等(为以前的版本提供支持) * -g 把所有测试结果写入一个'gnuplot'或者TSV(以Tab分隔的)文件 * -e 产生一个以逗号分隔的(CSV)文件,其中包含了处理每个相应百分比的请求所需要(从1%到100%)的相应百分比的(以微妙为单位)时间 -h 显示使用方法/帮助信息。 -V 显示版本号并退出
正则表达式
Java正则找手机号
找是否含有 13~19开头的手机号
// 正则 解读: 手机号前后不允许有数字
// String patternRegex = "[0-9]*[1][3-9][0-9]{9}[0-9].";
// 只要文档中存在1 开头的11位数就算手机号
String patternRegex = “.[1][3-9][0-9]{9}.”;
Pattern pattern = Pattern.compile(patternRegex);
Matcher matcher = pattern.matcher(otherContent);
if(matcher.lookingAt()) {
“请不要输入手机号”
}