不奢望岁月静好 只希望点滴积累

0%

无意中发现idea的版本更新到2019.2了、我上次更新的时候是2019.1
闲来无事想玩儿下新版本、就升级了下、

官网下载

https://www.jetbrains.com/idea/download/#section=mac

安装

Mac安装很简单、dmg双击 -> 导入原配置文件 -> 破解(https://www.jianshu.com/p/1f2596084784)

很麻溜的操作完、点击运行、傻了 … 居然跑不起来

搜索、可以借鉴

https://www.jianshu.com/p/1f2596084784
https://blog.csdn.net/weixin_40866404/article/details/80192780
… 类似文章很多、发现都不好使😔

胡思乱想

突然想到之前有篇idea破解的文章、可以让 idea 从命令行启动、查看错误提示

惊喜~

idea启动.png

1处是 idea 启动的jvm参数
2、3是启动过程中发生的错误

可以看到、一共是两个错误: 1.gc文件找不到、2.jvm启动参数给的有问题

正常情况下是不会发生这种问题的、纯属自作孽🤷‍♀️、
1.之前调过idea的jvm启动参数、都给成1300了、不知道为什么xms的值变成了-Xmx1024m、可能是多版本混合装了、某一个版本修改了默认值
2.为了看idea运行过程中gc的情况、将gc写入文件、删垃圾文件的时候又手残删掉了😭

借以给小伙伴儿们一点儿提示、万一遇到idea无法启动的问题、可以试试从命令行启动、看下错误日志

任何从命令行启动idea

应用程序 -> idea -> 右键 -> 显示包内容 -> Contents -> MacOS -> 双击 idea

有钱的小伙伴请支持原装正版。。。

  1. 下载idea
    https://www.jetbrains.com/idea/download/
  1. 下载破解jar包
    https://pan.baidu.com/s/18Guu4-X5RwGifELcHkOyiA
  2. 3版本使用 【仔细查看readme有惊喜^.^】
    链接: https://pan.baidu.com/s/17Sk2w3kJ6KdFs3S9pNPCAw 提取码: ivv3

3.启动idea -> 试用模式
configuration | help -> edit customer vm options
添加 -javaagent 参数

1
-javaagent:/Users/nj/package/jetbrains-agent.jar
  1. 重启idea

  2. help -> register

    1
    3AGXEJXFK9-eyJsaWNlbnNlSWQiOiIzQUdYRUpYRks5IiwibGljZW5zZWVOYW1lIjoiaHR0cHM6Ly96aGlsZS5pbyIsImFzc2lnbmVlTmFtZSI6IiIsImFzc2lnbmVlRW1haWwiOiIiLCJsaWNlbnNlUmVzdHJpY3Rpb24iOiIiLCJjaGVja0NvbmN1cnJlbnRVc2UiOmZhbHNlLCJwcm9kdWN0cyI6W3siY29kZSI6IklJIiwiZmFsbGJhY2tEYXRlIjoiMjA4OS0wNy0wNyIsInBhaWRVcFRvIjoiMjA4OS0wNy0wNyJ9LHsiY29kZSI6IkFDIiwiZmFsbGJhY2tEYXRlIjoiMjA4OS0wNy0wNyIsInBhaWRVcFRvIjoiMjA4OS0wNy0wNyJ9LHsiY29kZSI6IkRQTiIsImZhbGxiYWNrRGF0ZSI6IjIwODktMDctMDciLCJwYWlkVXBUbyI6IjIwODktMDctMDcifSx7ImNvZGUiOiJQUyIsImZhbGxiYWNrRGF0ZSI6IjIwODktMDctMDciLCJwYWlkVXBUbyI6IjIwODktMDctMDcifSx7ImNvZGUiOiJHTyIsImZhbGxiYWNrRGF0ZSI6IjIwODktMDctMDciLCJwYWlkVXBUbyI6IjIwODktMDctMDcifSx7ImNvZGUiOiJETSIsImZhbGxiYWNrRGF0ZSI6IjIwODktMDctMDciLCJwYWlkVXBUbyI6IjIwODktMDctMDcifSx7ImNvZGUiOiJDTCIsImZhbGxiYWNrRGF0ZSI6IjIwODktMDctMDciLCJwYWlkVXBUbyI6IjIwODktMDctMDcifSx7ImNvZGUiOiJSUzAiLCJmYWxsYmFja0RhdGUiOiIyMDg5LTA3LTA3IiwicGFpZFVwVG8iOiIyMDg5LTA3LTA3In0seyJjb2RlIjoiUkMiLCJmYWxsYmFja0RhdGUiOiIyMDg5LTA3LTA3IiwicGFpZFVwVG8iOiIyMDg5LTA3LTA3In0seyJjb2RlIjoiUkQiLCJmYWxsYmFja0RhdGUiOiIyMDg5LTA3LTA3IiwicGFpZFVwVG8iOiIyMDg5LTA3LTA3In0seyJjb2RlIjoiUEMiLCJmYWxsYmFja0RhdGUiOiIyMDg5LTA3LTA3IiwicGFpZFVwVG8iOiIyMDg5LTA3LTA3In0seyJjb2RlIjoiUk0iLCJmYWxsYmFja0RhdGUiOiIyMDg5LTA3LTA3IiwicGFpZFVwVG8iOiIyMDg5LTA3LTA3In0seyJjb2RlIjoiV1MiLCJmYWxsYmFja0RhdGUiOiIyMDg5LTA3LTA3IiwicGFpZFVwVG8iOiIyMDg5LTA3LTA3In0seyJjb2RlIjoiREIiLCJmYWxsYmFja0RhdGUiOiIyMDg5LTA3LTA3IiwicGFpZFVwVG8iOiIyMDg5LTA3LTA3In0seyJjb2RlIjoiREMiLCJmYWxsYmFja0RhdGUiOiIyMDg5LTA3LTA3IiwicGFpZFVwVG8iOiIyMDg5LTA3LTA3In0seyJjb2RlIjoiUlNVIiwiZmFsbGJhY2tEYXRlIjoiMjA4OS0wNy0wNyIsInBhaWRVcFRvIjoiMjA4OS0wNy0wNyJ9XSwiaGFzaCI6IjEyNzk2ODc3LzAiLCJncmFjZVBlcmlvZERheXMiOjcsImF1dG9Qcm9sb25nYXRlZCI6ZmFsc2UsImlzQXV0b1Byb2xvbmdhdGVkIjpmYWxzZX0=-WGTHs6XpDhr+uumvbwQPOdlxWnQwgnGaL4eRnlpGKApEEkJyYvNEuPWBSrQkPmVpim/8Sab6HV04Dw3IzkJT0yTc29sPEXBf69+7y6Jv718FaJu4MWfsAk/ZGtNIUOczUQ0iGKKnSSsfQ/3UoMv0q/yJcfvj+me5Zd/gfaisCCMUaGjB/lWIPpEPzblDtVJbRexB1MALrLCEoDv3ujcPAZ7xWb54DiZwjYhQvQ+CvpNNF2jeTku7lbm5v+BoDsdeRq7YBt9ANLUKPr2DahcaZ4gctpHZXhG96IyKx232jYq9jQrFDbQMtVr3E+GsCekMEWSD//dLT+HuZdc1sAIYrw==-MIIElTCCAn2gAwIBAgIBCTANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDDA1KZXRQcm9maWxlIENBMB4XDTE4MTEwMTEyMjk0NloXDTIwMTEwMjEyMjk0NlowaDELMAkGA1UEBhMCQ1oxDjAMBgNVBAgMBU51c2xlMQ8wDQYDVQQHDAZQcmFndWUxGTAXBgNVBAoMEEpldEJyYWlucyBzLnIuby4xHTAbBgNVBAMMFHByb2QzeS1mcm9tLTIwMTgxMTAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5ndaik1GD0nyTdqkZgURQZGW+RGxCdBITPXIwpjhhaD0SXGa4XSZBEBoiPdY6XV6pOfUJeyfi9dXsY4MmT0D+sKoST3rSw96xaf9FXPvOjn4prMTdj3Ji3CyQrGWeQU2nzYqFrp1QYNLAbaViHRKuJrYHI6GCvqCbJe0LQ8qqUiVMA9wG/PQwScpNmTF9Kp2Iej+Z5OUxF33zzm+vg/nYV31HLF7fJUAplI/1nM+ZG8K+AXWgYKChtknl3sW9PCQa3a3imPL9GVToUNxc0wcuTil8mqveWcSQCHYxsIaUajWLpFzoO2AhK4mfYBSStAqEjoXRTuj17mo8Q6M2SHOcwIDAQABo4GZMIGWMAkGA1UdEwQCMAAwHQYDVR0OBBYEFGEpG9oZGcfLMGNBkY7SgHiMGgTcMEgGA1UdIwRBMD+AFKOetkhnQhI2Qb1t4Lm0oFKLl/GzoRykGjAYMRYwFAYDVQQDDA1KZXRQcm9maWxlIENBggkA0myxg7KDeeEwEwYDVR0lBAwwCgYIKwYBBQUHAwEwCwYDVR0PBAQDAgWgMA0GCSqGSIb3DQEBCwUAA4ICAQBonMu8oa3vmNAa4RQP8gPGlX3SQaA3WCRUAj6Zrlk8AesKV1YSkh5D2l+yUk6njysgzfr1bIR5xF8eup5xXc4/G7NtVYRSMvrd6rfQcHOyK5UFJLm+8utmyMIDrZOzLQuTsT8NxFpbCVCfV5wNRu4rChrCuArYVGaKbmp9ymkw1PU6+HoO5i2wU3ikTmRv8IRjrlSStyNzXpnPTwt7bja19ousk56r40SmlmC04GdDHErr0ei2UbjUua5kw71Qn9g02tL9fERI2sSRjQrvPbn9INwRWl5+k05mlKekbtbu2ev2woJFZK4WEXAd/GaAdeZZdumv8T2idDFL7cAirJwcrbfpawPeXr52oKTPnXfi0l5+g9Gnt/wfiXCrPElX6ycTR6iL3GC2VR4jTz6YatT4Ntz59/THOT7NJQhr6AyLkhhJCdkzE2cob/KouVp4ivV7Q3Fc6HX7eepHAAF/DpxwgOrg9smX6coXLgfp0b1RU2u/tUNID04rpNxTMueTtrT8WSskqvaJd3RH8r7cnRj6Y2hltkja82HlpDURDxDTRvv+krbwMr26SB/40BjpMUrDRCeKuiBahC0DCoU/4+ze1l94wVUhdkCfL0GpJrMSCDEK+XEurU18Hb7WT+ThXbkdl6VpFdHsRvqAnhR2g4b+Qzgidmuky5NUZVfEaZqV/g==
  3. 注意:
    1) 破解文件的权限需要给到777
    2) 移除hosts里边关于jetbrains的信息

