shell 命令记录
跳转到导航
跳转到搜索
文档处理
纯文本
求差集
求差集 A-B:
sort B B A | uniq -u
来源:简单的 LINUX Shell 下求集合交集差集的办法
版本控制
svn ci -m `git log --format='%s' -1`
加密
dc 表达式
加密
python -c 'print reduce(lambda a, b: a*256+ord(b), raw_input("string: "), 0)'
解密
dc -e xxxP
链接
统计
最常用的十条命令
查看自己最常用的十条命令(zsh 中,bash 中不需要 history
的参数)
history 1 | awk '{CMD[$2]++;count++;}END { for (a in CMD)print CMD[a] " " CMD[a]/count*100 "% " a;}' | grep -v "./" | column -c3 -s " " -t | sort -nr | nl | head -n10
Vim 脚本行数
自己写了多少行Vim脚本?(zsh下才可用,因为bash下 **
不搜索多级子目录,并且可能不支持()语法。)
grep -l "Author.*`whoami`" ~/.vim/**/*[^~](.^@)|while read i; do cat $i; done|cat - ~/.vimrc|sed '/^\s*$/d'|sed '/^\s*"/d'|wc -l
注:可能不准确。
系统
释放 cache 内存
sudo sh -c "echo 3 > /proc/sys/vm/drop_caches"
修正某些发行版中gVim中文菜单不显示的问题
cd /usr/share/vim/vim73/lang # 或者其它路径
for i in *utf-8*; do sudo ln -s $i `echo $i|tr -d '-'`; done
从 PostgreSQL 锁表数据库进程查询对应的使用者进程
通过 PostgreSQL 查询到锁表进程的 other_pid
后,可使用如下命令查询得到导致锁表的用户进程:
pid=12345; pid $(sudo netstat -ntp | awk -vport=$(pid $pid | grep -oP '(?<=\()\d+') '{if($4 ~ ":"port){ print $7; }}' | cut -d/ -f1)
其中, pid
用于将 PID 转为命令行:
pid () {
s=0
for i in $@; do
echo -n "$i: "
r=`cat /proc/$i/cmdline|tr '\0' ' ' 2>/dev/null`
if [[ $? -ne 0 ]]; then
echo not found
s=1
else
echo $r
fi
done
return $s
}
终端
使用 Perl 显示终端支持的256色:
perl -e 'print map sprintf("\x1b[38;5;%um%4u", $_, $_), 0 .. 255'
参见 ANSI 转义序列。
硬件
另参见dmidecode,DMI table decoder。
CPU
CPU 支持64位吗?[1]
sudo dmidecode --type=processor | grep -i -A 1 charac
当前使用的是多少位?
getconf LONG_BIT
定制
将个人配置放到 ~/lily
以和使用相同帐号的人分隔开。
启动 zsh 命令:
ZDOTDIR=$HOME/lily exec zsh -l
# for mosh
mosh root@build -- sh -c 'SHELL=/bin/zsh ZDOTDIR=$HOME/lily exec zsh -l'
# for ssh
ssh -t root@build 'SHELL=/bin/zsh ZDOTDIR=$HOME/lily exec zsh -l'
和 tmux 一起启动:
SHELL=/bin/zsh ZDOTDIR=$HOME/lily tmux -f ~/lily/.tmux.conf -S ~/lily/.tmux.sock
~/lily/.zsh/zshrc.local
内容:
path=(~/lily/bin $path)
export SHELL=/bin/zsh
export MYVIMRC=$HOME/lily/.vim/vimrc
export VIMINIT="let &rtp='$HOME/lily/.vim,' . &rtp
so $MYVIMRC"
export VIMTMP=$HOME/lily/tmpfs
alias tmux="tmux -f ~/lily/.tmux.conf -S ~/lily/.tmux.sock"
注意也要更新 Vim 的 'packpath'
选项。