0%

用到的一些工具(持续更新)

一些常用的工具放在这里

  1. cloc统计代码行数(apt).

  2. valgrind, 检测c程序内存泄漏

     valgrind --tool=memcheck --leak-check=full --suppressions=vg.supp someprog
    

关于zmq使用的代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
vg.supp
{
<socketcall_sendto>
Memcheck:Param
socketcall.sendto(msg)
fun:send
...
}
{
<socketcall_sendto>
Memcheck:Param
socketcall.send(msg)
fun:send
...
}
  1. tail file.name -f 跟踪文件,查看在文件尾插入日志记录的时候很用。

  2. git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit" git log 别名: git lg

  3. python -m SimpleHTTPServer 8080 python自带的一个很好用的简单web server,我用来做简单的tcp并发测试工作了。参考地址

  4. http_load -p 64 -s 100 -r 10 url,用于http压力测试的工具,简单参数就是这些了,-p表示并发数为64,-s表示测试时间为100s,-r表示每秒测试10个,所以总数就是(-s)100 * (-r)10 = 1000个,url是存放url的文件,里边直接写上要测试的http地址就可以了。

  5. date +%s,显示UNIX时间戳

  6. date --date=@1439351296, 将UNIX时间戳换成当前时间

  7. (gdb) b ngx_rbtree.c:32,随意设置断点

  8. (gdb) set follow-fork-mode [parent|child], 跟随父进程/子进程,(gdb) set detach-on-fork [on|off], on:断开调试set follow-fork-mode指定的进程,off:follow-fork-mode指定的进程将被调试,另一个进程置于暂停(suspended)状态。

  9. (gdb) attach pid,加载正在运行的进程来调试,我用它解决了死循环

  10. taskset -pc 5 pid, 把进程号为pid的进程绑定到5号cpu上,去掉5可以看当前进程占用哪个cpu,也就是taskset -pc pid,在top中按f,找到Last used cpu(SMP),让它显示出来,也能看到当前占用的cpu,进top按1,可以显示当前所有cpu的使用情况, top -Hp 1469也可以显示出来,更具体。

  11. fuser filename, 查找文件被哪个进程占用

  12. find . -type d -name ".svn" | xargs rm -rf 查找文件中的.svn文件夹,并删除

  13. XtraFinder,先前找了好长时间的东西。MAC里没办法在当前目录打开终端,试过快捷键设置,但是没什么用,后来用了go2shell,但是要在finder工具栏那里加个图标,而且多桌面情况下打开的时候老是跳来跳去,并不好用。终于让我遇到了XtraFinder,就有了右键打开终端、新建文件夹的功能:(升级到10.11后就失效了)
    f1{100}

  14. tar借助openssl加密压缩文件:

    tar -zcvf - update|openssl des3 -salt -k password | dd of=update.tar.gz
    

解压时会要求输入密码,用:
dd if=update.tar.gz |openssl des3 -d |tar zxvf -
17. ethtool -p eth0,能让eth0网口灯不停闪,在多网口服务器上确定是哪个物理网口的时候很有用.

  1. "/corefile/core-%e-%p-%t" > /proc/sys/kernel/core_pattern, 统一把生成的core dump文件放到/corefile目录下,文件名的格式为core-命令名-pid-时间戳.

  2. while true; do echo haha; sleep 1; done,常用来周期性查看某项性能参数或者监控日志

  3. echo 1 > /proc/sys/vm/drop_caches,清理linux中的cache和buff

  4. tar --exclude=./.* -zcvf haha.tar.gz .,打包本目录下除隐藏文件(点开头的)的所有文件,tar ztvf haha.tar.gz,查看打包文件中的文件

  5. echo hehe | tee hello.txt, 将日志输出到标准输出和文件hello.txt中,tee从标准输入读入数据,输出到标准输出和文件,相当于从1个口进入,分成两个口出去了。想要追加文件可以用 tee -a

  6. mkdir /data/blank ;rsync --delete-before -d /data/blank/ /var/spool/clientmqueue/ , 快速删除大量文件(几十万以上).