如果上述方法不行、试试:
https://www.cnblogs.com/dfsu/p/11362594.html

19.3版本
https://zhile.io/2018/08/17/jetbrains-license-server-crack.html

还烦请小伙伴儿们在经济允许的条件下多多支持正版 ~~

command + D 垂直拆分面板
command + shift + D 水平拆分面板
command + w 关闭当前面板
command + ] 多个面板间切换
command + shift + enter 最大化当前面板 | 还原

上标: 2<sup>m-1</sup> 2m-1
下标: H<sub>2</sub>O H2O
颜色: red
目录:[toc] 简书不支持
表格:

1
2
3
4
5
|星期|1|2|3|4|5|6|7|
|---|---|---|---|---|---|---|---|
|早餐|香蕉牛奶燕麦粥|皮蛋瘦肉粥|蜂蜜小蛋糕|灌汤包|南瓜饼|肉末蛋羹|豆浆油条|
|中餐|爆炒鸡肝|笋干炒肉|箩卜炒肉|剁椒鱼头|葱油蛏子|风味蹄筋|珍珠丸子|
|晚餐|牛肉砂锅|虾皮炒海带|牛肉炒西芹|芝麻豆腐|香菇炒肉|土豆丝饼|叉烧肉|

效果
|星期|1|2|3|4|5|6|7|
|—|—|—|—|—|—|—|—|
|早餐|香蕉牛奶燕麦粥|皮蛋瘦肉粥|蜂蜜小蛋糕|灌汤包|南瓜饼|肉末蛋羹|豆浆油条|
|中餐|爆炒鸡肝|笋干炒肉|箩卜炒肉|剁椒鱼头|葱油蛏子|风味蹄筋|珍珠丸子|
|晚餐|牛肉砂锅|虾皮炒海带|牛肉炒西芹|芝麻豆腐|香菇炒肉|土豆丝饼|叉烧肉|

