gnome-terminal的常用快捷键

平时很山使用快捷键什么的,主要是经常记不住。不过现在买了个机械键盘就是为了多试试用快捷键提高自己的日常的操作效率(其实主要是不能用小红点了。。。)。刚看下了,其实gnome-terminal自己也带了很多常用的快捷键。我自己单独定义了一个期待term的快捷键是ctrl+alt+t.gnome-terminal的快捷键主要有:新建一个标签页:ctrl+shift+t新建一个窗口:ctrl+shift+n多个标签页的切换可以有2种方式:1.使用alt+数字N 直接切换到第N个标签页。2.使用ctrl+pageup/pagedown做前后的切换关闭一个标签页:ctrl+shift+w关闭整个窗口:ctrl+shift+q

June 21, 2013 · 1 min · pm

awk实时统计PV

今天有人问我怎么实时统计一下访问量的大小。其实在公司是有专门的监控系统做这些基本的访问量,服务调用,业务数据的完整分析。不过就简单根据apache或者nginx的日志来看看PV的话,可以直接tail日志给awk处理。 #pv.f #假设第4列的格式是:[31/May/2013:13:46:31 +0800] #第6列是GET 或者POST 表示访问的方式 function pt(a) { for (i in a) { printf("%s -- %d\n",i,a[i]); } } { t=substr($4,9,13); #per second if ( per == 1) { t=substr($4,9,10); #per minute } if( k != t ) { if( length(k)>2) { pt(af); } delete af; k=t; } else if( k == t) { FLAG=t; if ($6 ~ "GET" || $6 ~ "POST" ) { af[FLAG]++; } } }  ![pv530](/picture/a7cf7ca7.png)

May 31, 2013 · 1 min · pm

使用Graphviz做有向图

Graphviz是一个比较简单的画图程序,之前看别人用这个自动画图生成上百个系统的依赖关系觉得挺玄乎的。今天照着http://www.ibm.com/developerworks/cn/aix/library/au-aix-graphviz/ 简单学习了一下。digraph G{A->B;E [shape=box,color=red]J [shape=box, fillcolor="#ABACBA", style=filled]B-> { E;F } -> G ->J;{ A;G } -> J;{A;F}->K;} Graphviz 参考文档: http://www.ibm.com/developerworks/cn/aix/library/au-aix-graphviz/http://www.graphviz.org/content/attrshttp://blog.163.com/prevBlogPerma.do?host=lockriver&srl=487232242010101761749383&mode=prev

April 1, 2013 · 1 min · pm

使用bash_completion进行个性化补全

线上的应用和服务器都非常多,有的应用的英文名字又很长,所以自动补全还是比较有价值的。晚上简单配置了一下。安装好bash_completion后,在主目录下新建.bash_completion.然后写入```bash .bash_completion _getserver() {local APPSERVER curlocal SACONFSACONF="/mnt/server.conf"COMPREPLY=()_get_comp_words_by_ref curif [ -f $SACONF ];thenAPPSERVER=$( awk -F, ‘{app[$1]++; idc[$4]++} END{for(a in app){print a"server"; for(i in idc ){print a"server_"i}}}’ $ASACONF )elseAPPSERVER=""fi #complete for sshcomplete -F _ssh ssh

March 13, 2013 · 1 min · pm

shell版本的12306等待

看微博上大家在搞就搞了一个 #!/bin/bas h stty erase ^H hello(){ echo -e "\e[1; 31m欢迎使用铁路客运服务中心\e[m" echo "=======================" echo -e -n "\e[1; 34m用户名:\e[m" read echo -e -n "\e[1; 34m密码:\e[m" stty - echo read stty echo ```bash echo -e "\n=======================\n" } wait_2m(){ second=120 length=240 ```bash while [ $second -gt 0 ] do sleep 1; second=$((second -1 )) length=$((length -2 )) echo -e -n "\r您前面还有\e[1; 32m$length\e[m人在等待,您还需要等待\e[32m$second\e[m秒" done echo -e "\e[1; 32m\n恭喜您,轮到您购票了!\e[m" } hello wait_2m 运行示范

September 18, 2012 · 1 min · pm

使用iconv 转换编码

在linux下经常遇到编码问题,有时可以统一使用iconv把编码转换一下,使用方法如下: Usage: iconv [OPTION…] [FILE…]Convert encoding of given files from one encoding to another. e.g: iconv -f gbk -t utf8 -o a.txt xx.txt

August 13, 2012 · 1 min · pm

/bin/sh和/bin/bash的区别

经常我们写脚本的时候是直接 #!/bin/bash 这样写,但是运行的时候是直接sh xx.sh这样运行的。细心一点会发现有的脚本使用bash xx.sh能允许但是不能使用sh xxx.sh允许。比如shellhacks里面的 [shellhacks](http://nakedape.cc/wiki/ShellHacks)1.6.1. Logging and Monitoring with Tee Sometimes you want to capture all standard output to a log file while monitoring the output yourself. We can use the exec I/O redirection to do this also along with process substitution: exec > >(tee -a ${0##*/}.log) If you wanted to redirect stderr to a different file: exec 2> >(tee -a ${0##*/}.err) 这是我们可以在脚本开头set -o 打印出两种运行情况的区别。sh xx.sh的时候是开启了posix兼容,而禁用了bash的一些基本特性。可以在脚本开头set +o posix,强制关闭posix兼容。这样在两种情况下脚本允许的结果都是相同的。不过我在debian下测试有点问题,主要是debian下的sh实际是链接到dash去了。

July 14, 2012 · 1 min · pm