【完善中】基于文本图形(ncurses)的文本搜索工具 ncgrep

源码下载 http://github.com/ncgrep/ncgre背景作为一个VIM党,日常工作开发中,会经常利用grep进行关键词搜索,以快速定位到文件。如图但是,这一过程会有两个效率问题展示的结果无法进行直接交互,需要手动粘贴文件路径在打开展示的结果没有进行分组,直接将结果罗列出来可想而知,当搜索的内容结果集比较大时,可谓痛苦。那可以用Vim中的Ag插件进行搜索啊?是的,但他只解决了交互的问题。仍然没有解决结果集分组分类的痛点。思路在使用Eclipse等IDE进行文本全局搜索时,在加载效果(懒加载)可视化方面有很大优势。那么,期望基于linux系统,提供一个类似的搜索工具。优点(功能)如下结果集可以直接交互结果集可以进行分组展示结果集通过“懒加载”方式装载基于文本图形界面的类库是什么呢?网上大致了解了下VIM、htop类似的软件,其都是基于一个叫ncurses的类库实现的。项目...阅读全文

【开发中】基于树莓派的智能家居项目的设想与实现 Hestia

注:本文内容的准确性仅限于笔者写该篇文章时的情况,不保证后续与实际项目代码一致。实时内容还请关注Github项目托管页面:https://github.com/GenialX/hestia-serve树莓派,一个五脏俱全,集几乎所有功能于一身的微型计算器。大约一两月之前,屈屈300百大洋收入囊中。入手之后,出于对自动化的兴趣,慢慢地研究如何实现室内家电的智能自动化控制。在断断续续地,不断地摸索之后,有了若干想实现的点子,迄今为止也有所实践。点子利用红外线传感器智能控制空调、电视等基于红外遥控的家电设备;智能控制家中的灯泡设备(部分基于网络协议);(待更新...方案硬件首先,除了树莓派之外,还需要如下硬件移动端设备 iPhone一台(安卓手机当然也没问题,但是本案例中只基于iPhone做了实现外网可直接访问的服务器一台(本案例使用阿里云服务器基于树莓派的传感器若干基于光敏电阻的光线传感器一个...阅读全文

禁止tmux窗口自动命名

关于tmux的多窗口,用起来可谓非常方便。但,也许在默认的tmux配置下,一样和我被一个小问题困扰。那就是,tmux的窗口名称总是会随着执行的命令不同而变动。关于这一点,可用如下的方式来解决更改tmux配置文件打开~/tmux.conf文件,增加(或修改)如下内容更改oh-my-zsh配置文件当然,如果你在用oh-my-zsh的话。那么,还需要进行如下修改打开~/.zshrc文件,增加(或修改)如下内容参考文章:https://stackoverflow.com/questions/38543763/tmux-will-not-stop-auto-renaming-window阅读全文

Shell脚本之输出带颜色的字体