1
2
3
4
5
6
7
8
9
10
11
1. add collection 可以理解为一个project
2. add floders 添加目录、可以添加多级、可以理解为多个功能模块
3. add requests 添加请求
4. mock server 作为mock数据的接口、有调用上限
5. runner 可以支持简单压测
6. environment 支持分组(dev/test/prod 环境区分、每个分组下支持多个变量)
7. globals 全局变量、会在每个请求中添加
8. view in web / publish 支持发布、共享
9. history 支持浏览记录查看
10. 文档说明支持markdown格式
11. monitor 服务性能监控

文件参考

https://crifan.github.io/api_tool_postman/website/

https://blog.csdn.net/water_0815/article/details/53326990

https://blog.csdn.net/ruanhao1203/article/details/79096279

https://www.cnblogs.com/qiaoyeye/p/5524750.html

https://blog.csdn.net/cloud_huan/article/details/78326159

https://www.jianshu.com/p/12185c5dc120

https://juejin.im/entry/5a32a7e86fb9a0452a3c5b97

https://blog.csdn.net/testdeveloper/article/details/80679988

安装postman插件

1
https://www.jianshu.com/p/451e0d009304

常用功能使用

1
https://www.jianshu.com/p/15f8dfaaecef

生成sign签名

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
1. 编写脚本 
以order项目为例(下边sign.js)


