bash

[python] os.system output out-of-order using shell pipe

t.py as below:

1
2
3
4
5
import os

print "### before ps"
os.system("ps")
print "### after ps"

logical is quite simple, if we directly run it: python t.py, output as below, nothing special:

1
2
3
4
5
6
7
### before ps
  PID TTY          TIME CMD
 1619 pts/9    00:00:00 python
 1620 pts/9    00:00:00 sh
 1621 pts/9    00:00:00 ps
18701 pts/9    00:00:00 bash
### after ps

利用dropbox自动备份网站数据

我等小blog网站自然是用不上高大上的备份方案, 但是不备份后果很严重, 万一那天VPS公司跑路了, 或者机器挂了, 东西就全没鸟.

穷人只用的起免费的Dropbox =.=

安装

根据自己安装版本选择32或者64位的, 解压后会有一个.dropbox-dist的隐藏目录.

1
2
3
4
5
6
7
# Stable 32-bit:
wget -O dropbox.tar.gz "http://www.dropbox.com/download/?plat=lnx.x86"
 
# Or stable 64-bit:
wget -O dropbox.tar.gz "http://www.dropbox.com/download/?plat=lnx.x86_64"

tar -xvf dropbox.tar.gz

第一次在cmdline运行的时候, 会提示通过一个链接绑定帐号, 照着做就行了.

1
~/.dropbox-dist/dropbox

然后就会在home目录下建立一个Dropbox的目录.

bash: vim 自动补全文件名卡住

本来home目录下的.bashrc用一个git维护着. 今天手贱, 在另一个目录下, 以为存在git, 直接git reset, 然后就悲剧了, home下面有些配置直接被干掉了 T.T

然后就出现各种问题了, 发现bash中输入vim + TAB 之后就卡住了, 只能ctrl + C取消掉, 记得之前搞过, google了一通, 终于把它捞出来了.

好像是bash-completion的问题 (REF: link )

1
2
$ pacman -Ss bash-completion
extra/bash-completion 2.1-2 [installed]

运行一下下面这个就搞定了, 目测gvim, emacs也中枪. 可以加在.bashrc里.

1
complete -f -X '*.@(o|so|so.!(conf)|a|rpm|gif|GIF|jp?(e)g|JP?(E)G|mp3|MP3|mp?(e)g|MPG|avi|AVI|asf|ASF|ogg|OGG|class|CLASS)' vi vim gvim rvim view rview rgvim rgview gview emacs xemacs sxemacs kate kwrite

通过kernel Makefile 生成 cscope ctags

在kernel 中使用cscope 经常会出现很多的数据是没有用,比如一个函数被不同版本的驱动定义了很多次,而这些版本是我们不需要的,查找定义是会出现很多的选项,看得眼睛都花了 T.T

于是写了一个脚本,通过kernel makefile 来生成这些数据库,这样查找就能很精确,一步到位 ^_^