shell脚本中echo显示内容带颜色显示,echo显示带颜色,需要使用参数-格式如下echo -e “\033[字背景颜色;文字颜色m字符串\033[0m”例如echo -e “\033[41;36m something here \033[0m”其中41的位置代表底色, 36的位置是代表字的颜色注  1、字背景颜色和文字颜色之间是英文的”;”2、文字颜色后面有个3、字符串前后可以没有空格,如果有的话,输出也是同样有空格下面是相应的字和背景颜色,可以自己来尝试找出不同颜色搭配例echo -e “\033[31m 红色字 \033[0m”echo -e “\033[34m 黄色字 \033[0m”echo -e “\033[41;33m 红底黄字 \033[0m”echo -e “\033[41;37m 红底白字 \033[0m”字颜色:30—–3echo -e “\033[30m 黑色字 \033[0m”...阅读全文

工作效率之SSH自动登陆篇

前言公司开发使用docker,每次登陆自己开发机总要输入 ssh user_name@ip_string,然后再确认输入password,手快了还经常会输错。作为一个懒人,肯定要找一个取巧的方式,查看了下ssh命令,由于它要进行一次跟服务器的加密交互,所以没有直接附带密码登陆的选项,只好作罢。前些天在同事进行技术分享时,看到他竟然只输入了一行命令./test.sh就成功登陆了开发机,甚是惊异,于是回来搜索研究了一下,遂成此文。shell脚本基础在编写ssh自动登陆脚本之前,先说一下shell脚本的基础,此基础不是一些语法什么的,网上到处都是,这里总结了一下shell脚本的运行机制shell脚本的运行方式首先要说一下shell的几种启动方式,正是踩了脚本启动的坑,才使用原来十分钟就搞定的脚本,花了两个小时才搞定。同时也使得我们运行shell,知其所以然。通过文件名执行shell脚本可以直接...阅读全文

Nginx 的启动、停止、平滑重启、信号控制和平滑升级

Nginx 的启动假设 nginx 安装在 /usr/local/nginx 目录中,那么启动 nginx 的命令就是/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf 参数 "-c" 指定了配置文件的路径,如果不加 "-c" 参数,Nginx 会默认加载其安装目录的 conf 子目录中的 nginx.conf 文件。Nginx 的停止nginx 的停止方法有很多,一般通过发送系统信号给 nginx 的主进程的方式来停止 nginx。从容停止 nginkill -QUIT `/usr/local/nginx/logs/nginx.pid` 字符是数字键盘 1 字符左边的那个字符,不需要 Shift,直接按 ` 字符即可。如果在 nginx.conf 配置文件中指定了 pid 文件存放的路径,该文件中存放的就...阅读全文

工作效率之动态IP域名化篇

在公司里,RD们不免会使用一些代理服务来进行抓包操作。那么就需要获取代理服务器(一般为自己的电脑)的内网IP。然而,这个内网IP并不是固定不变的。所以,每次配置代理IP时就略显麻烦。那么,下面就来聊聊如何解决这个尴尬,提升效率。方案将非固定IP实时解析到域名中。利用阿里云的域名解析开发者API进行定时的更新。其中的定时用本机(Mac)的Launchd实现(类似Linux下的Crontab)。原材料Mac(或者Windows 但本文仅谈及Mac配置方法域名(如 ihuxu.com如果没有域名可以到freenom.com中注册一个免费域名,然后将其DNS切到阿里云免费的DNS云解析服务中即可。阿里云账号利用阿里云提供开发者的DNS管理相关的AP步骤下载阿里云SDK & 编写代码库:https://github.com/aliyun/aliyun-openapi-php-sdk.g...阅读全文

Linux查看物理CPU个数、核数、逻辑CPU个数

# 总核数 = 物理CPU个数 X 每颗物理CPU的核数# 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数# 查看物理CPU个数cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -# 查看每个物理CPU中core的个数(即核数cat /proc/cpuinfo| grep "cpu cores"| uni# 查看逻辑CPU的个数cat /proc/cpuinfo| grep "processor"| wc -查看CPU信息(型号)
cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -查看内 存信息
# cat /proc/meminf文章来源:http://www.cnblogs.com/emanlee/p/3587571.htm阅读全文

Linux常用命令

操作系统命令uname -a #查看内核/操作系统/CPU信息head -n 1 /etc/issue #查看操作系统版本cat /proc/cpuinfo #查看CPU信息hostname #查看计算机名lspci -tv #列出所有PCI设备lsusb -tv #列出所有USB设备lsmod #列出加载的内核模块env #查看环境变量文件/IO资源命令free -m #查看内存使用量和交换区使用量df -h #查看各分区使用情况du -sh <目录名> #查看grep MemTotal /proc/meminfo #查看内存总量grep MemFree /proc/meminfo #查看空闲内存量uptime #查看系统运行时间、用户数、负载cat /proc/loadavg #查看系统负载mount | column -t #查看挂接的分区状态fdisk -l #查看所有分区...阅读全文

小型网站架构降低Apache与MySQL内存占用比率

前言这是一篇极其没有营养的文章,那么请问“什么还要写?”,正所谓“不积跬步无以至千里,不积小流无以成江海”,难得学习与总结。而且,并不一定每篇文章都需要长篇大论、“看似高深”,最后网友看后毫无感觉。这篇文章以我的阿里云服务器为例(你眼前的博客正是搭在这个服务器上),阐述下小型网站(Linux+Apache+MySQL+PHP)对于内存利用率提升的配置方法的一个点。正文我的服务器是阿里云的,在一年前由于数据库(MySQL)频繁内存不足宕机就“潇洒”地升级了配置到2G内存。所以,目前机器的配置如下CPU: 1核内存: 2048 M操作系统: CentOS 6.5 32位公网IP: 115.28.36.1带宽计费方式: 按固定带宽当前使用带宽: 1Mbp同时,正常使用情况下的内存使用情况如下图中显示MySQL占用440m,Apache占用44m。当然,这是MySQL服务和Apache服...阅读全文

在Linux下通过strace与lsof命令排查PHP异常进程

在有些时候,会遇到PHP进程异常卡死的情况。面对这种情况,首先考虑到的就是分析代码进行优化改进,或者重启进程。但是,这种方式来排查不一定能找到根本原因。因为有些时候异常PHP进程卡死的原因可能是非常奇葩的问题,比如外部资源异常如DB、Redis与第三方API等。上一次关于超级话题签到提醒定时任务PHP进程异常的处理,问题竟然出现在外部的DB的链接上。由于网络原因导致读取DB没有响应卡死。这一次情况比较严重,超级话题积分系统的计算有一部分是通过Trigger(类似队列)接受全站数据进行积分计算与入库。由于用户反馈问题,来到队列机查看进程情况。如下$ ps -ef | grep Trigger | grep Commenwww 10693 1 7 16:06 ? 00:04:09 /usr/local/bin/php /path/cli.php request_uri=/Cli/Trigg...阅读全文

自从有了她,再也不怕断签了:超级话题签到提醒

前言在解决了上一次关于超级话题积分bug后,又接到超级话题签到提醒的产品需求。这是一篇偏于技术实现的文章,讲述的比较笼统,业务围绕超级话题的签到提醒进行展开。如果,您对超级话题签到提醒的技术背景与实现感兴趣,那么这篇文章希望对你有帮助。当然,如果你是某个超级话题的超级粉丝,比如鹿晗,张艺兴,但是发现断签了。那么我非常替你感到“痛心”,因为目前超级话题没有补签功能。当然,如果你觉得是因为系统问题导致没有连续签到,那么你可以通过超级话题的官方反馈方式进行反馈来解决问题。当然,我劝你这么做之前一定要三思。因为,通过我排查的经验而言,基本山是由于你们(用户)把时间搞错了,而导致没有续签。而且,目前的签到提醒功能会在每天晚上提醒你签到的哦产品最近,在忙活超级话题的签到提醒产品的开发。首先,这是第一次比较热切的关注用户反应的产品。虽然说,对于产品的参与和认知并没有多么深入的理解,但是愈发的觉得这件事...阅读全文

Linux删除指定日期之前的文件

两种方法1. 在一个目录中保留最近三个月的文件,三个月前的文件自动删除。find /email/v2_bak -mtime +92 -type f -name *.mail[12] -exec rm -rf {} ;/email/v1_bak --设置查找的目录;-mtime +92 --设置时间为91天前;-type f --设置查找的类型为文件;-name *.mail[12] --设置文件名称中包含mail1或者mail2;-exec rm -f --查找完毕后执行删除操作;将此命令写入crontab后即可自动完成查找并删除的工作了。2. 或者用:find . -ctime +40 -type f | xargs rm -r1、编写清理日志脚本clear.s   #!/bin/sfind /opt/bak -mtime +6 -name "*.log" -exec rm {}...阅读全文