2. 在请求中添加脚本
managerEnvirenment -> add -> sign (值可以随便给、这个是用来给postman使用的、在发送请求时会替换为计算出来的sign值)
如下图所示


3. 发送请求、可以发现签名是ok的


4. 如果发现签名不对、可以调试脚本
在chrome地址栏中输入:chrome://flags/#debug-packed-apps ,开启Debugging for packed app
输入chrome://inspect/#apps,选择postman的inspect 会弹出调试框

在弹出的调试框里、选择elements在下边可以看到console
可以查看签名的方式是否正确(配合idea调试、对比签名方式和签名结果)
idea调试:以debug模式运行、
在指定合适的位置打断点、代码逻辑运行到断点处即会被中断掉、可以进行单步调试~~
查找问题出现的原因

sign.js

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
var appkey = '6615be7b44ca4ab9ac03060088202792'; // 自动化测试的key
//获取当前时间
function createTime() {
return (new Date()).valueOf();
}
var time = createTime();
var method = request.method;
delete request.data["sign"];
console.log("request data is : " + request.data);
var keys = Object.keys(request.data), i, len = keys.length;
keys.sort();
console.log("sortedKeys is : " + keys)
// Build the request body string from the Postman request.data object
var requestBody = "";
var firstpass = true;

// 构造数据为 key=param&key=param....字符串
for(var index in keys){
if (keys[index] == "sign") {
continue;
}
if(!firstpass){
requestBody += "&";
}

if(keys[index]=="create_time"){
request.data[keys[index]]=time;
console.log(request.data[keys[index]]);
}
requestBody += keys[index] + "=" + request.data[keys[index]];
firstpass = false;
}
requestBody += '&key=' + appkey;
console.log("request body is : " + requestBody);

