分类 小技巧 下的文章

浏览器的一些小技巧

Firefox

Network filter
# 黑名单
domain:www.baidu.com regexp:^.*([^\.js|\.png|\.css|\.jpg])$

#白名单
domain:www.biadu.com regexp:^.*?(\.jsp|\.action|\.do)(\?){0,1}.*$

过滤掉 js/png/css/jpg 文件和非 www.baidu.com 的 URL 请求

Linux BASH 下的一些小技巧

  1. 列出当前各文件或目录的大小, M 是显示的单位 (K,M,G,T,P)
`for i in *; do du -B M -s $i; done #不满 1M 按 1M 算`
  1. 统计 Apache 访问 IP 以及资源处理时间, $1 是第一列,$NF是最后一列,-n 是按数值排序, -n 是反序, -k 是第几列
awk '{print $1,$NF}' apache.log | sort -t " " -n -r -k 2 | head -n 10
  1. 挂载 NTFS 分区
mount.ntfs-3g /dev/sdb1 /var/directory
  1. 多文件遍历查询内容
find ./ | grep .yml | xargs grep -n mysql

Win-Dos 下的一些杂七杂八的小技巧

总结了一下在开发中 "可能会" 经常用到的命令行下的小技巧, mark 一下避免忘记, 不定期更新

把 DOS 默认的 GBK 编码更改为 utf-8.
保存为 utf-8 编码的文件在 cmd 中 type 之后中文会呈现出乱码状态, 所以要把默认的 gbk 更改为 utf-8

chcp 65001 #使用这条命令更改 cmd 的页面显示编码

然后修改窗口属性, 将字体修改为 "Lucida Console" 即可
修改完毕后 type 文件可以看到中文正常显示, 但是这个页面友好度可以说非常蛋痛, 目前还没有良好的解决方案

在目标文件夹内查找某文件里是否包含某内容
开发中总是要涉及很多文件,每个文件各自和其他文件都有着千丝万缕的关系,
在前端中, 使用 AJAX 调试接口时总会使用一个专用的测试账号来调试.
当调试完毕后,"常常" 会忘掉把测试账号删掉, 那么在产品上线的时候就会搞出一个 "大新闻",
避免这种情况发生, 需要遍历每一个文件来对比是否包含测试账号.

for /R %i in (*.html) do (
    @echo [+]=========== %i ========= && @type %i | find /N /I "测试用户"
)
for /D %i in (if_*) do (
    @echo [+]=========== %i ========= && @type %i\a.js | find /N /I "测试用户"
)

第一条指令跟第二条区别不是很大, 第一条指代的是所有 .html 格式的文件,
第二条则加上了区分, 只有 if_ 开头的文件夹下的 a.js 才会参与到遍历中来.
第一条适用于整个项目的遍历, 第二条则是某小范围下的有条件的遍历.

AWVS 10.5 批量单线程扫描脚本

@echo off
setlocal enabledelayedexpansion
for /f %%i in (F:\workspace\target.csv) do (
    set urlvar=%%i
    set host=!urlvar:~7!
    for /f "tokens=1 delims=/" %%j in ("!host!") do (
        set domain=%%j
    )
    echo ^[^+^] ===== %%i ===== && wvs_console.exe /Scan %%i /Profile default /SaveFolder "F:\workspace\result\!domain!\" /Save /ExportXML
)

:exit
echo ^[^+^] Scan Done.

需要扫描的目标保存在 F:\workspace\target.csv 中, 按行分割, 每行一条 URL, 格式如下:

http://site1
https://site2/subsite/

扫描结果会保存在 F:\workspace\result 下, 以域名为文件夹, 保存了扫描日志和扫描结果以及 awvs 项目文件.