今天在Linux下使用shell的时候,发现当我想使用Ctrl+箭头进行快速跳跃的时候,并没有出现预期的 光标 移动,而是出现了 5D, 5C 的字样。 这个很奇怪,查下相关资料,可以这样避免: 把以下两行添加到 ~/.inputrc文件中: "\e[1;5C": forward-word # ctrl + right<br /> "\e[1;5D": backward-word # ctrl + left 退出shell再重新登录,就可以解决了。
阅读全文

最近在看golang,看了《GO语言编程》,没看一段都会照葫芦画瓢搞个demo来玩玩。 在搞交叉编辑的时候,遇到了麻烦,按书上搞的,buildpkg 这个脚本里,需要在$GOROOT/src下执行go tool dist install -v pkg/runtime ,可是src下根本没有这个 pkg/runtime的目录啊,总是报错,怎么也编译不出来。 自己就不管那个脚本了,自己看错误提示琢磨。 自己直接 go build exe文件的时候,报错 go build runtime: windows/386 must be bootstrapped using make.bash 然后估摸着,需要先修改GOOS和GOARCH进行make.bash,试了下,果真可以。 所以,交叉编译,做一个windows下64位电脑可用的exe文件,这样搞: cd $GOROOT/src GOOS=windows GOARCH=amd64 ./make.bash #如果是32位,就GOARCH=386 cd word #回到自己想输出可执行文件的位置 GOOS=windows GOARCH=amd64 go build -o sorter.exe sorter #go build 依赖 $GOPATH,这个就不多说了。 效果图: linux下运行效果图 windows下运行效果图
阅读全文

今天收到用户反馈,用户在举报谈谈的谈主时会显示提交失败。 这个反馈页面入口在反馈平台,调用谈谈项目的后端接口。 这个服务相关的接口都好久没有动了,为什么会失败呢? 在线上找了一台机器进行debug,发现接口返回内容是“正常”的,一段可读的json字符串。把字符串拷贝下,在js下发现是可以解析的。 但是该项目下用的json_decode,却怎么都decode不成功。调试了半天都觉得甚是古怪,一直都找不到头绪,怕自己脑子是思维定势了,跑去看了会golang,再回来继续解决。 再怎么看, 都还是觉得很正常,不应该出问题。 再一次拷贝接口返回的字符串的时候,发现头部多了个标签。 feff-utf8_bom_remove_linux_vim 查了下,发现这个FEFF就是BOM。 参考:字节顺序标记 找到问题所在了,解决问题就好说了。 windows下有各式各样的编辑器,都可以解决bom头问题,可是linux下该怎么解决呢? google了下,问题都解决了。 1.找到哪些文件包含BOM头。 grep -rl $‘xEFxBBxBF’ . 通过hexdump可以看到bom头的存在。 hexdump-BOM-utf8-file 2.删除BOM头信息。 sed ‘1s/^xEFxBBxBF//’ filename.php -i 删除后就不会再看到BOM头拉。 hexdump-NO-BOM-utf8-file 可以用一条命令查找并删除文件的BOM头信息: find . -type f -exec sed ‘1s/^xEFxBBxBF//’ -i.bak {} ; -exec rm {}.bak ; 总结: 在多人维护的项目下,很可能会有其他人上传一些不合适的文件或代码,需要对一些常规情况进行监控,及时发现、解决,避免影响线上问题。
阅读全文

在启动自定义服务的时候,希望使用8370端口,却发现端口已经被nginx或node占用了,无法启动。但是lvs又已经申请了,改端口的话比较麻烦。所以可以修改下 /proc/sys/net/ipv4/ip_local_port_range 参数,使tcp协议分配的端口从一个比较大的范围开始启用,这样,node或nginx就不会占用较小的端口了。 echo ‘32768 61000’ > /proc/sys/net/ipv4/ip_local_port_range
阅读全文

首先是必需组件的安装。 有三个,vim的DBGp插件,php的xdebug扩展,Chrome浏览器的xdebug helper扩展。 一: vim 安装 dbgp client 插件 下载 DBGp client $ cd ~/.vim/ $ wget http://www.vim.org/scripts/download_script.php?src_id=7285 -O debugger.zip $ unzip debugger.zip 二:PHP安装xdebug扩展 具体安装方法就不讲了,网上例子很多.官方安装说明. 我把我的配置信息贴出来: sudo vim /home/s/apps/php-5.2.6/etc/include/xdebug.ini [Xdebug] zend_extension=“/home/s/apps/php-5.2.6/lib/php/extensions/no-debug-non-zts-20060613/xdebug.so” xdebug.profiler_enable=0 ;开启profile xdebug.profiler_enable_trigger=1 ;使用触发器开启profile xdebug.profiler_output_dir=“/home/s/logs/xdebugLog” xdebug.auto_trace=0 ;开启trace xdebug.trace_enable_trigger=1 ;使用触发器开启trace xdebug.trace_output_dir=“/home/s/logs/xdebugLog” xdebug.cli_color=1 xdebug.collect_params=2 xdebug.collect_return=on ;remote debug ;开启远程调试 xdebug.remote_enable=1 xdebug.remote_autostart=Off xdebug.remote_port=9000 ;远程端口,不是你web服务的端口,如果没有冲突,一般不用修改。 其中需要注意的是有注释的地方,不自动开启profile和trace,因为这样每次请求都会保存相应信息,会把磁盘爆掉的。把触发器打开,这样,只有在请求的时候带特定信息的时候,才会记录相应的性能信息。触发器的实现机制是:在请求时,如果GET/POST/COOKIE信息中包含特定的变量,会开启对应的debug,profile或trace,所以我们可以通过在web中访问页面时,添加对应的变量来开启相应的功能。如果每次都自己拼接这个,也挺麻烦,所以会介绍后边的xdebug helper的chrome扩展,想开启任何一个功能的时候,点击一下扩展就可以了。也就是说,这个扩展不是调试必须的,但是会让你感觉用起来很方便。 三:chrome扩展xdebug helper 地址:https://chrome.google.com/webstore/detail/xdebug-helper/eadndfjplgieldjbigjakmdgkmoaaaoc 如果在 chrome://apps里搜索xdebug helper搜索不到,记得把你的语言改为 English. xdebug-helper-introduction20140226142342 xdebug helper两处配置要注意, IDE Key要注意选择Other, 值为1,然后保存。
阅读全文

使用 sudo rm -rf *.sst 删除文件时,出现如下提示: sudo: unable to execute /bin/rm: Success 出现这种错误时,是由于匹配的文件太多导致的。 所以需要换个方式来删除 sudo sh -c ‘find -name “.sst”|xargs rm -rf ‘ 使用sh -c 表示对整条命令使用sudo权限.
阅读全文

作者的图片

DigDeeply

Technology Stack: PHP/Openresty/GoLang, and so on…

Web Develop Eneigneer

Beijing China