var md5=CryptoJS.MD5(requestBody, appkey);
var base64md5 = CryptoJS.enc.Base64.stringify(md5);
console.log(base64md5);
postman.setEnvironmentVariable('sign', base64md5); // 将变量放入postman 变量中;

图一、添加postman环境变量
image.png
image.png
image.png

图二、postman脚本调试
image.png
image.png
image.png

  • vim中文乱码 set fileencodings=utf-8
  • 十六进制显示 :!xxd
  • 十六进制显示, n个字节为一组 :!xxd -g n
  • n,m 行复制到x行之后 :n,m co x
  • n,m 行移动到x行之后 :n,m m x
  • 一批id、组装成SQL
    :%s/^/select field from table where id=/g
  • vim匹配指定模式删除 :g/pattern/d
  • vim删除非指定模式的行 :v/pattern/d or :g!/pattern/d
  • 包含指定字符的个数 :%s/pattern//gn
  • 忽略大小写查找 `/

tab 插入子主题
shift + enter 当前主题之前插入主题
enter 当前主题之后插入主题
command + B 插入外框
option + enter 插入标注
command + ] 插入概要
command + L 插入联系
command + i 插入图片

AWK 多个分隔符

1
awk -F '[sep1|sep2]' '{print $0}'

删除文件中包含指定字符串的行

1
2
3
sed -e '/abc/d'  a.txt  > a.log   // 删除a.txt中含"abc"的行,将操作之后的结果保存到a.log

sed '/abc/d;/efg/d' a.txt > a.log    // 删除含字符串"abc"或“efg"的行,将结果保存到a.log

替换指定字符串

1
2
sed -i 's/reg/replace/g' 将reg替换为replcace
eg. sed -i "s/aaa/bbb/g" /tmp/1/tmp/1 文件中的a替换为b

截取n到m列

1
2
3
4
5
6
7
8
9
10
11
12
13
head -3 /tmp/3 | cut -d'sep' -f 2,7
-d 指定分隔符
-f 指定截取列

cut 常用参数
-d :分隔符 ( --delimiter 按照指定分隔符分割列 )
-b : 表示字节
-c : 表示字符
-f : 表示字段(列号) ( --field 提取第几列 )
N- : 从第N个字节、字符、字段到结尾
N-M : 从第N个字节、字符、字段到第M个
-M : 从第一个字节、字符、字段到第M
eg. head -3 /tmp/3 | cut -c1-3 截取字符串第13

diff 文件差异

1
2
3
4
5
6
7
8
1. comm 命令(需要先进行文件排序 sort file1 )
comm -23 file1 file2 > /tmp/1 得到只在file1、不在file2中的数据
-1 不显示只在第1个文件里出现过的列。
-2 不显示只在第2个文件里出现过的列。
-3 不显示只在第1和第2个文件里出现过的列。
2. diff 命令
3. sort 命令
sort file2 file1 file1 | uniq -u > /tmp/1

字符串截取

${string: start :length} 左边开始计数
${string: start :length} 右边开始计数

二进制文件查看

xxd -b file

  1. insert.. select
    eg. insert into tb1 select * from tb2 ;

  2. create … like
    eg. create tb1 like tb2;

  3. 查看所有库中包含指定字段的所有表

    1
    2
    3
    4
    select * from information_schema where column_name='xxx';

    -- 指定db
    select * from information_schema where column_name='xxx' and table_schema='xxdb';
  4. 批量修改表字段类型

    1
    2
    3
    4
    5
    select CONCAT('alter table  ',TABLE_SCHEMA,'.',TABLE_NAME,'  
    modify `', COLUMN_NAME, '` bigint(20) ',
    ' default ', COLUMN_DEFAULT, ' COMMENT '' , COLUMN_COMMENT, '';')
    from information_schema.COLUMNS
    where COLUMN_NAME = 'first_order_id';